为了更好地了解MATLAB,我尝试运行以下代码,我在MATLAB的帮助文件中找到了该代码:
function F = myfun(x,c)
F = [ 2*x(1) - exp(c*x(1))
-x(1) - exp(c*x(2))
x(1) - x(2) ];
c = -1; % define parameter first
x = lsqnonlin(@(x) myfun(x,c),[1;1])
但是,我收到以下错误:
Error using F (line 2)
Not enough input arguments.
这怎么可能?必要的两个参数(x和c)在F的定义中说明,对吗?
希望你能帮助我!非常感谢您的回复!
答案 0 :(得分:0)
您确定以正确的方式调用它吗?
我将其保存在myfun.m
:
function F = myfun(x,c)
F = [ 2*x(1) - exp(c*x(1))
-x(1) - exp(c*x(2))
x(1) - x(2) ];
end
在命令窗口中写这个,它可以工作:
c = -1; % define parameter first
x = lsqnonlin(@(x) myfun(x,c),[1;1])
x =
0.2983
0.6960
答案 1 :(得分:-3)
在每条不完整的行的末尾放置三点。你不需要那个方括号。
F = 2*x(1) - exp(c*x(1)) ... -x(1) - exp(c*x(2)) ... x(1) - x(2);