2

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

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

从这个链接,我看到了如何求解一个数学函数。链接中可用的程序是:

>>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。如何解决这个问题呢?

提前致谢。

4

1 回答 1

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''a'等等)为了传达这个,v是一个存储此信息的字符。

如果F总是依赖于'x',并且所需的输出是F(v)数值v,则需要进行以下修改:

myfun = sprintf('@(x) %s', F );
f = eval(myfun);
F_of_v = f( v )
于 2013-08-20T05:33:40.580 回答