matlab must agree,Matlab程序出错显示“Matrix dimensions must agree”,怎么办?

我在做毕业设计,是个初学者,刚接触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天了,在线等高手求解,谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值