执行我的功能时收到错误?

时间:2015-06-16 14:12:55

标签: matlab variadic-functions

执行以下操作时:

function [ x ] = addya( varargin )
x=varargin{1};
t=varargin{1};
if(nargin>1)

for i=2:nargin
    t=t+varargin(i);
    end;
end
x=t;

我得到的错误是:

  

addya(1,1)???未定义的功能或方法   'addya'表示'double'类型的输入参数。

请提出更改和错误。

1 个答案:

答案 0 :(得分:0)

确保此功能保存在名为addya.m的文件中。

此外,正如il_raffa提到的那样,在循环内部存在拼写错误:您应该使用varargin访问{}

以下代码保存为addya.m时适用于我:

function [ x ] = addya( varargin )
    x=varargin{1}; %// Why is this needed?
    t=varargin{1};
    if(nargin>1)
        for i=2:nargin
            t=t+varargin{i};
        end;
    end
    x=t;

另外,我建议不要使用i作为循环索引,因为可能会出现复杂的数字。