Addition of 2 matrices with different dimensions
    31 次查看(过去 30 天)
  
       显示 更早的评论
    
Hello,
If we want to add 2 matrices in maths, their dimensions must be the same.
I was wondering how MATLAB can add x=[1;5;9] which has dimensions of 3x1 with y=[9 2 8] which has dimensions 1x3 and the result is x+y=[10 3 9;14 7 13;18 11 17] which has dimensions 3x3. 
Thanks for your time, appreciate your help.
0 个评论
采纳的回答
  Allen
      
 2021-3-12
        In this instance your are describing, MATLAB is assuming element-wise addition between the rows and columns. Where
Where, x = 
        [x1
         x2
         x3];
and     y = [y1 y2 y3];
The result of x+y then becomes:
[x1+y1  x1+y2  x1+y3
 x2+y1  x2+y2  x2+y3
 x3+y1  x3+y2  x3+y3]
更多回答(1 个)
  Steven Lord
    
      
 2021-3-12
        If we want to add 2 matrices in maths, their dimensions must be the same.
I believe most texts accept a slight generalization of that, to allow adding scalars to matrices that are not 1-by-1. Scalar expansion has been part of MATLAB for longer than I've been at MathWorks (nearly 20 years.) It's probably in Cleve's original Fortran MATLAB.
A = magic(3)
B = A + 1 % If we applied the idea you stated this should be A + ones(3)
Implicit expansion is a generalization of that behavior. It avoids having to repmat the vectors to a common size we can compute, thus saving memory. After all, if A in my example above took up 1 GB of space (which would mean B would also take 1 GB of space) do you really want to have to allocate a temporary 1 GB matrix all of whose elements are 1?
Thanks a lot, but is this mathematically correct?
I won't tell the Mathematics Police if you don't.
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



