I am working with several big squared matrices of 1.3e6 rows, and I want to the diagonal of all of them. I need an efficient way to do it, but I can not use diag()
library(bigmemory)
A=big.matrix(nrow=1.3e6,ncol=1.3e6,init=3)
diag(A)
Any idea? Thank you very much for your time
Ok, in fact, you don't need Rcpp here. Just use the special matrix accessor of two-columns:
X[cbind(1:d, 1:d)]will accessX[1, 1],X[2, 2], ...,X[d, d].