【问题标题】:Multiply each column of a matrix by another matrix将矩阵的每一列乘以另一个矩阵
【发布时间】:2012-09-22 08:07:32
【问题描述】:

我有一个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

【问题讨论】:

    标签: matlab matrix vectorization matrix-multiplication


    【解决方案1】:

    您只需将两个矩阵相乘:

    answer = W*u;
    

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

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

    【讨论】:

    • 不确定是否只是间隔开或实际上延迟了。 :-) 谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多