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

两个不同维数矩阵相加,如A=[1,2,3;4,5,6;7,8,9];B=[1,2;3,4]。使A+B=[2,4,3;8,10,6;7,8,9];就是小矩阵加到大矩阵的对应... 两个不同维数矩阵相加,如A=[1,2,3;4,5,6;7,8,9];B=[1,2;3,4]。使A+B=[2,4,3;8,10,6;7,8,9];
就是小矩阵加到大矩阵的对应位置中去;
注意:A与B矩阵的维数并不确定。
展开
 我来答
大野瘦子
高粉答主

2019-10-11 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:34.3万
展开全部

这样:

>> 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最大的好处就是不用事先定义变量,按列存储数据,只要每一列的数据个数是不变的,就可以直接使用,直接使用的变量默认为矩阵,只要存储了第一列数据,其行数就确定了,但列数是可变的,不会报错,放心使用,但前提是你的行数一旦确定就不能超过第一次使用的行数,否则会报错,需要另行编制程序。

dukinkin
推荐于2017-10-13 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2444
采纳率:90%
帮助的人:933万
展开全部
两个大小不同的矩阵是不能相加的
要实现对应位置相加,需要将纬度较小的扩展为纬度较大的矩阵
没有数据的位置填上零,形成两个大小相同的矩阵,然后再相加
A,B的大小并不确定,那么还需要先根据A,B的大小比较来确定如何扩展矩阵

m=max(size(A,1),size(B,1));%确定最大行数

n=max(size(A,2),size(B,2));%确定最大列数
AA=zeros(m,n);
BB=zeros(m,n);
AA(1:size(A,1),1:size(A,2))=A; %扩展A
BB(1:size(B,1),1:size(B,2))=B; %扩展B
C=AA+BB; %求和
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-08-18
展开全部

你举例的结果不对吧?

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式