Matlab总提示:串联的矩阵的维度不一致。麻烦看看还有其他问题吗,非常谢谢!

%原始数据%车速(单位:km./h)sqcs=[3236543241783836743333395520394915443152146353503735552040382... %原始数据
%车速(单位:km./h)
sqcs=[32 36 54 32 41 78 38 36 74 33 33 39 55 20 39 49 15 44 31 52 14 63 53 50 37 35 55 20 40 38 23 39 16 23 38 13 16 36 36 7 56 54 16 32 54 40 32 18 69 26 39 30 39 41 32 49 41 19 39 51 27];
%乘客舒适性评价值(男性)
sqckssxpjzn=[0 -1 1 0 -1 0 -2 1 2 -1 -1 -1 0 -2 -1 0 -2 0 -1 0 -1 0 -1 1 0 -1 -1 -1 0 -1 -1 -1 -1 0 -1 0 -1 1 1 0 1 1 -1 1 1 0 1 -1 1 -1 0 -1 1 1 1 -1 -1 -1 1 1 -1];
%乘客舒适性评价值(女性)
sqckssxpjznv=[2 0 -1 1 -1 0 -2 -1 0 -3 -2 1 -1 -3 -1 1 -3 1 -2 1 -3 -2 1 -1 -1 -2 0 -2 1 -1 -2 2 -3 -2 0 -1 -2 -1 -1 -1 -1 0 -2 -2 0 -2 -1 -1 0 -2 -1 -1 -2 -1 -2 -1 0 -2 -1 0 -2];
%油耗(单位:L./100km)
yh=[14.9 15.1 21 9.4 0.9 13.1 2.3 11.4 7.9 2.5 3.2 16.7 14 0 0 6.7 0 14.1 0 19.2 0 15.8 5.3 18.9 5.4 11.6 0 0 11.5 0.7 0 13.9 0 0 16.3 0 0 14.2 16.7 0 18 6.8 0 8.2 2.5 13.1 6.9 0 8.2 0 8.4 0 5.3 14.2 2.6 0.1 4.9 2.9 14.3 11.9 7.1];
p=[sqcs;sqckssxpjzn;sqckssxpjznv]; %输入数据矩阵
t=[yh]; %目标数据矩阵

%利用函数mapstd()对数据进行归一化
[pn,ps]=mapstd(p); %对于输入矩阵p和输出矩阵t进行归一化处理
[tn, ts]=mapstd(t)
dx=[-1,1;-1,1;-1;1]; %归一化处理后最小值为-1,最大值为1
matlab菜鸟,提示:串联的矩阵的维度不一致。怎么解决,顺便看看还有什么问题,谢谢!
%BP网络训练
net=newff(dx,[3,7,1],{'tansig','tangsig','purelin'},'traingdx'); %建立模型,并用梯度下降法%训练
net.trainParam.show=1000; %1000轮回显示一次结果
net.trainParam.Lr=0.05; %学习速率为0.05
net.trainParam.epochs=50000; %最大训练轮回为50000次
net.trainParam.goal=0.65.*10.^(-3).; %均方误差
net=train(net,pn,tn); %开始训练,其中pn,tn分别为输入输出样本

%利用原始数据对BP网络仿真
an=sim(net,pn); %用训练好的模型进行仿真
out=mapstd('reverse',An,ts);%把仿真得到的数据还原为原始的数量级

%因样本容量有限使用训练数据进行测试,通常必须用新鲜数据进行测试
x=1;61;
newk=a(1,:);
figure(1);
subplot(2,1,1);plot(x,newk,'r - o',x,yh,'b - - +'); %绘制油耗量对比图
legend('网络输出油耗量','实际油耗量');
xlabel('时间频次数');ylabel('油耗量./(L./100km)');
title('运用BP神经网络工具箱油耗量学习和测试对比图') 收起
Matlab总提示:串联的矩阵的维度不一致。麻烦看看还有其他问题吗,非常谢谢!
求,靠谱的Matlab神经网络工具箱帮助手册中文版,万分感谢!
展开
 我来答
百度网友bbe3b5a
2019-07-19 · TA获得超过1116个赞
知道答主
回答量:16
采纳率:0%
帮助的人:5126
展开全部

串联的矩阵的维度不一致。表明在矩阵进行运算时,两个矩阵的内积不相等。

1、dx=[-1,1;-1,1;-1;1] 这句代码多了一个分号,更改为dx=[-1,1;-1,1;-1,1];。

2、net=newff(dx,[3,7,1],{'tansig','tangsig','purelin'},'traingdx'); 代码中的训练方法('tangsig')书写多了一个字母,更改为 'tansig'。

3、out=mapstd('reverse',An,ts);这句代码中的一个字母(An)书写错误,更改为为  an。

4、newk=a(1,:);这句代码中的一个字母n,更改为newk=an(1,:)。

运行结果如下图:

扩展资料:

神经网络研究方向

神经网络的研究可以分为理论研究和应用研究两大方面。

理论研究可分为以下两类:

1、利用神经生理与认知科学研究人类思维以及智能机理。

2、利用神经基础理论的研究成果,用数理方法探索功能更加完善、性能更加优越的神经网络模型,深入研究网络算法和性能,如:稳定性、收敛性、容错性、鲁棒性等;开发新的网络数理理论,如:神经网络动力学、非线性神经场等。

应用研究可分为以下两类:

1、神经网络的软件模拟和硬件实现的研究。

2、神经网络在各个领域中应用的研究。这些领域主要包括:

模式识别、信号处理、知识工程、专家系统、优化组合、机器人控制等。随着神经网络理论本身以及相关理论、相关技术的不断发展,神经网络的应用定将更加深入。

参考资料来源:百度百科-神经网络

lhmhz
高粉答主

2018-03-12 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17040

向TA提问 私信TA
展开全部

1、Matlab总提示:串联的矩阵的维度不一致。是  dx=[-1,1;-1,1;-1;1] 这句代码出了一个小问题,即多了一个分号,应该为dx=[-1,1;-1,1;-1,1];

2、net=newff(dx,[3,7,1],{'tansig','tangsig','purelin'},'traingdx'); 这句代码中的训练方法('tangsig')书写多了一个字母,应该为 'tansig'。

3、out=mapstd('reverse',An,ts);这句代码中的一个字母(An)书写错误,应该为  an。

4、newk=a(1,:);这句代码中的一个字母n,应该为newk=an(1,:);

5、x=1;61;这句代码中的一个字符书写错误,应该为:。另一问题,x应为列向量,即x=[1:61]';

更改后运行得到如下结果

更多追问追答
追问
请问这样的输出结果是不是结果不太好?还有怎么样得到如图,因为菜鸟,没有找到nntraining,只找到nn回归那个,nntraning从哪个界面得到呢?
追答

这个结果是有误差的,因为用神经网络拟合是有一定的随意性的,一般开机运行的第一次的结果是比较合理的(当训练方法和控制要求选择合理时)。好坏可以看Training: R值是否接近于1。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式