"too many output arguments"是什么意思?



我运行了这段代码,但在"错误函数"中有一个错误。我收到的错误信息是:

使用错误时出错

输出参数太多。

有人知道问题出在哪里吗?

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

变量error未定义,在定义之前使用。由于未定义。。。。。它采用了内置的matlab函数误差不要将变量名用作MATLAB内置函数。您可以将此变量重命名为其他变量名,例如myerror。不要忘记初始化它。查看下面的示例代码。

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

上面的代码显示错误输出参数过多。因为代码采用了错误是内置函数,因为它没有初始化。

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

上面的工作原理,因为我们已经初始化了错误,代码将不会采用内置函数。但以上并不是建议的。切勿将matlab中现有的函数重写为变量名。建议如下。

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

我怀疑问题的根源是因为error是一个MATLAB函数,并且您试图将其用作变量,因此出现错误消息"error using error"。将变量名更改为类似my_error或类似的名称,它应该可以工作。

最新更新