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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB中出现报错:错误使用 horzcat串联的矩阵的维度不一致。各位大佬求解啊相关的知识,希望对你有一定的参考价值。

是使用regress函数function [b,bint,r,rint,stats] = regress(X,Y)
load('matlab.mat')
>> x1=[68 37 46 62 66 65 35 46 60 64];
x2=[110 66 87 99 102 110 64 87 99 101];
x3=[121 110 117 120 118 120 109 118 120 118];
x4=[23 12 16 19 20 24 11 16 19 20];
x5=[111 169 155 122 112 115 172 153 126 115];
y=[0 100 50 25 12.5 0 100 50 25 12.5];
Y=y;
>> X=[ones(length(y),1) x1,x2,x3,x4,x5];
错误使用 horzcat
串联的矩阵的维度不一致。

regress(X,Y)要求y是列向量,X是列向量组。所以把最后两行改成Y=y';X=[ones(length(y),1) x1',x2',x3',x4',x5'];最后加上[b,bint,r,rint,stats] = regress(Y,X)。

矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。在物理学中,矩阵于电路学、力学、光学和量子物理中都有应用;计算机科学中,三维动画制作也需要用到矩阵。 

矩阵的运算是数值分析领域的重要问题。将矩阵分解为简单矩阵的组合可以在理论和实际应用上简化矩阵的运算。对一些应用广泛而形式特殊的矩阵,例如稀疏矩阵和准对角矩阵,有特定的快速运算算法。

扩展资料

matlab的特点:

1、高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;

2、具有完备的图形处理功能,实现计算结果和编程的可视化;

3、友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;

4、功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。

参考资料来源:百度百科-矩阵

参考资料来源:百度百科-matlab

参考技术A

1、软件启动后,需要编辑及运行程序,在专用编程工具中,容易编写,通过新建文件,即可打开编辑器,用其进行代码设计。

2、首先,使用length方便计算出未知矩阵中,行或列最大值,如果需要这种结果,就可以选用,如行数比列的大,就返回行的数目,反之返回列。

3、用一个变量,等于此函数运行结果,结果输出为数组形式,分别储存行、列数。

4、如果用一个,只有一行,有两个元素,分别存放在不同列的数组去等于结果,则每个元素的结果,分别为整型,储存着矩阵的维度值,而且还可获得行及列的具体数值。

5、当添加上参数1后,可只输出行维度,如下图在其中,用逗号隔开,添加数字1,但不需用引号引起,即可只输出单一值。

6、而如果将size内容,添加2后,则运行图示程序,结果全为3,即只输出列数,对应矩阵另一个维度。使用这一函数,实际可获得矩阵所有数量信息。

参考技术B

出现报错的原因及措施:

1、x1,x2,x3,x4,x5,y向量应该为列向量。可以通过行向量转置得到列向量。

2、 regress(X,Y)函数命令格式错误。应该为regress(Y,X)。

更改后的代码

x1=[68 37 46 62 66 65 35 46 60 64]';

x2=[110 66 87 99 102 110 64 87 99 101]';

x3=[121 110 117 120 118 120 109 118 120 118]';

x4=[23 12 16 19 20 24 11 16 19 20]';

x5=[111 169 155 122 112 115 172 153 126 115]';

y=[0 100 50 25 12.5 0 100 50 25 12.5]';

Y=y;

X=[ones(length(y),1),x1,x2,x3,x4,x5];

[b,bint,r,rint,stats] = regress(Y,X);

b,stats(1)    %b——回归系数,stats(1) ——决定系数(相关系数)

运行结果

参考技术C

regress(X,Y)要求y是列向量,X是列向量组。

所以你这个可以把最后两行改成

Y=y'

X=[ones(length(y),1) x1',x2',x3',x4',x5']

这里单引号是转置,就是把行向量转成列向量

然后

[b,bint,r,rint,stats] = regress(Y,X)

结果就出来啦

以上是关于MATLAB中出现报错:错误使用 horzcat串联的矩阵的维度不一致。各位大佬求解啊的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB问题解决方案- Matlab出现报错:​‘***‘不是内部或外部命令,也不是可运行的程序或批处理文件

MATLAB问题解决方案- Matlab出现报错:​‘***‘不是内部或外部命令,也不是可运行的程序或批处理文件

matlab的矩阵基础

sscanf中存在空字符串会报错的问题怎么解决

sscanf中存在空字符串会报错的问题怎么解决

matlab的IO操作复习