如何在matlab中评估数学函数?

时间:2013-08-20 05:27:23

标签: matlab

我是matlab的新手,目前正在搜索,如何在matlab中解决数学函数。

这就是我想要的,我想解决函数f(x)= x ^ 2 + 2x + 1,其中x = 2。 我想把x ^ 2 + 2x + 1和2作为输入并显示输出。

从这个link,我看到了如何解决数学函数。 链接中提供的程序是:

>>f = @(x) 2*x^2-3*x+4;
>>f(3)
ans = 13

所以,我在我的剧本中写了以下部分:

F=input('enter function: ','s');
v = input('parameter: ');
f=@(x)F;
disp(f(v));

当我提供x + 1和3作为输入时,我得到的是x + 1。如何解决这个问题?

提前致谢。

1 个答案:

答案 0 :(得分:3)

您的F变量是字符串,只是说"x + 1"。您必须要求matlab将此字符串解释为函数才能获得数值。

这样做的一种方法是使用eval

F = input('enter function: ', 's' );
v = input('parameter: ');
myfun = sprintf('@( %s ) %s', v, F ); % a string
f = eval( myFun ); % interpret string as a command
f( 3 ), % do the math - evaulate F(3)

编辑,根据以下评论做出的澄清:
上面的解决方案假定为F,表示数学公式的输入字符串可能具有用户选择的变量(即,未知数不一定是'x',它可能是'y',{{ 1}}等等。为了传达这一点,'a'是一个存储这些信息的字符。

如果v始终取决于F,并且数字值'x'的所需输出为F(v),则需要进行以下修改:

v