How to perform mathematical operation between all elements of arrays with unequal numbers
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Saeid
el 24 de Mayo de 2019
Comentada: Saeid
el 24 de Mayo de 2019
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 comentarios
Respuesta aceptada
John D'Errico
el 24 de Mayo de 2019
Editada: John D'Errico
el 24 de Mayo de 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.
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!