使用bsxfun避免内部产品计算的“for循环”

时间:2014-07-15 12:24:40

标签: matlab

我有两个矩阵AB,其大小为[n, m],并且想要评估两个矩阵的ROWS的内积。 我可以使用for循环;

 C = ones(kk,1);
for kk = 1:1:n
     C(kk) =   A(kk,:) * B(kk,:)
end

我希望使用bsxfun加速算法,但我不知道如何。

任何想法都会有所帮助。

1 个答案:

答案 0 :(得分:1)

无需bsxfun。请尝试以下方法:

sum(A.*B, 2) %// multiply element-by-element and then sum for each row

以上假设您只需A次{1}}行第1行; B的第2行,A的第2行,等等。如果您想要所有组合,请使用

B

顺便说一下,你的代码并没有按原样运作。它应该是

A*B.'