string - 在matlab中用运算符和宏替换字符串

标签 string matlab macros replace

我有 2 个变量 ab .
我想从用户那里获得一个要形成的函数。

str='operator'

它可以是 '<' , '==' , '>' , '||' , '&&'等等。
我用过enumswitch -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/

相关文章:

javascript - 如何将双引号中的数组转换回 Javascript 中的原始数组

c - 从二维字符数组打印字符串

matlab - 使用 MATLAB 在每个实例之后实时处理文件,文件由单独的程序创建

macros - database_column_names 的 clojure-variable-names

我们可以将 MACRO 名称定义为特定字符串吗?

android - 如何在Android游戏循环中快速格式化 float ?

c - 为什么 getchar() 不起作用,但 getchar_unlocked() 在读取字符串字符时在 main 函数之外执行?

c++ - Mex 找不到 g++

c++ - 非线性函数最小化 C++

c - 如何在 autotools 中为 C 项目定义宏?