输入参数错误

时间:2013-11-10 10:48:11

标签: matlab function input

为了更好地了解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的定义中说明,对吗?

希望你能帮助我!非常感谢您的回复!

2 个答案:

答案 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);