导航菜单
首页 >  » 正文

Matlab中不同维数矩阵相加问题

Matlab中不同维数矩阵相加问题

这样:
>> A=[1,2,3;4,5,6;7,8,9],B=[1,2;3,4]
A =
     1     2     3
     4     5     6
     7     8     9
B =
     1     2
     3     4
>> [rA,cA]=size(A);
>> [rB,cB]=size(B);
>> C=zeros(max(rA,rB),max(cA,cB));
>> C(1:rA,1:cA)=A;
>> C(1:rB,1:cB)=C(1:rB,1:cB)+B;
>> C
C =
     2     4     3
     7     9     6
     7     8     9
>> [2,4,3;8,10,6;7,8,9]
ans =
     2     4     3
     8    10     6
     7     8     9

扩展资料:
注意事项
两个大小不同的矩阵是不能相加的,要实现对应位置相加,需要将纬度较小的扩展为纬度较大的矩阵,没有数据的位置填上零,形成两个大小相同的矩阵,然后再相加。
matlab最大的好处就是不用事先定义变量,按列存储数据,只要每一列的数据个数是不变的,就可以直接使用,直接使用的变量默认为矩阵,只要存储了第一列数据,其行数就确定了,但列数是可变的,不会报错,放心使用,但前提是你的行数一旦确定就不能超过第一次使用的行数,否则会报错,需要另行编制程序。

相关推荐: