clear all
clc
close all
P=[3.03 2.38 4.26 5.65 6.62 1.21;3.05 2.34 4.08 5.53 6.66 1.25;3.08 2.36 4.19 5.61 6.54 1.26;3.15 2.39 4.25 5.78 6.49 1.25;3.19 2.42 4.31 5.80 6.78 1.28;3.51 18.78 6.46 7.53 9.61 1.28;3.56 14.07 6.02 7.59 9.53 1.33;3.64 15.48 6.57 7.67 9.48 1.36;3.66 24.50 6.59 7.62 9.42 1.35;3.68 15.26 6.32 7.71 9.55 1.39;4.35 19.24 8.54 10.4 15.9 1.41;4.36 21.78 8.61 10.2 16.1 1.43;4.38 25.35 8.69 10.7 15.7 1.47;4.39 22.50 8.63 11.0 16.4 1.51;4.41 17.65 7.52 10.8 16.2 1.46;9.35 27.52 9.52 15.2 20.3 1.51;9.40 21.96 9.61 15.6 19.2 1.57;9.69 18.29 9.18 16.2 19.7 1.64;9.78 29.78 9.68 15.9 21.1 1.68;9.88 24.32 9.47 15.7 20.3 1.62];
T=[0 0 0;0 0 0;0 0 0;0 0 0;0 0 0;1 0 0;1 0 0;1 0 0;1 0 0;1 0 0;0 1 0;0 1 0;0 1 0;0 1 0;0 1 0;0 0 1;0 0 1;0 0 1;0 0 1;0 0 1]';
net2=newff(minmax(P),[12,1],{'logsig','purelin'},'traingdm');
%设置训练参数
net2.trainParam.goal=0.001;
net2.trainParam.epochs=100;
net2.trainParam.lr=0.05;
net2.trainParam.show=1;
net2.trainParam.mc=0.9;
%调用Traingdm算法训练BP网络
[net2,tr]=train(net2,P,T);
% 对BP网络进行仿真
A=sim(net,P);
错误提示:
错误使用 network/train (line 320)
Inputs and targets have different numbers of samples.
出错 xunlian (line 15)
[net2,tr]=train(net2,P,T);
输入数据P与输出数据T的维度不匹配。改成下面的程序:
clear all
clc
close all
P=[3.03 2.38 4.26 5.65 6.62 1.21;3.05 2.34 4.08 5.53 6.66 1.25;3.08 2.36 4.19 5.61 6.54 1.26;3.15 2.39 4.25 5.78 6.49 1.25;3.19 2.42 4.31 5.80 6.78 1.28;3.51 18.78 6.46 7.53 9.61 1.28;3.56 14.07 6.02 7.59 9.53 1.33;3.64 15.48 6.57 7.67 9.48 1.36;3.66 24.50 6.59 7.62 9.42 1.35;3.68 15.26 6.32 7.71 9.55 1.39;4.35 19.24 8.54 10.4 15.9 1.41;4.36 21.78 8.61 10.2 16.1 1.43;4.38 25.35 8.69 10.7 15.7 1.47;4.39 22.50 8.63 11.0 16.4 1.51;4.41 17.65 7.52 10.8 16.2 1.46;9.35 27.52 9.52 15.2 20.3 1.51;9.40 21.96 9.61 15.6 19.2 1.57;9.69 18.29 9.18 16.2 19.7 1.64;9.78 29.78 9.68 15.9 21.1 1.68;9.88 24.32 9.47 15.7 20.3 1.62];
T=[0 0 0;0 0 0;0 0 0;0 0 0;0 0 0;1 0 0;1 0 0;1 0 0;1 0 0;1 0 0;0 1 0;0 1 0;0 1 0;0 1 0;0 1 0;0 0 1;0 0 1;0 0 1;0 0 1;0 0 1]';
net2=feedforwardnet(10);
%设置训练参数
net2.trainParam.goal=0.001;
net2.trainParam.epochs=100;
net2.trainParam.lr=0.05;
net2.trainParam.show=1;
net2.trainParam.mc=0.9;
%调用Traingdm算法训练BP网络
[net2,tr]=train(net2,P',T);
% 对BP网络进行仿真
A=sim(net2,P');
结果:
A =
列 1 至 14
0.0309 0.0394 0.0440 0.0385 0.0571 0.9922 0.9802 0.9930 1.0042 0.9908 0.0307 0.0307 0.0147 -0.2278
-0.0407 -0.0455 -0.0435 -0.0433 -0.0326 -0.0146 -0.0132 -0.0151 -0.0151 -0.0121 0.9200 0.9813 0.9927 1.0665
0.0125 0.0036 0.0027 0.0056 0.0028 -0.0097 -0.0062 -0.0065 -0.0089 -0.0070 -0.0466 -0.0762 0.0093 0.1634
列 15 至 20
0.0063 -0.3714 0.0163 0.0225 0.0169 0.0194
0.9836 0.5031 0.0191 0.0181 0.0465 0.0319
0.0001 0.9498 1.0419 1.0473 1.0665 1.0536