Matrix RCPP: ciclo su righe, una colonna alla volta
Domanda
Questa è la prima volta che provo RCPP e questo problema molto semplice mi dà problemi. Voglio usare nidificati per loop per operare sui singoli valori di una matrice, una colonna alla volta. La sceneggiatura a cui mi puntino sembrerebbe qualcosa di simile:
src <- '
Rcpp::NumericMatrix Am(A);
int nrows = Am.nrow();
int ncolumns = Am.ncol();
for (int i = 0; i < ncolumns; i++){
for (int j = 1; j < nrows; j++){
Am[j,i] = Am[j,i] + Am[j-1,i];
}
}
return Am;
'
fun <- cxxfunction(signature(A = "numeric"), body = src, plugin="Rcpp")
fun(matrix(1,4,4))
L'output desiderato sarebbe questo:
[,1] [,2] [,3] [,4]
[1,] 1 1 1 1
[2,] 2 2 2 2
[3,] 3 3 3 3
[4,] 4 4 4 4
Il problema è ovviamente in questa linea, in cui non so come fare riferimento ai singoli elementi della matrice.
Am[j,i] = Am[j,i] + Am[j-1,i];
Mi scuso se questa è una stupida domanda per principianti. Qualsiasi suggerimento sarebbe apprezzato!
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow