3

这是我正在考虑的一个思想示例:

test = 'x > 0';

while str2func(test)
   Do your thing
   x=x-1;
end

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

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

在向函数等发送参数时,我可以看到它很有用。但大多数时候我只是想知道,因为我以前从未见过用任何编程语言完成它。

4

1 回答 1

8

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

test = 'x > 0';
eval(test)

应根据 x 的值产生 1 或 0。

但是你不应该使用evalSO 上经常提到的原因,让我懒得重复。相反,您应该熟悉函数和函数句柄。例如

test =  @(x)x>0

为一个函数创建test一个句柄,该函数测试其参数是否大于 0。

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

于 2012-06-21T15:19:29.020 回答