matlab [net2,tr]=train(net2,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=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