How to perform mathematical operation between all elements of arrays with unequal numbers
4 views (last 30 days)
Show older comments
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?
0 Comments
Accepted Answer
John D'Errico
on 24 May 2019
Edited: John D'Errico
on 24 May 2019
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.
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!