“输出参数过多”是什么意思?

时间:2018-11-15 09:25:33

标签: matlab function

我运行了这段代码,但是“错误功能”出现错误。  我得到的错误消息:

使用错误出错

输出参数过多。

有人知道是什么问题吗?

w=2*rand(3,4)-1; % Randomly choosen between -1 and 1
x=[ 5 55 14 32; 4 4 84 5; 4 31 9 4; 4 45 99 2]; % Desired outputs
d=[ 1, 1, 0 ; 0, 1, 0 ; 0, 0, 1 ];

for j1=1:3,

 yi=w'*x(:,j1);                      % Network output
 y=sign(yi); 
 if sum(y-d(1,:)') > 0
  error = error+1
 end
end

2 个答案:

答案 0 :(得分:4)

未定义变量错误,并且在定义它之前就使用了它。由于未定义.....它正在发生内置的matlab函数错误。 请勿将变量名称用作MATLAB内置函数。您将此变量重命名为其他变量名,例如myerror。不要忘记初始化它。检查以下示例代码。

for i = 1:10
    error = error+1 ;
end 

上面的代码显示错误输出参数太多。由于该代码采用 error 是内置函数,因此未初始化。

error = 0 ;
for i = 1:10
    error = error+1 ;
end

上面的方法可以正常工作,因为我们已经初始化了 error ,因此代码不会采用内置函数。 但以上不建议。切勿将matlab中的现有函数作为变量名覆盖。建议如下。

myerror = 0 ;
for i = 1:10
    myerror = myerror+1 ;
end

答案 1 :(得分:2)

我怀疑您的问题的根源是因为error是MATLAB函数,并且您尝试将其用作变量,因此出现错误消息“ Error using error”。将您的变量名称更改为my_error之类的名称,它应该可以正常工作。