2

为了更好地了解 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.

这怎么可能?F 的定义中说明了两个必要的参数(x 和 c),对吗?

希望你能帮我解决这个问题!非常感谢您的回复!

4

2 回答 2

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
于 2013-11-10T11:32:07.967 回答
-3

在每条不完整的行的末尾加上三个点。而且你不需要那个方括号。

    F = 2*x(1) - exp(c*x(1)) ...
        -x(1) - exp(c*x(2)) ...
        x(1) - x(2);

于 2013-11-10T11:22:42.360 回答