我在做毕业设计,是个初学者,刚接触matlab不到一周。我的程序和出现的错误如下:
p=[1 1 1;1 2 2;1 3 3;2 1 3;2 2 1;2 3 2;3 1 2]';
t=[22;50;32;28;27;60;47]';
t1=[1 1 1 2 2 2 3;1 2 3 1 2 3 1;1 2 3 3 1 2 2];
ptest=t1
t2 =[22;50;32;28;27;60;47;34;28];
[pn,minp,maxp,tn,mint,maxt] = premnmx(p,t); %对pt矩阵进行归一化处理
dx = [-1,1;-1 1;-1,1;]; %
%BP网络训练
net = newff(dx,[3,5,1],{'tansig','tansig','purelin'},'traingdx');
%%建立模型,并用梯度下降法训练
net.trainParam.show = 100; %轮回显示一次
net.trainParam.Lr = 0.01; %学习速率
net.trainParam.epochs = 50000; %最大训练轮回
net.trainParam.goal = 0.00001; %均方误差
net = train(net,pn,tn); %开始训练
ptest =
1 1 1 2 2 2 3
1 2 3 1 2 3 1
1 2 3 3 1 2 2
TRAINGDX, Epoch 0/50000, MSE 0.35611/1e-005, Gradient 0.649709/1e-006
TRAINGDX, Epoch 100/50000, MSE 0.000741162/1e-005, Gradient 0.0212223/1e-006
TRAINGDX, Epoch 151/50000, MSE 9.29609e-006/1e-005, Gradient 0.0016649/1e-006
TRAINGDX, Performance goal met.
>> p2n= tramnmx(ptest,minp,maxp)
an = sim(net,p2n);
p2n =
-1 -1 -1 0 0 0 1
-1 0 1 -1 0 1 -1
-1 0 1 1 -1 0 0
>> a = postmnmx(an,mint,maxt);
>> a
abs(t2-a)/t2
figure(1)
plot(1:9,t2,':or',1:9,a,'-*');
title('硬度预测值与实际值对比')
legend('实际值','预测值');
ylabel('硬度H')
xlabel('实验组数')
end
a =
22.0341 50.0083 31.8883 28.0778 26.9447 60.0261 46.9988
??? Error using ==> minus
Matrix dimensions must agree.
这个错误折腾了2天了,在线等高手求解,谢谢