2

我正在处理几个 1.3e6 行的大平方矩阵,我想要它们的对角线。我需要一种有效的方法来做到这一点,但我不能使用 diag()

library(bigmemory)
A=big.matrix(nrow=1.3e6,ncol=1.3e6,init=3)
diag(A)

任何想法?非常感谢您的宝贵时间

4

1 回答 1

2

好的,其实这里不需要Rcpp。只需使用两列的特殊矩阵访问器:

library(bigmemory)

X <- big.matrix(10, 10); X[] <- 1:100

d <- min(dim(X))
X[cbind(1:d, 1:d)]

X[cbind(1:d, 1:d)]将访问X[1, 1], X[2, 2], ..., X[d, d].

于 2018-09-22T16:11:45.767 回答