Elementwise Multiply Array by Vector without repmat or loop

6 views (last 30 days)
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.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 7 Aug 2015
bsxfun(@times,A,B)

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices 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!