我有一个 M x N 矩阵 . 我想将每个 N 列乘以 M x M 矩阵 . 以下是循环中的这个,但我不知道如何对其进行矢量化 .
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
您只需要将两个矩阵相乘:
answer = W*u;
想一想:在循环的每次迭代中,您将矩阵乘以向量 . 该操作的结果是一个向量,您可以将其保存到第i列的答案中 . 矩阵乘法是一个类似的东西:你可以把它理解为矩阵(W)乘以一组向量的乘法,这些向量形成你的矩阵u .
所以你的代码很好,只需删除循环:)
1 回答
您只需要将两个矩阵相乘:
想一想:在循环的每次迭代中,您将矩阵乘以向量 . 该操作的结果是一个向量,您可以将其保存到第i列的答案中 . 矩阵乘法是一个类似的东西:你可以把它理解为矩阵(W)乘以一组向量的乘法,这些向量形成你的矩阵u .
所以你的代码很好,只需删除循环:)