24小时热门版块排行榜    

查看: 148  |  回复: 4
当前主题已经存档。
【悬赏金币】回答本帖问题,作者caikong将赠送您 34 个金币

caikong

至尊木虫 (著名写手)

骑着火箭的蜗牛

[求助] 有关matlab程序调试【有效期至9月10号】

BP网络模型,数据如下:
a=[0.25 5 8 0.05 0.05;0.5 5 8 0.05 0.05;2 5 8 0.05 0.05; 1 3 8 0.05 0.05;1 4 8 0.05 0.05;1 7 8 0.05 0.05;1 5 3 0.05 0.05;1 5 4 0.05 0.05;1 5 9 0.05 0.05;1 5 8 0.02 0.0375; 1 5 8 0.02 0.075;1 5 8 0.02 0.15;1 5 8 0.05 0.0375;1 5 8 0.05 0.075;1 5 8 0.05 0.15;1 5 8 0.05 0.225;1 5 8 0.05 0.3;1 5 8 0.1 0.075;1 5 8 0.1 0.15;1 5 8 0.1 0.3;1 5 8 0.2 0.075;1 5 8 0.2 0.15;1 5 8 0.2 0.225]
b=[9;1;6;1;2;3;111;47;7;1;17;6;4;25;5;3;2;1;9;2;1;3;2;1]
c=[1 5 8 0.05 0.05;1 6 8 0.05 0.05;1 5 6 0.05 0.05;1 5 8 0.02 0.3;1 5 8 0.05 0.225;1 5 8 0.1 0.225]
a=a'
b=b'
c=c'
net=newff(minmax(a),[12 1],{'tansig' 'purelin'}, 'trainlm')
net.trainParam.show = 50;  
   net.trainParam.lr = 0.001;  
   net.trainParam.epochs = 10000;  
   net.trainParam.goal = 1e-7;   
    net.trainParam.min_grad = 1e-9;  
   [net,tr]=train(net,a,b);         
figure
y=sim(net,c)  
但输入到程序里后,出现错误提示
??? Error using ==> network.train
Targets are incorrectly sized for network.
Matrix must have 23 columns.   
请问该怎么调试?给个切实可行的修改后的程序。
一定重谢~~

» 猜你喜欢

众鸟高飞尽,孤云独去闲。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zxh19836718

金虫 (小有名气)

★ ★ ★ ★ ★
caikong(金币+5,VIP+0):3KU
可能由于你自己的数据输入方面的问题!比如b的 应该与a 对应,a为23columns. 而b
为24columns.不一致,不能运算。把a改为24columns。加行数据;试试。
工作,挣钱
2楼2008-09-07 20:10:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

beckham277

木虫 (职业作家)

二楼的很有可能吧
3楼2008-09-07 22:33:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

尘埃_bear

木虫 (正式写手)


caikong(金币+1,VIP+0):前面已经说出来,所以只给你一个BB
楼主的b为24个数据,对应的应该是23个数据,将b调整为23个数据之后,程序能成功通过调试。
楼主可能是头几次写MATLAB程序,最好在赋值的语句后能添加一个分号“;”,这样屏幕不会显得太繁杂。以下是修改后的程序代码,楼主可以调试下,主要是修改了b的大小,将24个数据变为23个数据,楼主可以核实下实际数据情况将a与b的行列数据对应起来。

a=[0.25 5 8 0.05 0.05;0.5 5 8 0.05 0.05;2 5 8 0.05 0.05; 1 3 8 0.05 0.05;1 4 8 0.05 0.05;1 7 8 0.05 0.05;1 5 3 0.05 0.05;1 5 4 0.05 0.05;1 5 9 0.05 0.05;1 5 8 0.02 0.0375; 1 5 8 0.02 0.075;1 5 8 0.02 0.15;1 5 8 0.05 0.0375;1 5 8 0.05 0.075;1 5 8 0.05 0.15;1 5 8 0.05 0.225;1 5 8 0.05 0.3;1 5 8 0.1 0.075;1 5 8 0.1 0.15;1 5 8 0.1 0.3;1 5 8 0.2 0.075;1 5 8 0.2 0.15;1 5 8 0.2 0.225];
b=[9;1;6;1;2;3;111;47;7;1;17;6;4;25;5;3;2;1;9;2;1;3;2];
c=[1 5 8 0.05 0.05;1 6 8 0.05 0.05;1 5 6 0.05 0.05;1 5 8 0.02 0.3;1 5 8 0.05 0.225;1 5 8 0.1 0.225];
a=a';
b=b';
c=c';
net=newff(minmax(a),[12 1],{'tansig' 'purelin'}, 'trainlm');
net.trainParam.show = 50;  
   net.trainParam.lr = 0.001;  
   net.trainParam.epochs = 10000;  
   net.trainParam.goal = 1e-7;   
    net.trainParam.min_grad = 1e-9;  
   [net,tr]=train(net,a,b);         
figure
y=sim(net,c)  

这样程序就能调试成功了,楼主试试,至于答案是不是楼主所要,就得看语句方面了,呵呵 :)
4楼2008-09-10 12:50:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 caikong 的主题更新
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
信息提示
请填处理意见