如果我有一个矩阵 A(5000×6000),这意味着它有 n 行和 m 列,a_ij
是元素。我想计算 sum (k=1..m, l=1..m) (a[i,l]*a[j,k])
(即 this formula ) ,即 5000×5000。计算此类公式的有效方法是什么?
提前致谢。
最佳答案
您可以简化表达式,使乘积的双和成为两个行和 i
和 j
的乘积。所以你的输出矩阵本质上是行和的克罗内克积:
x <- rowSums(a)
x %o% x
关于R:高效计算乘法的和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27209173/