我有 2 个变量 a
和b
.
我想从用户那里获得一个要形成的函数。
str='operator'
它可以是 '<'
, '=='
, '>'
, '||'
, '&&'
等等。
我用过enum
和switch
-case
.
尽管它有效,但对于许多功能来说,这个解决方案一点也不优雅。
有没有办法评估字符串并使用其中的内容?像宏之类的东西?
示例:str='=='
valuation(a str b)
==> 执行a==b
我正在寻找有关 matlab 中宏的信息,但找不到明确的答案。因此,关于存在的内容以及如何使用它的解释可能会很好(链接也很好)。
最佳答案
我会使用 map :
operators={'+',@plus;'-',@minus;'==',@eq};
mapObj = containers.Map(operators(:,1),operators(:,2));
此列表不完整,如果您不知道运算符 (+
) 的函数名称 (plus
),请在 doc +
中键入>
要使用它,请从映射中获取函数句柄:
f=mapObj('+')
并评估它:
f(a,b)
关于string - 在matlab中用运算符和宏替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27675998/