📄 matlab.txt
字号:
clear
%xiao yong,2006.05.06,erclab,hanyang university
clc
close all
load in36
p=in36(:,1:5)
t=in36(:,6)
p=p'
t=t'
[pn,meanp,stdp,tn,meant,stdt] = prestd(p,t)
for j=1:100
nu=randperm(36)
%训练集
iitr=pn(:,nu(1:31))
%提前中止集
iiva=pn(:,nu(32:36))
%测验集
iite=pn(:,37:43)
iitrtt=tn(:,nu(1:31))
iivatt=tn(:,nu(32:36))
iitett=tn(:,37:43)
val.P=iiva
val.T=iivatt
test.P=iite
test.T=iitett
n=10
%rand('state',0);
net.trainParam.epochs =2000
net.trainParam.goal=0.01
net.trainParam.max_fail=20
net.trainParam.min_grad=1e-20
net = newff(minmax(iitr),[n,1],{'logsig' 'purelin'},'trainlm');
[net,tr]=train(net,iitr,iitrtt,[],[],val,test)
a1=sim(net,iitr);
atr=poststd(a1,meant,stdt);
tt1=t(:,nu(1:31))
[m1 b1 r1]=postreg(atr,tt1)
a2=sim(net,iiva)
ava=poststd(a2,meant,stdt)
tt2=t(:,nu(32:36))
[m2 b2 r2]=postreg(ava,tt2)
a3=sim(net,iite)
ate=poststd(a3,meant,stdt)
tt3=t(:,37:43)
[m3 b3 r3]=postreg(tt3,ate)
%相关系数比较好的时候跳出循环
if (r1>=0.95 )&(r2>=0.95)&(r3>=0.95)
save netin36 net
break
end
end
%最后结果的绘图
figure
[m1 b1 r1]=postreg(atr,tt1)
grid
figure
[m2 b2 r2]=postreg(ava,tt2)
grid
figure
[m3 b3 r3]=postreg(tt3,ate)
grid
%文献中的计算结果绘图,他计算的为相关系数0.967,偶记算得为0.957,不过我的计算时间比他快。
aaa=[33.33 37.33 41.46 35.59 40.51 31 34.41];
bbb=[35.5 37 43.5 36.5 42.15 31.67 33.54]
figure
[m4 b4 c4]=postreg(aaa,bbb)
P=[0.5468 1.1131;0.4687 1.1323;0.4096 1.1612;0.5124 1.0659;0.4812 1.0657;0.4409 1.0739;0.5105 1.0443;0.4809 1.4320;0.4579 1.0454];
T=[0.866 1.88;0.845 1.88;0.827 1.88;0.866 3.720;0.845 3.720;0.827 3.720;
0.866 5.500;0845 505;0.827 5.500];
net=newff(minmax(P),[5,20,1],{"purelin","logsig","purelin"},"traingd");
net.trainParam.show=50;
net.trainParam.Ir=0.05;
net.trainParam.epoch=100;
net.trainParam.goal=0;
[net,tr]=train(net,P,T);
a=sim(net,P)
怎么运行的话系统报错??? Error using ==> network/train
Targets are incorrectly sized for network.
Matrix must have 1 rows.
Error in ==> e:matlabm1.m
On line 11 ==> [net,tr]=train(net,P,T);
>> 版主这是怎么回事啊 ???求救 求救
p=[0.5468 1.1131;0.4687 1.1323;0.4096 1.1612;0.5124 1.0659;0.4812 1.0657;0.4409 1.0739;0.5105 1.0443;0.4809 1.4320;0.4579 1.0454]";
t=[0.866 1.88;0.845 1.88;0.827 1.88;0.866 3.720;0.845 3.720;0.827 3.720;
0.866 5.500;0845 505;0.827 5.500]";
net=newff(minmax(p),**************************);
net.trainParam************
net.trainParam************;
*****
net=train(net,p,t);
y=sim(net,p);
y
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -