【问题标题】:How to multiply each row of a matrix by corresponding column of another matrix in matlab?如何将矩阵的每一行乘以matlab中另一个矩阵的对应列?
【发布时间】:2014-02-20 07:01:10
【问题描述】:

我有两个矩阵 AB。 A 是 N×L 矩阵,B 是 L×N 矩阵。

A = [1 2 3;
     4 5 6];

B = [ 7   8;
      9  10;
     11  12];

我想将第一个矩阵的每一行乘以第二个矩阵的对应列。在乘法之后,我将有一个 (Nx1) 向量。结果是

C = [ 1*7 + 2*9  + 3*11,
      4*8 + 5*10 + 6*12];

我可以使用 for 循环进行乘法运算,但对于大型矩阵来说效率不高。

ASize = size(A);
for i = 1:ASize(1),
    C(i) = A(i,:) * B(:,i);
end

有没有更好的方法来做到这一点?

【问题讨论】:

    标签: matlab multiplication


    【解决方案1】:

    我认为这应该可以解决问题:

     C = sum(A.*B', 2);   
    

    【讨论】:

      【解决方案2】:

      我认为这会更好,而且很简单

      C=diag(A*B);
      

      【讨论】:

        猜你喜欢
        • 2012-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-03
        • 2019-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多