我有一个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
答案 0 :(得分:13)
您只需要将两个矩阵相乘:
answer = W*u;
考虑一下:在循环的每次迭代中,将矩阵乘以向量。该操作的结果是一个向量,您可以将其保存到第i列的答案中。矩阵乘法是一个类似的东西:你可以将它理解为矩阵(W)乘以一组向量的乘法,这些向量构成矩阵u。
所以你的代码很好,只需删除循环:)