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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab总提示:串联的矩阵的维度不一致。麻烦看看还有其他问题吗。。相关的知识,希望对你有一定的参考价值。

clc;clear;
%建立符号变量a(发展系数)和b(灰作用量)
syms a b;
c = [a b]';

%原始数列 A
A = [2.7 7.3 20.0 54.5 148.4 158.3 178.2 192.2 204.2 221.7];
n = length(A);

%对原始数列 A 做累加得到数列 B
B = cumsum(A);

%多项式拟合
x=[1 2 3 4 5 6 7 8 9 10];
y=[2.7 7.3 20.0 54.5 148.4 158.3 178.2 192.2 204.2 221.7];
a=polyfit(x,y,3)
x1=1:0.1:5;
C=polyval(a,x1);
plot(x,y,'r*',x1,C,'b-.')

%构造数据矩阵
B = [-C;ones(1,n-1)];
Y = A; Y(1) = []; Y = Y';

%使用最小二乘法计算参数 a(发展系数)和b(灰作用量)
c = inv(B*B')*B*Y;
c = c';
a = c(1); b = c(2);

%预测后续数据
F = []; F(1) = A(1);
for i = 2:(n+10)
F(i) = (A(1)-b/a)/exp(a*(i-1))+ b/a;
end

%对数列 F 累减还原,得到预测出的数据
G = []; G(1) = A(1);
for i = 2:(n+10)
G(i) = F(i) - F(i-1); %得到预测出来的数据
end

disp('预测数据为:');
G

%模型检验

H = G(1:10);
%计算残差序列
epsilon = A - H;

%法一:相对残差Q检验
%计算相对误差序列
delta = abs(epsilon./A);
%计算相对误差Q
disp('相对残差Q检验:')
Q = mean(delta)

%法二:方差比C检验
disp('方差比C检验:')
C = std(epsilon, 1)/std(A, 1)

%法三:小误差概率P检验
S1 = std(A, 1);
tmp = find(abs(epsilon - mean(epsilon))< 0.6745 * S1);
disp('小误差概率P检验:')
P = length(tmp)/n

%绘制曲线图
t1 = 1995:2004;
t2 = 1995:2014;

plot(t1, A,'ro'); hold on;
plot(t2, G, 'g-');
xlabel(''); ylabel('');
legend('真实值','预测值');
title('预测结果');
grid on;

参考技术A [0,m1*g,0,m2*g]'
不要转置,直接[0,m1*g,0,m2*g]就好
参考技术B 回答

楼主您好,很荣幸为您解答,串联的矩阵的维度不一致。表明在矩阵进行运算时,两个矩阵的内积不相等。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、神经网络在各个领域中应用的研究。这些领域主要包括:模式识别、信号处理、知识工程、专家系统、优化组合、机器人控制等。随着神经网络理论本身以及相关理论、相关技术的不断发展,神经网络的应用定将更加深入

希望以上解答对您有所帮助,谢谢

Matlab报错:串联的矩阵维度不一致

目标是计算4个4x4参数矩阵,放到对应的页里。但是报错。代码如图。

您好,您需要了解标量,向量,二维矩阵的概念,算式中a是4个元素的向量,整个矩阵维度变成4*7,所以纬度是对不上的,故后三行元素其中还需要用到点乘,表示与矩阵中每一个元素都相乘,matlab编程课重在实践与调试,谢谢。 参考技术A 看你的代码本意是求解一个4*4的矩阵,但是矩阵元素里面a这个地方有问题,它是4*1的向量,导致矩阵的第一行是七个元素,从而行列不对等 参考技术B 这样看很难看出具体问题出在哪里, 需要对您的代码进行调试.

以上是关于Matlab总提示:串联的矩阵的维度不一致。麻烦看看还有其他问题吗。。的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB中出现报错:错误使用 horzcat串联的矩阵的维度不一致。各位大佬求解啊

matlab报错矩阵维度不一致如何解决?

matlab中维度不一样的两段音频怎么合成一段

matlab最速下降法显示串联的数组维度不一致,该怎么改啊?

为啥 MATLAB 在使用 ode 求解器时会更改矩阵维度?

matlab层次分析法