Matlab中的高效矩阵乘法

时间:2014-01-12 19:23:35

标签: matlab matrix bsxfun

如果我有两个矩阵AB,那么以下(在Matlab中)执行以下操作的最佳方式是什么,请大小m - by - {{1} }:

n

1 个答案:

答案 0 :(得分:1)

这只不过是

C = A*B';

其中AB均为m - by - n。除非矩阵具有特殊属性,否则我不确定你会比那更有效率。

使用bsxfun进行矩阵乘法的好处是,当尺寸足够大(可能是100乘100或更多)并且一个矩阵是对角线时,例如:

A = rand(1e2);
B = diag(rand(1,1e2));
C = bsxfun(@times,A,diag(B).');

这种情况发生在许多矩阵变换中 - 请参阅sqrtm的代码(例如edit sqrtm)。