matlab超出维度,求助。。。matlab索引超出维度要怎么修改。。。谢谢
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
程序如下
%%六種板形缺陷
y=-1:0.2:1;%殘余應力數目(橫向)
p1=y;%左邊浪
p2=-p1;%右邊浪
p3=3*(y.^2)/2-0.5;%中間浪
p4=-p3;%雙邊浪
p5=0.125*(35*(y.^4)-30*(y.^2)+3);%四分浪
p6=-p5;%邊中浪
pall=[p1;p2;p3;p4;p5;p6];
fg1=figure('numbertitle','off','name','六種標準板形缺陷')
subplot(2,2,1);
plot(y,p1,y,p2);title('一次板形');text(1,1,'左邊浪');text(1,-1,'右邊浪');xlabel('板寬坐標');ylabel('殘余應力');
subplot(2,2,2);
plot(y,p3,y,p4);title('二次板形');text(1,1,'中間浪');text(1,-1,'雙邊浪');xlabel('板寬坐標');ylabel('殘余應力');
subplot(2,2,3);
plot(y,p5,y,p6);title('四次板形');text(1,1,'四分浪');text(1,-1,'邊中浪');xlabel('板寬坐標');ylabel('殘余應力');
eo1=2*rand(200,3)-1;%樣本輸出
for i=1:200
eo(i,:)=eo1(i,:)/(abs(eo1(i,1))+abs(eo1(i,2))+abs(eo1(i,3)));%板形參數
end
[row,col]=size(eo);
ei=[];%訓練樣本
for k=1:row
eil(k,:)=eo(k,1)*p1+eo(k,2)*p3+eo(k,3)*p5;%混合板形參數
end
for z=1:row
for i=1:6
ei(z,i)=sqrt(sum((eil(z,:)-pall(i,:)).^2));%歐式距離
end
eo2=eo1'
ei1=ei'
end
%%BP神經網絡學習
p_train=ei';%訓練數據輸入
outputdata=eo(1:120,:)';%訓練數據輸出
[inputdata,ps1]=mapminmax(p_train);%歸一化處理
net=newff(minmax(inputdata),[13 3],{'tansig','purelin'});%創建網絡
net.trainParam.epochs=1000;%訓練步數
net.trainParam.goal=0.0002;
net=train(net,inputdata(:,1:120),outputdata);%開始訓練
%delete('net2.mat');
save net2 net;%保存網絡
%%檢驗網絡
p_test=inputdata(:,1:120);
T_test=sim(net,p_test);
error2=eo(1:120,:)-T_test';
%%仿真測試示例
s_test=inputdata(:,121);
%fg2=figure('numbertitle','off','name','待識別的板形殘余應力信號圖');
%plot(y,ei1(121,;));title('待識別板形信號','fontsize',25);xlabel('板寬坐標','fontsize',15);ylabel('殘余應力','fontsize',15);grid;
answer=sim(net,s_test)';
fg3=figure('numbertitle','off','name','系統板形缺陷識別結果');
subplot(2,2,1);
if answer(1,1)>0
plot(y,answer(1,1)*p1);xlabel('板寬坐標','fontsize',10);ylabel('殘余應力','fontsize',10);grid;title(['左邊浪隸屬度:' num2str(answer(1,1))]);
plot(y,answer(1,1)*p1);xlabel('板寬坐標','fontsize',10);ylabel('殘余應力','fontsize',10);grid;title(['右邊浪隸屬度:' num2str(answer(1,1))]);
end
if answer(1,1)==0
plot(y,answer(1,1)*p1);xlabel('板寬坐標','fontsize',10);ylabel('殘余應力','fontsize',10);grid;title('無一次成分');
end
subplot(2,2,2);
if answer(1,2)>0
plot(y,answer(1,2)*p3);xlabel('板寬坐標','fontsize',10);ylabel('殘余應力','fontsize',10);grid;title(['中間浪隸屬度:' num2str(answer(1,2))]);
else
plot(y,answer(1,2)*p3);xlabel('板寬坐標','fontsize',10);ylabel('殘余應力','fontsize',10);grid;title(['雙邊浪隸屬度:' num2str(answer(1,2))]);
end
if answer(1,2)==0
plot(y,answer(1,2)*p3);xlabel('板寬坐標','fontsize',10);ylabel('殘余應力','fontsize',10);grid;title('無二次成分');
end
subplot(2,2,3);
if answer(1,3)>0
plot(y,answer(1,3)*p5);xlabel('板寬坐標','fontsize',10);ylabel('殘余應力','fontsize',10);grid;title(['四分浪隸屬度:' num2str(answer(1,3))]);
else
plot(y,answer(1,3)*p5);xlabel('板寬坐標','fontsize',10);ylabel('殘余應力','fontsize',10);grid;title(['邊中浪隸屬度:' num2str(answer(1,3))]);
end
if answer(1,3)==0
plot(y,answer(1,3)*p5);xlabel('板寬坐標','fontsize',10);ylabel('殘余應力','fontsize',10);grid;title('無四次成分');
end
error22=eo(121,:)-answer;
fg4=figure('numbertitle','off','name','系統板形缺陷識別結果對比');
plot(y,answer(1,1)*p1+answer(1,2)*p3+answer(1,3)*p5,'r',y,ei1(121,:),'b');title('測試結果對比','fontsize',25);xlabel('板寬坐標','fontsize',15);ylabel('殘余應力','fontsize',15);grid;
legend('識別結果','待識別板形');
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的matlab超出维度,求助。。。matlab索引超出维度要怎么修改。。。谢谢的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git reset 命令详解(二)——
- 下一篇: 写一函数,输入一个四位数字,要求输出这四