2012-10-01 234 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