2012-10-01 193 views
7

我有一个M x N矩阵。我想将N列中的每个乘以M 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 

回答

13

你只需要乘以两个矩阵:

answer = W*u; 

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

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

+2

不知道是否只是间隔或实际推迟。 :-) 谢谢。 – mac389