首页 文章

如何在matlab中将矩阵的每一行乘以另一个矩阵的相应列?

提问于
浏览
2

我有两个矩阵 AB . A是N×L矩阵,B是L-by-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

有一个更好的方法吗?

2 回答

  • 2

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

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

    我认为这会更好,更简单

    C=diag(A*B);
    

相关问题