How to add matrices with different dimensions
90 次查看(过去 30 天)
显示 更早的评论
hello, I want the shortest way to add matrices with different dimensions. I know the easiest way but it is not appropriate for big matrices like 10*10 or bigger please see the picture to understand what I mean Sorry there was a problem with the picture. I provide an example. I hope it is clear now.
6 个评论
Azzi Abdelmalek
2014-4-5
Mohammed my name is Azzi, and I meant, for your case, you don't need to add a picture, just write your example
采纳的回答
Joseph Cheng
2014-4-4
编辑:Joseph Cheng
2014-4-4
That makes more sense now. you can do something like this.
k1=reshape([1:16],4,4)';
k2=reshape(17:32,4,4)';
K1=zeros(6,6);
K2=K1;
K1(1:length(k1),1:length(k1))= k1;
k2pattern= [5:6 1:2];
K2(k2pattern,k2pattern) = k2;
K=K1+K2
not the most efficient way nor did i supply how to vary depending on the size of the matrix. However this was <5 min of thinking without knowing what to with k2 for larger sizes. Just substitute the k2pattern with what its column labeling.
6 个评论
Joseph Cheng
2014-4-5
编辑:Joseph Cheng
2014-4-5
As a off example example when i do:
A = zeros(10,10);
A([1 2 3 4],[5 6 7 8])= 1;
makes the rows 1,2,3and 4 the number one for columns 5,6,7 and 8. the indexes is the permutation of the two arrays and fills in what you say. (1,5),(1,6),(1,7)...(3,5),(3,6)...(4,8).
similarly if i go
A = zeros(10,10); A(1:2:end,2:2:end)=1
which will make every odd column 1 for every even column.
So for your example you have a 4x4 which when you look at the generic case K1 = some matrix filled with a permutation of the pattern.
更多回答(1 个)
Image Analyst
2014-4-4
Just extract all the values and add them.
K = zeros(6); % Initialize
K(1,1) = K1(1,1) + K2(3, 1); % Sum up k11 values.
K(1,2) = K1(1,2) + K2(3, 2); % Sum up k12 values.
and so on for all 36 values. It's not rocket surgery - just pluck them out of where they're defined to be in each matrix and add them together. Simple as that.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!