【问题标题】:Too many input arguments in MATLABMATLAB 中的输入参数过多
【发布时间】:2009-10-05 16:10:10
【问题描述】:

当我运行以下代码时:

xdata2 = [1 3 4 5];
ydata2 = [3 9 76 73];
params = [0.1 0.5 0.0 -0.5 0.2 0.8];
y = svenssontest2(xdata2,ydata2,params,0.636,1.9632);

我收到错误消息“输入参数过多”,但输入参数的数量是正确的。这是函数svenssontest2的代码:

function [alpha L1 L2] = svenssontest2(tau,Y,params,L1,L2)

tau=tau.';
Y=Y.';

nObs=length(Y);

%z=1;

%for(j =1:50)

    %L2=j/200+0.01;

    %for(k=1:50)

     %   L1=k/200+0.01;

        Lev1= [params(1)*ones(nObs,1) params(2)*(1-exp(-params(5).*tau))./(params(5).*tau) params(3)*((1-exp(-params(5).*tau))./(params(5).*tau)-exp(-params(5).*tau)) params(4)*((1-exp(-params(6).*tau))./(params(6).*tau)-exp(-params(6).*tau))];

        Y=Y-Lev1;

        G= [ones(nObs,1) (1-exp(-L1.*tau))./(L1.*tau) (1-exp(-L1.*tau))./(L1.*tau)-exp(-L1.*tau) (1-exp(-L2.*tau))./(L2.*tau)-exp(-L2.*tau)];

        alpha =G\Y;
        u=Y-G*alpha
        stderr=sqrt(diag((u'*u)/(length(Y)-4)*pinv(G'*G)));
        Sum_u2 = sum(u.^2);
        Res(1,:) = [Sum_u2 alpha' L1 L2];
    %   z=z+1;

   % end

【问题讨论】:

  • 请在函数调用之前进行编辑以将 xdata2、ydata 等作为代码放置,以便于复制。还需要将功能减速放入代码中。在本地完成此操作后,我收到此错误:???错误使用 ==> 减去矩阵尺寸必须一致。 ==> svensontest2 在 20 Y=Y-Lev1 出现错误;这与问题中声称的错误消息无关,实际上意味着声称的错误消息没有发生,因为我们将其放入函数中。请检查复制步骤。

标签: matlab input arguments


【解决方案1】:

您可能在路径设置中的某个位置,该文​​件的路径之前有另一个文件,具有相同的名称和不同数量的参数。因为文件是自上而下搜索的,所以先找到另一个文件,导致这个错误。

【讨论】:

  • 我的当前文件夹中有一个名为 pdist2.m 的文件,正如 George 所说,当我想调用 matlab 的 knnsearch 方法时,它以某种方式给出了错误。我只是从当前文件夹中删除了这个文件,因为我不再需要它了。然后一切都为我解决了。
猜你喜欢
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多