我正在编写一个小的 MATLAB 包,我想要求用户输入一个函数。因此,如果用户输入:
x.^2 + sin(x)
我想使用这个用户输入出现在代码的其他地方,但x
已经定义了,所以上面的表达式将是一个向量(或标量,如果length(x)
为 1)。
您可以为此使用该eval
功能。例如:
>> x = 5
x =
5
>> eval('x*3')
ans =
15
您可以创建一个函数句柄:
% some variable you already defined
myVar = 5;
% Create an anonymous function in some z
f = str2func('@(z) z.^2 + sin(z)');
% Call function supplying the input
f(myVar)