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