Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 运算符可以存储在变量中吗?_Matlab_Variables_While Loop_Operators_Eval - Fatal编程技术网

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

Matlab 运算符可以存储在变量中吗?,matlab,variables,while-loop,operators,eval,Matlab,Variables,While Loop,Operators,Eval,这是我思考的一个思想示例: test = 'x > 0'; while str2func(test) Do your thing x=x-1; end 是否可以将整个逻辑操作存储在这样的变量中 当然,str2func将在此处中断。如果可能的话,这个函数可能是其他函数。我只在测试变量内容中添加了撇号,因为我想不出还有什么存储方法 我认为它在向函数或类似函数发送参数时非常有用。但我最想知道的是,因为我以前从未在任何编程语言中见过它。例如,您可以将函数的文本表示存储在变量中并对其

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

test = 'x > 0';

while str2func(test)
   Do your thing
   x=x-1;
end
是否可以将整个逻辑操作存储在这样的变量中

当然,
str2func
将在此处中断。如果可能的话,这个函数可能是其他函数。我只在
测试
变量内容中添加了撇号,因为我想不出还有什么存储方法

我认为它在向函数或类似函数发送参数时非常有用。但我最想知道的是,因为我以前从未在任何编程语言中见过它。

例如,您可以将函数的文本表示存储在变量中并对其求值

test = 'x > 0';
eval(test)
test =  @(x)x>0
根据x的值,结果应为1或0

但是你不应该使用
eval
,因为这里经常提到的原因,所以我不想重复。相反,您应该熟悉函数和函数句柄。比如说

test = 'x > 0';
eval(test)
test =  @(x)x>0
使
test
成为函数的句柄,用于测试其参数是否大于0

与编译语言不同,许多在运行时进行解释的语言具有类似的功能