我该如何解决我的程序中的此错误(学习网络)?它出现在sim之后。互联网。
Error in ==> network.sim>simargs at 236 switch class(P) ??? Output argument "Pi" (and maybe others) not assigned during call to "C:\Program Files\MATLAB\R2008b\toolbox\nnet\nnet\@network\sim.m>simargs". Error in ==> network.sim at 173 case 2, [err,X,Xi,Ai,T,Q,TS,matrixForm] = simargs(net,X); Error in ==> mlptrptest at 62 y = sim(net,A{1,1})
回答:
注意:不要陷入与我相同的陷阱。
Simulink中还有一个名为
SIM的功能,可能会在
神经网络工具箱中搜索功能
SIM时显示。
我要检查的第一件事是第二个输入参数A{1,1}的格式正确。具体来说, A{1,1}必须是
单元格数组或
double的矩阵。如果它采用任何其他形式,例如
任何 其他 类的
结构或矩阵,您将收到所看到的错误。诚然,子函数simargs不能很好地处理此特定错误,因为它会为您提供一些无法真正告诉您基本问题的隐秘消息,即您的输入格式不正确。
这里有几件事要检查:
- 您是真的要传递单元格数组A的第一个元素作为输入参数,还是要简单地传递单元格数组本身?如果是第二个选项,请执行以下操作:
y = sim(net,A);
- 如果确实要传递A的第一个元素作为输入参数,请使用CLASS函数仔细检查它的类:
class(A{1,1}) 如果没有看到double显示,则表示A的第一个元素不是正确的类型。如果是矩阵,则可以将其转换为double,然后再将其传递给SIM,如下所示:
y = sim(net,double(A{1,1}));
更多&回答...