MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Arjan on 12 Apr 2013

I have a complex array A(3x1) and Iwant to add each element to each of entry of the complex matrix M (4x4), but without changing the size of the original matrix M(4x4):

A = [1+1i;2+2i;3+3i];

M= [1+1i 2+2i 3+3i 4+4i;2+2i 3+3i 4+4i 3+3i;5+5i 2+2i 3+3i 1+1i;3+3i 4+3i 2+1i 4+2i];

how can i do it ? thanks in advance

*No products are associated with this question.*

Answer by Andrei Bobrov on 12 Apr 2013

Edited by Andrei Bobrov on 12 Apr 2013

out = bsxfun(@plus,M,reshape(A,1,1,[]));

M0 = num2cell(out,[1 2]); [M1,M2,M3] = M0{:};

## 2 Comments

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/71738#comment_142772

While the complexity of the values does not matter for the method, it is not clear what you expect as output.

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/71738#comment_142804

Hi Jan, Actually I want each element in the array A(3x1) to added to all the element in the matrix, therefore the result should be 3 new matrix for each element. for example :

A(1+1i) + M (4x4) = M1(4x4) % 1 new matrix

A(2+2i) + M (4x4) = M2(4x4) % 2 new matrix

A(3+3i) + M (4x4) = M3(4x4) % 3 new matrix

BR

Arjan