无泪11 无泪11
关注数: 1 粉丝数: 3 发帖数: 1,509 关注贴吧数: 2
求助:新手问题,高手来帮下忙 本人做毕业设计,设计了一个基于MATLAB的BP神经网络,有部分是参考前辈的东西,具体程序:var=21;lay1=46;lay2=30;out=1;test=148;for i=1:var p_max(i)=max(p(i,:)); p_min(i)=min(p(i,:));endfor i=1:var p(i,:)=(p(i,:)-p_min(i))/(p_max(i)-p_min(i)+eps); p_test(i,:)=(p_test(i,:)-p_min(i))/(p_max(i)-p_min(i)+eps);endfor i=1:out t_max(i)=max(t(i,:)); t_min(i)=min(t(i,:));endfor i=1:outt(i,:)=(t(i,:)-t_min(i))/(t_max(i)-t_min(i)+eps);t_test(i,:)=(t_test(i,:)-t_min(i))/(t_max(i)-t_min(i)+eps);endp_test=p;t_test=t;net=newff(minmax(p),[lay1,out],{'tansig','logsig'},'trainlm');net.trainParam.epochs=2000;%训练次数net.trainParam.show=25;net.trainParam.goal=0.00005;%目标(误差)lp.lr=0.001;%学习率lp.mc=0.9;%动量因子net=train(net,p,t);y=sim(net,p_test);%还原为实际值,也可以根据实际情况,采用处理值error=y-t_test;for i=1:out t_test(i,:)=t_test(i,:)*(t_max(i)-t_min(i))+t_min(i); y(i,:)=y(i,:)*(t_max(i)-t_min(i))+t_min(i);end figure(2),plot(t_test,t_test,'g-'),hold on;plot(y,t_test,'rs'),xlabel('目标值'),ylabel('实际值'),title('目标与实际的拟合情况'),legend('目标值','实际值');hold off;for i=1:out figure(2+i),plot(1:test,error(i,:),'r+'),title('相对误差分布图');end输入例如p(21*148),t(1*148)后运行,显示的是Error in ==> Untitled2 at 12 p_test(i,:)=(p_test(i,:)-p_min(i))/(p_max(i)-p_min(i)+eps);请问是什么地方出现问题了,拜托帮忙解决一下
1 下一页