将矩阵的每列乘以另一个矩阵

mac*_*389 7 matlab matrix vectorization matrix-multiplication

我有一个M x N矩阵.我想NM x M矩阵乘以每列.以下是循环中的这个,但我不知道如何对其进行矢量化.

 u=repmat(sin(2*pi*f*t),[n 1]);
 W = rand(n);
 answer = size(u);
 for i=1:size(u,2)
   answer(:,i) = W*u(:,i);
 end
Run Code Online (Sandbox Code Playgroud)

ang*_*nor 13

您只需要将两个矩阵相乘:

answer = W*u;
Run Code Online (Sandbox Code Playgroud)

想一想:在循环的每次迭代中,您将矩阵乘以向量.该操作的结果是一个向量,您可以将其保存到第i列的答案中.矩阵乘法是一个类似的东西:你可以把它理解为矩阵(W)乘以一组向量的乘法,这些向量形成你的矩阵u.

所以你的代码很好,只需删除循环:)

  • 不确定是否只是间隔或实际延迟.:-) 谢谢. (2认同)