Skip to main content
 首页 » 编程设计

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

2024年11月24日85飞鱼

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