0

我正在编写一个小的 MATLAB 包,我想要求用户输入一个函数。因此,如果用户输入:

x.^2 + sin(x)

我想使用这个用户输入出现在代码的其他地方,但x已经定义了,所以上面的表达式将是一个向量(或标量,如果length(x)为 1)。

4

2 回答 2

4

您可以为此使用该eval功能。例如:

>> x = 5

x =

     5

>> eval('x*3')

ans =

    15
于 2013-05-24T09:32:25.747 回答
2

您可以创建一个函数句柄:

% 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)
于 2013-05-24T19:55:13.127 回答