查看: 9462|回复: 29|关注: 0

[已答复] MATLAB程序报错:error:net.LW{2,1} must be a 0-by-5 matrix

[复制链接]

新手

14 麦片

财富积分


050


25

主题

83

帖子

0

最佳答案
  • 关注者: 2
发表于 2015-9-7 21:45:16 | 显示全部楼层 |阅读模式
看了很多关于这各问题的帖子,能改的都改了,还是不行
??? Error using ==> network.subsasgn at 551
net.LW{2,1} must be a 0-by-5 matrix.

Error in ==> fun at 29
net.lw{2,1}=reshape(w2,outputnum,hiddennum);

Error in ==> Genetic at 52
    individuals.fitness(i)=fun(x,inputnum,hiddennum,outputnum,net,inputn,outputn);
    %染色体的适应度



%输入1,隐藏层5,输出1
程序部分清单:
net.lw{2,1}
net.iw{1,1}=reshape(w1,hiddennum,inputnum);
net.lw{2,1}=reshape(w2,outputnum,hiddennum);
net.b{1}=reshape(b1,hiddennum,1);
net.b{2}=reshape(b2,outputnum,1);


论坛优秀回答者

权威

4327 麦片

财富积分



3

主题

8873

帖子

987

最佳答案
QQ
  • 关注者: 280
发表于 2015-9-7 21:46:34 | 显示全部楼层
你先看下w2是个多大的矩阵
以及outputnum,hiddennum都是多少

新手

14 麦片

财富积分


050


25

主题

83

帖子

0

最佳答案
  • 关注者: 2
 楼主| 发表于 2015-9-7 22:17:27 | 显示全部楼层

outputnum是1,hiddennum是5
可是
net.lw{2,1}显示
ans =

   Empty matrix: 0-by-5

新手

14 麦片

财富积分


050


25

主题

83

帖子

0

最佳答案
  • 关注者: 2
 楼主| 发表于 2015-9-7 22:23:29 | 显示全部楼层
转基因奔奔 发表于 2015-9-7 21:46
你先看下w2是个多大的矩阵
以及outputnum,hiddennum都是多少
input   
1.24  1.27
1.36  1.74
1.38  1.64
1.38  1.82
1.38  1.90         
1.40  1.70
1.48  1.82
1.54  1.82
1.56  2.08
1.24  1.80
1.28  1.84
1.40  2.04

output=[2 4 2 5 5 2 5 2 4 3 4 3]';

新手

14 麦片

财富积分


050


25

主题

83

帖子

0

最佳答案
  • 关注者: 2
 楼主| 发表于 2015-9-7 23:01:29 | 显示全部楼层
转基因奔奔 发表于 2015-9-7 21:46
你先看下w2是个多大的矩阵
以及outputnum,hiddennum都是多少

麻烦你了,请问运行这个程序需要遗传工具箱么

论坛优秀回答者

权威

4327 麦片

财富积分



3

主题

8873

帖子

987

最佳答案
QQ
  • 关注者: 280
发表于 2015-9-8 08:36:16 | 显示全部楼层
小小电炉 发表于 2015-9-7 22:17
outputnum是1,hiddennum是5
可是
net.lw{2,1}显示

w2是多大的?有看一下么?

新手

14 麦片

财富积分


050


25

主题

83

帖子

0

最佳答案
  • 关注者: 2
 楼主| 发表于 2015-9-8 11:21:00 | 显示全部楼层
转基因奔奔 发表于 2015-9-8 08:36
w2是多大的?有看一下么?

调了一个晚上,那个错误解决了,现在又出现了这个,也研究了很久了,觉得没错啊,mapminmax听说需要用lisvm,也装了
??? Error using ==> minus
Matrix dimensions must agree.

Error in ==> mapminmax>apply_process at 140
y = rangey * (x-ps.xmin(:,oneQ))./rangex(:,oneQ) + ps.ymin;

Error in ==> boiler_process at 59
      out1 = apply_process(in2,in3);

Error in ==> mapminmax at 71
boiler_process

Error in ==> Genetic at 132
inputn_test=mapminmax('apply',input_test,inputps)

论坛优秀回答者

权威

4327 麦片

财富积分



3

主题

8873

帖子

987

最佳答案
QQ
  • 关注者: 280
发表于 2015-9-8 11:23:38 | 显示全部楼层
这个是你矩阵大小不一致,导致不能相减。
但是我不清楚
y = rangey * (x-ps.xmin(:,oneQ))./rangex(:,oneQ) + ps.ymin;
这个是程序调用的还是你自己编写的。

mapminmax好像是归一化函数吧,你最好检查一下输入是不是有问题

新手

14 麦片

财富积分


050


25

主题

83

帖子

0

最佳答案
  • 关注者: 2
 楼主| 发表于 2015-9-8 11:27:00 | 显示全部楼层
转基因奔奔 发表于 2015-9-8 11:23
这个是你矩阵大小不一致,导致不能相减。
但是我不清楚
y = rangey * (x-ps.xmin(:,oneQ))./rangex(:,oneQ) ...

是归一化问题,这个函数是matlab mapminmax中的

论坛优秀回答者

权威

4327 麦片

财富积分



3

主题

8873

帖子

987

最佳答案
QQ
  • 关注者: 280
发表于 2015-9-8 11:28:57 | 显示全部楼层
小小电炉 发表于 2015-9-8 11:27
是归一化问题,这个函数是matlab mapminmax中的

那只可能是你输入的inputn_test=mapminmax('apply',input_test,inputps)中参数的问题了。检查一下看看?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表