MATLAB: How to perform mathematical operation between all elements of arrays with unequal numbers

array operationsarrays with unequal number of elementsmatrix operations

I have two arrays A & B, being a nXm and a pXq array, repsctively. I want to take A(i,j) and multiply it in or subtract it from all elements of B. Then I will take the next element of A and so on. is it possible to do without using a loop on all elements?

Best Answer

A = rand(2,3);
B = rand(4,5);
C = A + reshape(B,[1,1,size(B)]); % Addition
C = A - reshape(B,[1,1,size(B)]); % subtraction
size(C)
ans =
2 3 4 5
D = A .* reshape(B,[1,1,size(B)]); % multiplication
D = A ./ reshape(B,[1,1,size(B)]); % division
size(D)
ans =
2 3 4 5
This is possible as long as you have MATLAB release 2016b or later. Earlier releases will need to use bsxfun instead.
help bsxfun
Note that you use .* and ./ for elementwise multiplication/division, not the * or / operators.