Vector Matrix multiplication (Row wise)

137 visualizaciones (últimos 30 días)
Kamuran
Kamuran el 16 de Sept. de 2015
Comentada: Noah Tang el 28 de Oct. de 2019
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

Respuesta aceptada

Thorsten
Thorsten el 16 de Sept. de 2015
L = L.*repmat(V, [1 N]);

Más respuestas (3)

Vladimir Kazei
Vladimir Kazei el 9 de Oct. de 2017
Editada: Vladimir Kazei el 9 de Oct. de 2017
L = L .* V;

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

Iniciar sesión para comentar.


James Tursa
James Tursa el 16 de Sept. de 2015
L = bsxfun(@times,L,V);

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!

Translated by