运算符可以存储在变量中吗?

Ste*_*ven 3 variables matlab eval operators while-loop

这是我想到的一个思想例子:

test = 'x > 0';

while str2func(test)
   Do your thing
   x=x-1;
end
Run Code Online (Sandbox Code Playgroud)

是否可以将整个逻辑运算存储在这样的变量中?

当然str2func会在这里打破.如果可能这个功能可能是别的东西.我只在test变量内容中添加了撇号,因为我无法想到存储方法还有什么.

在向函数发送参数时,我可以看到它很有用.但大多数情况下我只是想知道,因为我以前从未在任何编程语言中看到它.

Hig*_*ark 8

例如,您可以将函数的文本表示存储在变量中并对其进行评估

test = 'x > 0';
eval(test)
Run Code Online (Sandbox Code Playgroud)

应该导致1或0取决于x的值.

但是你不应该eval因为太多经常出现的原因使用SO来让我烦恼重复.您应该熟悉函数和函数句柄.例如

test =  @(x)x>0
Run Code Online (Sandbox Code Playgroud)

test函数进行句柄处理,该函数测试其参数是否大于0.

与编译语言相比,在运行时解释的许多语言具有类似的功能.