t2145011 发表于 2006-6-5 20:30

[求助]大家都来看看啊,帮帮忙--程序出错,急等!

p=';<br>t=';<br>for i=1:4<br>      P(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));<br>end<br>for i=1:2<br>T(i,:)=(t(i,:)-min(t(i,:)))/(max(t(i,:))-min(t(i,:)));<br>end<br>P_test=;<br>T_test=;<br>No=;<br>for i=1:3<br>      net=newff(minmax(P),,{'tansig','logsig'});<br>      net.trainParam.epochs=500;<br>      net=init(net);<br>      net=train(net,P,T);<br>      temp=sim(net,P_test);<br>      y(2*i-1,:)=temp(1,:);<br>      y(2*i,:)=temp(2,:);<br>end<br>Y1=;<br>Y2=;<br>Y3=;<br>for i=1:6<br>       error1(i)=norm(Y1(:,i)-T_test(:,i));<br>       error2(i)=norm(Y2(:,i)-T_test(:,i));<br>       error3(i)=norm(Y3(:,i)-T_test(:,i));<br>end<br>figure;<br>plot(1:6,error1);<br>hold on;<br>plot(1:6,error2,'--');<br>hold on;<br>plot(1:6,error3,'-+');<br>hold off;<br>这个程序我是照着书上打的 怎么在matlab里面运行就出现<br>??? Subscripted assignment dimension mismatch.<br>这是为什么呢<br><br><br><br>另外<br>p=';<br>t=';<br>for i=1:4<br>      P(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));<br>end<br>for i=1:2<br>T(i,:)=(t(i,:)-min(t(i,:)))/(max(t(i,:))-min(t(i,:)));<br>end<br>P_test=;<br>T_test=;<br>No=;<br>for i=1:3<br>      net=newff(minmax(P),,{'tansig','logsig'});<br>      net.trainParam.epochs=500;<br>      net=init(net);<br>      net=train(net,P,T);<br>      temp=sim(net,P_test);<br>      y(2*i-1,:)=temp(1,:);<br>      y(2*i,:)=temp(2,:);<br>end<br>Y1=;<br>Y2=;<br>Y3=;<br>for i=1:6<br>       error1(i)=norm(Y1(:,i)-T_test(:,i));<br>       error2(i)=norm(Y2(:,i)-T_test(:,i));<br>       error3(i)=norm(Y3(:,i)-T_test(:,i));<br>end<br>figure;<br>plot(1:6,error1);<br>hold on;<br>plot(1:6,error2,'--');<br>hold on;<br>plot(1:6,error3,'-+');<br>hold off;<br><br><br><br>1,请问各位 这个程序怎么改能让中间层神经元个数为9,12,15的训练误差曲线一张张分开显示出来<br>2,请问这个程序的中间层神经元为什么取9,12,15 我只知道一般是取2倍输入神经元个数加1<br>3,程序中 temp=sim(net,P_test);<br>      y(2*i-1,:)=temp(1,:);<br>      y(2*i,:)=temp(2,:);<br>end<br>Y1=;<br>Y2=;<br>Y3=;<br>for i=1:6<br>       error1(i)=norm(Y1(:,i)-T_test(:,i));<br>       error2(i)=norm(Y2(:,i)-T_test(:,i));<br>       error3(i)=norm(Y3(:,i)-T_test(:,i));<br>end<br>这一段是什么意思? 能一句句解释吗?<br>
[此贴子已经被cdwxg于2006-6-5 22:47:44编辑过]

t2145011 发表于 2006-6-5 20:32

p=';<BR>t=';<BR>a=;<BR>P=p;<BR>for i=1:6<BR>P(a(i),:)=(p(a(i),:)-min(p(a(i),:)))/(max(p(a(i),:))-min(p(a(i),:)));<BR>end<BR>for i=1:3<BR>T(i,:)=(t(i,:)-min(t(i,:)))/(max(t(i,:))-min(t(i,:)));<BR>end<BR>P_train=;<BR>T_train=;<BR>P_test=;<BR>T_test=;<BR>No=;<BR>for i=1:3<BR>      net=newff(minmax(P),,{'tansig','logsig'});<BR>      net.trainParam.epochs=500;<BR>      net=init(net);<BR>      net=train(net,P,T);<BR>      temp=sim(net,P_test);<BR>      y(3*i-2,:)=temp(1,:);<BR>      y(3*i-1,:)=temp(2,:);<BR>      y(3*i,:)=temp(3,:);<BR>end<BR>y1=;<BR>y2=;<BR>y3=;<BR>for i=1:2<BR>   error1(i)=norm(y1(:,i)-T_test(:,i));<BR>   error2(i)=norm(y2(:,i)-T_test(:,i));<BR>   error3(i)=norm(y3(:,i)-T_test(:,i));<BR>end<BR>figure;<BR>plot(1:2,error1,'-*');<BR>hold on;<BR>plot(1:2,error2,'-+');<BR>hold on;<BR>plot(1:2,error3,'-o');<BR>hold off;<BR>我运行这段程序怎么出现<BR>??? Error using ==&gt; plot<BR>Vectors must be the same lengths.<BR>这是为什么,能帮我改改吗?<BR>

cdwxg 发表于 2006-6-5 20:44

<P>第一个程序对的嘛<BR>没出现你说的错误啊<BR>只是过程中图象一直在变,好象是循环画图?<BR>TRAINLM, Epoch 0/500, MSE 0.144577/0, Gradient 1.58027/1e-010<BR>TRAINLM, Epoch 25/500, MSE 0.000817205/0, Gradient 0.00106431/1e-010<BR>TRAINLM, Epoch 50/500, MSE 0.000803527/0, Gradient 0.000133088/1e-010<BR>TRAINLM, Epoch 75/500, MSE 0.000802788/0, Gradient 3.18007e-005/1e-010<BR>TRAINLM, Epoch 100/500, MSE 0.00080275/0, Gradient 1.63291e-005/1e-010<BR>TRAINLM, Epoch 125/500, MSE 0.000802749/0, Gradient 3.2751e-006/1e-010<BR>TRAINLM, Epoch 150/500, MSE 0.000802747/0, Gradient 6.34026e-006/1e-010<BR>TRAINLM, Epoch 175/500, MSE 0.000802747/0, Gradient 1.68385e-006/1e-010<BR>TRAINLM, Epoch 200/500, MSE 0.000802747/0, Gradient 7.49608e-007/1e-010<BR>TRAINLM, Epoch 225/500, MSE 0.000802747/0, Gradient 4.18296e-007/1e-010<BR>TRAINLM, Epoch 250/500, MSE 0.000802747/0, Gradient 7.06752e-006/1e-010<BR>TRAINLM, Epoch 275/500, MSE 0.000802747/0, Gradient 1.59748e-006/1e-010<BR>TRAINLM, Epoch 300/500, MSE 0.000802747/0, Gradient 6.79141e-007/1e-010<BR>TRAINLM, Epoch 325/500, MSE 0.000802747/0, Gradient 3.72053e-007/1e-010<BR>TRAINLM, Epoch 350/500, MSE 0.000802747/0, Gradient 2.33885e-007/1e-010<BR>TRAINLM, Epoch 375/500, MSE 0.000802747/0, Gradient 1.60312e-007/1e-010<BR>TRAINLM, Epoch 400/500, MSE 0.000802747/0, Gradient 1.16607e-007/1e-010<BR>TRAINLM, Epoch 425/500, MSE 0.000802747/0, Gradient 8.85721e-008/1e-010<BR>TRAINLM, Epoch 450/500, MSE 0.000802747/0, Gradient 6.95344e-008/1e-010<BR>TRAINLM, Epoch 475/500, MSE 0.000802747/0, Gradient 5.60244e-008/1e-010<BR>TRAINLM, Epoch 500/500, MSE 0.000802747/0, Gradient 4.60953e-008/1e-010<BR>TRAINLM, Maximum epoch reached, performance goal was not met.</P>
<P>TRAINLM, Epoch 0/500, MSE 0.372089/0, Gradient 1.53817/1e-010<BR>TRAINLM, Epoch 25/500, MSE 0.00230107/0, Gradient 0.0129243/1e-010<BR>TRAINLM, Epoch 50/500, MSE 0.00167333/0, Gradient 0.000656661/1e-010<BR>TRAINLM, Epoch 75/500, MSE 0.00167151/0, Gradient 0.000179325/1e-010<BR>TRAINLM, Epoch 100/500, MSE 0.00167109/0, Gradient 0.000278806/1e-010<BR>TRAINLM, Epoch 125/500, MSE 0.0016708/0, Gradient 0.000110108/1e-010<BR>TRAINLM, Epoch 150/500, MSE 0.0016706/0, Gradient 0.00263094/1e-010<BR>TRAINLM, Epoch 175/500, MSE 0.00167004/0, Gradient 0.00645626/1e-010<BR>TRAINLM, Epoch 200/500, MSE 0.00166972/0, Gradient 0.000271398/1e-010<BR>TRAINLM, Epoch 225/500, MSE 0.00166971/0, Gradient 5.31454e-005/1e-010<BR>TRAINLM, Epoch 250/500, MSE 0.0016697/0, Gradient 1.49537e-005/1e-010<BR>TRAINLM, Epoch 275/500, MSE 0.00166969/0, Gradient 5.0497e-005/1e-010<BR>TRAINLM, Epoch 300/500, MSE 0.00166969/0, Gradient 3.51968e-006/1e-010<BR>TRAINLM, Epoch 325/500, MSE 0.00166969/0, Gradient 1.5791e-006/1e-010<BR>TRAINLM, Epoch 350/500, MSE 0.00166969/0, Gradient 9.09064e-007/1e-010<BR>TRAINLM, Epoch 375/500, MSE 0.00166969/0, Gradient 1.22488e-005/1e-010<BR>TRAINLM, Epoch 400/500, MSE 0.00166969/0, Gradient 3.1262e-006/1e-010<BR>TRAINLM, Epoch 425/500, MSE 0.00166969/0, Gradient 1.36158e-006/1e-010<BR>TRAINLM, Epoch 450/500, MSE 0.00166969/0, Gradient 7.61669e-007/1e-010<BR>TRAINLM, Epoch 475/500, MSE 0.00166969/0, Gradient 4.99883e-007/1e-010<BR>TRAINLM, Epoch 500/500, MSE 0.00166969/0, Gradient 3.70754e-007/1e-010<BR>TRAINLM, Maximum epoch reached, performance goal was not met.</P>
<P>TRAINLM, Epoch 0/500, MSE 0.262531/0, Gradient 0.638631/1e-010<BR>TRAINLM, Epoch 25/500, MSE 0.155096/0, Gradient 0.000140122/1e-010<BR>TRAINLM, Epoch 50/500, MSE 0.155096/0, Gradient 1.83496e-005/1e-010<BR>TRAINLM, Epoch 75/500, MSE 0.155096/0, Gradient 0.00020524/1e-010<BR>TRAINLM, Epoch 100/500, MSE 0.155096/0, Gradient 9.20866e-006/1e-010<BR>TRAINLM, Epoch 125/500, MSE 0.155096/0, Gradient 2.48416e-006/1e-010<BR>TRAINLM, Epoch 150/500, MSE 0.155096/0, Gradient 4.3788e-006/1e-010<BR>TRAINLM, Epoch 175/500, MSE 0.155096/0, Gradient 1.05981e-005/1e-010<BR>TRAINLM, Epoch 200/500, MSE 0.155096/0, Gradient 3.06479e-006/1e-010<BR>TRAINLM, Epoch 225/500, MSE 0.155096/0, Gradient 1.49157e-006/1e-010<BR>TRAINLM, Epoch 250/500, MSE 0.155096/0, Gradient 8.94062e-007/1e-010<BR>TRAINLM, Epoch 275/500, MSE 0.155096/0, Gradient 6.01221e-007/1e-010<BR>TRAINLM, Epoch 300/500, MSE 0.155096/0, Gradient 4.34685e-007/1e-010<BR>TRAINLM, Epoch 325/500, MSE 0.155096/0, Gradient 3.30337e-007/1e-010<BR>TRAINLM, Epoch 350/500, MSE 0.155096/0, Gradient 2.60341e-007/1e-010<BR>TRAINLM, Epoch 375/500, MSE 0.155096/0, Gradient 2.1095e-007/1e-010<BR>TRAINLM, Epoch 400/500, MSE 0.155096/0, Gradient 1.74709e-007/1e-010<BR>TRAINLM, Epoch 425/500, MSE 0.155096/0, Gradient 1.47276e-007/1e-010<BR>TRAINLM, Epoch 450/500, MSE 0.155096/0, Gradient 1.25977e-007/1e-010<BR>TRAINLM, Epoch 475/500, MSE 0.155096/0, Gradient 1.09088e-007/1e-010<BR>TRAINLM, Epoch 500/500, MSE 0.155096/0, Gradient 9.54568e-008/1e-010<BR>TRAINLM, Maximum epoch reached, performance goal was not met.<BR>这个是第一个的运行结果</P>

cdwxg 发表于 2006-6-5 20:46

第二个程序才是??? Subscripted assignment dimension mismatch.<BR><BR>你现在在第二个程序写的错误是前天的那个程序错误,我已经给你改了的啊<BR>哎呀,你这样子总是发帖子没的对照,都不晓得你改成什么样子了<BR>所以你以后一个程序在一个帖子中发,发很多帖子一是让人烦,很少人回给你回答<BR>另外,确实总是要从头到尾看你的程序,浪费很多时间嘛

cdwxg 发表于 2006-6-5 20:51

第二个程序:<br>for i=1:3<br>T(i,:)=(t(i,:)-min(t(i,:)))/(max(t(i,:))-min(t(i,:)));<br>end<br>这个地方有错误哈 Subscripted assignment dimension mismatch<br><FONT color=#ff0000>。。。。。不对哈<br>乱了...晕,不行了,程序运行的不对头。我整不来了哈。错误没找到:(郁闷</FONT>
[此贴子已经被作者于2006-6-5 21:01:11编辑过]

t2145011 发表于 2006-6-5 21:00

不好意思啊我就在这个帖子里发   在我机子上打第一个程序确实是出现<BR>??? Subscripted assignment dimension mismatch.<BR>难道是我的matlab的错误?<BR>第二个程序我的matlab里面真的是<BR>Error using ==&gt; plot<BR>Vectors must be the same lengths.<BR>这个错误 但我的程序中那段<BR>for i=1:3<BR>      net=newff(minmax(P),,{'tansig','logsig'});<BR>      net.trainParam.epochs=500;<BR>      net=init(net);<BR>      net=train(net,P,T);<BR>      temp=sim(net,P_test);<BR>      y(3*i-2,:)=temp(1,:);<BR>      y(3*i-1,:)=temp(2,:);<BR>      y(3*i,:)=temp(3,:);<BR>end<BR>y1=;<BR>y2=;<BR>y3=;<BR>for i=1:2<BR>   error1(i)=norm(y1(:,i)-T_test(:,i));<BR>   error2(i)=norm(y2(:,i)-T_test(:,i));<BR>   error3(i)=norm(y3(:,i)-T_test(:,i));<BR>end<BR>figure;<BR>plot(1:2,error1,'-*');<BR>hold on;<BR>plot(1:2,error2,'-+');<BR>hold on;<BR>plot(1:2,error3,'-o');<BR>hold off;<BR>确实是相对应的并不是前天那个程序的错误

cdwxg 发表于 2006-6-5 21:03

这样吧<BR>你再等等吧,我弄不来了,我的运行和你的完全不一样,不知道我的matlab怎么了可能<BR>我的是第二个出现mismatch,现在都成了一样的循环画图了。<BR>你再等等吧,会有高手帮你解决的。只是不要再重复发贴了,很多程序一样或者差不多的<BR>看都看晕了..呵呵以后注意就好。

branch 发表于 2006-6-5 23:58

第一段程序不能跑是因为P(i,:)这种赋值方式不对,用<BR>P=[];%在循环之前定义<BR>P=%改成这种方式<BR>第二个改T就可以<BR>其实我觉得这种网络训练模式比较烦琐,不适合做大程序。

t2145011 发表于 2006-6-6 09:12

<P>不行啊大哥,我照你说的改了后出现了很多问题可是我重启机子开matlab运行第一个程序又没出现那些问题 程序可以运行且无错,倒是第二个程序我改了一小段<BR>a=;<BR>P=p;<BR>T=t;<BR>for i=1:6<BR>P(a(i),:)=(p(a(i),:)-min(p(a(i),:)))/(max(p(a(i),:))-min(p(a(i),:)));<BR>end<BR>然后也是重启机子开matlab运行也没问题,我真的不知道该怎么搞了我都要抓狂了啊啊啊啊阿啊啊阿<BR></P>

t2145011 发表于 2006-6-6 17:27

回复:(t2145011)[求助]大家都来看看啊,帮帮忙--程...

顶上,高手再帮忙看看特别是第二个程序,另外我第二个程序是与下面这个程序对应编的一个BP,好对2者进行比较,高手帮忙看看<br>p=';<br>t=';<br>a=;<br>P=p;<br>for i=1:6<br>P(a(i),:)=(p(a(i),:)-min(p(a(i),:)))/(max(p(a(i),:))-min(p(a(i),:)));<br>end<br>for i=1:3<br>T(i,:)=(t(i,:)-min(t(i,:)))/(max(t(i,:))-min(t(i,:)));<br>end<br>P_train=;<br>T_train=;<br>P_test=;<br>T_test=;<br>for i=1:5<br>   net=newgrnn(P_train,T_train,i/10);<br>   temp=sim(net,P_train);<br>   j=3*i;<br>   y_out(j-2,:)=temp(1,:);<br>   y_out(j-1,:)=temp(2,:);<br>   y_out(j,:)=temp(3,:);<br>   temp=sim(net,P_test);<br>   y(j-2,:)=temp(1,:);<br>   y(j-1,:)=temp(2,:);<br>   y(j,:)=temp(3,:);<br>end<br>y1=;<br>y2=;<br>y3=;<br>y4=;<br>y5=;<br>y6=;<br>y7=;<br>y8=;<br>y9=;<br>y10=;<br>for i=1:7<br>   error1(i)=norm(y1(:,i)-T_train(:,i));<br>   error2(i)=norm(y2(:,i)-T_train(:,i));<br>   error3(i)=norm(y3(:,i)-T_train(:,i));<br>   error4(i)=norm(y4(:,i)-T_train(:,i));<br>   error5(i)=norm(y5(:,i)-T_train(:,i));<br>end<br>for i=1:2<br>   error6(i)=norm(y6(:,i)-T_test(:,i));<br>   error7(i)=norm(y7(:,i)-T_test(:,i));<br>   error8(i)=norm(y8(:,i)-T_test(:,i));<br>   error9(i)=norm(y9(:,i)-T_test(:,i));<br>   error10(i)=norm(y10(:,i)-T_test(:,i));<br>end<br>plot(1:7,error1,'-*');<br>hold on;<br>plot(1:7,error2,'-+');<br>hold on;<br>plot(1:7,error3,'-h');<br>hold on;<br>plot(1:7,error4,'-d');<br>hold on;<br>plot(1:7,error5,'-o');<br>hold off;<br>figure;<br>plot(1:2,error6,'-*');<br>hold on;<br>plot(1:2,error7,'-+');<br>hold on;<br>plot(1:2,error8,'-h');<br>hold on;<br>plot(1:2,error9,'-d');<br>hold on;<br>plot(1:2,error10,'-o');<br>hold off;
[此贴子已经被作者于2006-6-6 17:28:48编辑过]

happy 发表于 2006-6-6 21:22

回复:(t2145011)[求助]大家都来看看啊,帮帮忙--程...

<P>奇怪了,呵呵<BR>我运行这个帖子里的所有程序都正常<BR>matlab6.5和matlab7.1都试过了<BR>另外每次运行程序前clear一下workspace里的变量</P>

t2145011 发表于 2006-6-7 08:08

<P>我也觉得是我的matlab的问题,楼上那位大哥能帮我看看10楼我提的问题吗?</P>

happy 发表于 2006-6-7 08:11

回复:(t2145011)[求助]大家都来看看啊,帮帮忙--程...

10楼的怎么了?

t2145011 发表于 2006-6-7 09:00

<P>第10楼的程序是个GRNN的预测,第2楼的程序是对第10楼的程序做的一个bp预测,对2者进行比较,看看谁好点,麻烦你看看第2楼的程序合不合要求。</P>

t2145011 发表于 2006-6-7 09:36

up
页: [1] 2
查看完整版本: [求助]大家都来看看啊,帮帮忙--程序出错,急等!