我是 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 作为输入时,我得到的 ans 是 x+1。如何解决这个问题?
提前致谢。
最佳答案
您的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 )
关于matlab - 如何在matlab中计算数学函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18327546/