2

我想使用 matlab eval/feval 函数设置一个变量。可以将整个语句写为字符串并使用 = 符号,但我想将该值作为单独的参数(而不是字符串)传递。

matlab 中的算术运算符具有函数等价物,因此这些函数名的字符串可以在 eval 和 feval 函数中使用。= 运算符是否有等效的功能?

我正在寻找的机制是:

eval('set','x',5)

我希望它将变量 x 的值设置为 5。

4

2 回答 2

3

好像您正在寻找类似的东西assignin

于 2013-02-13T08:13:56.573 回答
2

既然您说“可以将整个语句写为字符串”,但是您希望将部分字符串作为变量传递,那么以下工作是否可行:

evalString = sprintf("most of the string with %s a placeholder", extraArg);
variableToSet = eval(evalString);

通过这种方式,您可以从“变量组件”创建一个字符串。当然,如果extraArg不是字符串,您可以使用适当的格式将其转换为任何字符串。

于 2013-02-11T17:46:59.627 回答