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

是使用regress函数function[b,bint,r,rint,stats]=regress(X,Y)load('matlab.mat')>>x1=[6837466... 是使用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
串联的矩阵的维度不一致。
展开
 我来答
SWDgreat
2019-08-03 · TA获得超过8405个赞
知道答主
回答量:1012
采纳率:80%
帮助的人:24.2万
展开全部

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

百度网友faadf46
高粉答主

2019-08-14 · 说的都是干货,快来关注
知道答主
回答量:4556
采纳率:0%
帮助的人:73.6万
展开全部

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

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

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

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

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

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

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lhmhz
高粉答主

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

向TA提问 私信TA
展开全部

出现报错的原因及措施:

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) ——决定系数(相关系数)

运行结果

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luan_yun1991
2017-12-25 · TA获得超过109个赞
知道小有建树答主
回答量:57
采纳率:55%
帮助的人:30.3万
展开全部

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)

结果就出来啦

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式