Elementwise Multiply Array by Vector without repmat or loop

14 vues (au cours des 30 derniers jours)
JE
JE le 7 Août 2015
Commenté : JE le 7 Août 2015
I would like to do an elementwise multiplication of an array by a column vector. Normally to do this, I would use repmat to get the vector to be the same size as the array and then use .* . However, with very large arrays, I would like to avoid using repmat (because of memory issues). A loop is not an option either because it's too slow. Could you please let me know if there's another way to do this?
e.g., A = [1; 0; 3] and B = [1 4 4 5; 9 4 9 10; 10 9 3 5] so A is 3 x 1 and B is 3 x 4. I want to multiply each column of B by A. I'd normally do the following: repmat(A, 1, 4) .* B However, I was wondering if there was an alternative that didn't use repmat.

Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 7 Août 2015
bsxfun(@times,A,B)

Plus de réponses (0)

Catégories

En savoir plus sur Resizing and Reshaping Matrices 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!

Translated by