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

在matlab中,如何将一个矩阵的每一行乘以另一个矩阵的对应列?,matlab,multiplication,Matlab,Multiplication,我有两个矩阵A和B。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(

我有两个矩阵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

有更好的方法吗?

我认为这应该可以做到:

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

我认为这将更好地工作,而且很简单

C=diag(A*B);