本人要做对六种控制图模式的识别,每种控制图模式提取了十四种特征值,下面是我编写的训练程序,S是一个14*100的矩阵,A是6*100的矩阵。这个程序运行出来只分了一个类别出来,就只有+号显示,其它五种类别没有识别出来。求各路神仙指点。本人小白一个。

P=S;
C=A;
T=ind2vec(C);
i=1;
cla
for i=1:600
if C(i)==1
plot(P(1,i),P(2,i),'+')
hold on
elseif C(i)==2
plot(P(1,i),P(2,i),'o')
hold on
elseif C(i)==3
plot(P(1,i),P(2,i),'-')
hold on
elseif C(i)==4
plot(P(1,i),P(2,i),'*')
hold on
elseif C(i)==5
plot(P(1,i),P(2,i),'pentagram')
hold on
elseif C(i)==6
plot(P(1,i),P(2,i),'diamond')
hold on
end
end
xlabel('P(1)');
ylabel('P(1)');
net=newlvq(minmax(P),6,[0.16 0.16 0.17 0.17 0.17 0.17],0.1);
hold on
W1=net.iw{1};
plot(W1(1,1),W1(1,2),'r*');
xlabel('P(1),W(1)');
ylabel('P(1),W(1)');
net.trainParam.epochs=150;
net.trainParam.show=Inf;
net=train(net,P,T);
cla;
plotvec(P,C);
hold on;
plotvec(net.IW{1}',vec2ind(net.LW{2}),'o');
xlabel('P(1),W(1)');
ylabel('P(1),W(1)')


P=S;
C=A;
T=ind2vec(C);
i=1;
cla
for i=1:600
if C(i)==1
plot(P(1,i),P(2,i),'+')
hold on
elseif C(i)==2
plot(P(1,i),P(2,i),'o')
hold on
elseif C(i)==3
plot(P(1,i),P(2,i),'-')
hold on
elseif C(i)==4
plot(P(1,i),P(2,i),'*')
hold on
elseif C(i)==5
plot(P(1,i),P(2,i),'pentagram')
hold on
elseif C(i)==6
plot(P(1,i),P(2,i),'diamond')
hold on
end
end
xlabel('P(1)');
ylabel('P(1)');
net=newlvq(minmax(P),6,[0.16 0.16 0.17 0.17 0.17 0.17],0.1);
hold on
W1=net.iw{1};
plot(W1(1,1),W1(1,2),'r*');
xlabel('P(1),W(1)');
ylabel('P(1),W(1)');
net.trainParam.epochs=150;
net.trainParam.show=Inf;
net=train(net,P,T);
cla;
plotvec(P,C);
hold on;
plotvec(net.IW{1}',vec2ind(net.LW{2}),'o');
xlabel('P(1),W(1)');
ylabel('P(1),W(1)')