【问题标题】:What is meant by "too many output arguments"?“输出参数太多”是什么意思?
【发布时间】:2018-11-15 09:25:32
【问题描述】:

我运行此代码,但“错误函数”中有错误。 我收到的错误消息:

错误使用错误

输出参数过多。

有谁知道问题出在哪里?

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 函数,您尝试将其用作变量,这可能是您的问题的根源(“Error using error”)。将变量名称更改为 my_error 或类似名称。
  • 我想计算错误,但不幸的是我没有得到任何结果。
  • @A.QE。您应该编辑问题以添加变量定义,并使用 nino 的显式值。 @am304 您应该将其发布为答案,而不是评论
  • @Brice 谢谢,现在完成。

标签: matlab function


【解决方案1】:

变量error未定义,在定义前使用。因为它没有定义.....它正在采取内置的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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-07
      • 1970-01-01
      相关资源
      最近更新 更多