How can I multiply the columns of one matrix by another matrix most efficiently?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I need to multiply the columns of one matrix by the columns of another matrix element-wise, and I would like to avoid loops. So far, I know that this will accomplish what I want done, but I would like to vectorize it if possible.
A = [1 2 3; 4 5 6; 7 8 9];
B = [1 1 1; 2 2 2; 3 3 3];
j = 1:size(A,2);
for i = 1:size(A, 2) % loop over columns
result(:, i*j) = bsxfun(@times, A(:, i), B);
end
Basically, given 2 MxN matrices my code outputs an MxN^2 matrix. Is there any built in function that will allow me to do this without the loop?
Thanks.
0 commentaires
Réponse acceptée
Andrei Bobrov
le 12 Juil 2016
Modifié(e) : Andrei Bobrov
le 12 Juil 2016
reshape(bsxfun(@times,B,permute(A,[1,3,2])),size(A,1),[])
Plus de réponses (1)
Voir également
Catégories
En savoir plus sur Operators and Elementary Operations dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!