【问题标题】:Is it possible to transform a string to a variable code name in MATLAB? [duplicate]是否可以在 MATLAB 中将字符串转换为变量代号? [复制]
【发布时间】:2016-03-21 17:02:21
【问题描述】:

这可能是一个非常奇怪的问题(并且可能会建议我不要做这种奇怪的事情),但是如果我有一个 v_str ='var_name' 中的字符串并且我想将该代码的内容转换为实际代码,这在 MATLAB 中可能吗?如:

v_str = 'var_name'
x = make_string_to_code(v_str)

翻译成功能代码:

x = var_name

它只是将字符串转换为实际代码。

我想到这样做的唯一方法是用该代码编写一个文件,然后在下一行执行该代码,但我想避免每次我想这样做时都编写文件。

另外,为什么不推荐这样做?为什么它如此糟糕

【问题讨论】:

  • 是的,但是you don't want to
  • @excaza 谢谢。 :D 不知何故我错过了。

标签: matlab


【解决方案1】:

你可以使用 eval,但这并不意味着你应该像其他人提到的那样。

v_str = '2 + 2'
eval(['x = ' v_str]) % x = 4;
x = eval(v_str); % x = 4;

eval 的文档可以在这里找到:eval

【讨论】:

  • 所以不建议用字符串来制作变量?为什么这样? (对不起,如果这是一个明显的问题)
  • @CharlieParker 因为通常不知道变量来自哪里是不好的编程习惯;它使调试变得非常困难。您还盲目地执行 any 字符串,这根本不安全。效率也非常低,MATLAB 的 JIT 编译器无法优化 eval 语句。
  • @CharlieParker 查看 excaza 对您原始帖子的第一条评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-03
  • 1970-01-01
  • 1970-01-01
  • 2018-08-25
  • 1970-01-01
相关资源
最近更新 更多