how to add 3 matrices with one dimension same for all and other dimension different?
    7 views (last 30 days)
  
       Show older comments
    
If I have
A=[1;
   2;
   3]
B=[2 3 4;
   5 6 7;
   8 9 0]
C=[3 4 5 6;
   9 8 7 6;
   5 4 2 1]
all 3 matrices have 3 rows but columns different. I want to add elements of rows of all matrices in this way for example I want
D=[(1+2+3) (1+2+4) (1+2+5) (1+2+6) (1+3+3) (1+3+4) (1+3+5) (1+3+6) (1+4+3) (1+4+4) (1+4+5) (1+4+6);
   (2+5+9) (2+5+8) (2+5+7) (2+5+6) (2+6+9) (2+6+8) (2+6+7) (2+6+6) (2+7+9) (2+7+8) (2+7+7) (2+7+6);
   (3+8+5) (3+8+4) (3+8+2) (3+8+1) (3+9+5) (3+9+4) (3+9+2) (3+9+1) (3+0+5) (3+0+4) (3+0+2) (3+0+1)]
2 Comments
  John Chilleri
      
 on 24 Jan 2017
				Do you need this generalized to any size matrix, or will it strictly be with three matrices of these exact sizes?
Accepted Answer
  Niels
      
 on 24 Jan 2017
        
      Edited: Niels
      
 on 24 Jan 2017
  
      [rows,col_B]=size(B);
[~,col_C]=size(C);
result=zeros(rows,col_B*col_C);
for i=1:col_B
    for  j=1:col_C
        result(:,(i-1)*col_C+j)=A+B(:,i)+C(:,j);
    end
end
11 Comments
  Niels
      
 on 24 Jan 2017
				the result will be that large, so even if the calculations are minimzed, the problem with the size of the result is still the same.
this might help you o set the limit higher https://de.mathworks.com/help/matlab/matlab_env/set-workspace-and-variable-preferences.html
More Answers (1)
  John Chilleri
      
 on 24 Jan 2017
        
      Edited: John Chilleri
      
 on 24 Jan 2017
  
      Hello,
I only tested this with your example and it worked, but I think it's generally correct:
%
% Strangely adding matrices
%
function D = strangelyAddingMatrices(A,B,C)
n = size(C,2);
nB = size(B,2);
for i = 1:n
  C(:,i) = C(:,i)+A;
end
D = [];
for i = 1:nB
  C2 = C;
  for j = 1:n
      C2(:,j) = C2(:,j)+B(:,i); 
  end
  D = [D C2]; 
end
end
Hope this helps!
9 Comments
  John Chilleri
      
 on 24 Jan 2017
				What do you mean by minimum sum? Like which columns summed produce the minimum? Or something else?
See Also
Categories
				Find more on Matrix Indexing in Help Center and File Exchange
			
	Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

