我正在处理1.3e6行的几个大平方矩阵,我想对所有矩阵进行对角线处理。我需要一种有效的方法来执行此操作,但是我不能使用diag()
library(bigmemory)
A=big.matrix(nrow=1.3e6,ncol=1.3e6,init=3)
diag(A)
有什么主意吗? 非常感谢您的宝贵时间
答案 0 :(得分:1)
好吧,实际上,您在这里不需要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]
。