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

时间:2014-02-20 07:01:11

标签: matlab multiplication

我有两个矩阵 A B 。 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 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

我认为这会更好用,也很简单

C=diag(A*B);