首页 > 解决方案 > 如何计算R中XX^T中的所有元素?

问题描述

X为 n 行 p 列的矩阵。我想计算通过将 X 的行乘以相同行的转置获得的所有 p 乘以 p 矩阵。也就是说,第一个矩阵是

X[1,]%*%t(X[1,])

我想避免 for 循环,所以我想知道如何获得与

X[i,]%*%t(X[i,])

使用更直接的命令,例如applyor sweep。对不起,我只是不知道该怎么做。

标签: rmatrixproductmatrix-multiplication

解决方案


您应该使用crossprodortcrossprod来进行类似的操作(请参见此处)。在你的情况下,

lapply(1:nrow(X), function(i) tcrossprod(X[i,]))

推荐阅读