필터 지우기
필터 지우기

How to add matrices with different dimensions

조회 수: 58 (최근 30일)
Mohammed
Mohammed 2014년 4월 4일
댓글: Mohammed 2014년 4월 5일
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
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
Mohammed
Mohammed 2014년 4월 5일
Hi Azzi, sorry for writing your name wrongly and thank you for your advice.

댓글을 달려면 로그인하십시오.

채택된 답변

Joseph Cheng
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
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.
Mohammed
Mohammed 2014년 4월 5일
Hi Joseph Sorry for my questions. I try to do it in MatLab and I cannot find the answer because the program said it is out of the dimensions could please show me how you create the matrix?

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Image Analyst
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.
  댓글 수: 1
Mohammed
Mohammed 2014년 4월 4일
Thank you for the answer, but when I have 20*20 matrices, it will take time

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by