Vector Matrix multiplication (Row wise)

176 views (last 30 days)
Hi, I need to multiply each row of very large matrix with a row of corresponding vector. I don't really want to use for loop for that, i.e.,
N=15000;
L=rand(N,N); V=rand(N,1);
for i=1:1:N
L(i,:)=V(i)*L(i,:);
end
is it possible to do this in vectorized way?
Thank you
Erdem

Accepted Answer

Thorsten
Thorsten on 16 Sep 2015
L = L.*repmat(V, [1 N]);

More Answers (3)

Vladimir Kazei
Vladimir Kazei on 9 Oct 2017
Edited: Vladimir Kazei on 9 Oct 2017
L = L .* V;

seif seif
seif seif on 26 Jan 2018
Edited: seif seif on 26 Jan 2018
I'd suggest a faster version than the above methods:
L = L .* v(:, ones(N,1));
  1 Comment
Noah Tang
Noah Tang on 28 Oct 2019
Could you explain that why does this indexing trick work?

Sign in to comment.


James Tursa
James Tursa on 16 Sep 2015
L = bsxfun(@times,L,V);

Categories

Find more on Simulink 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!