Question

C'est la première fois que je essaie le RCPP et ce problème très simple me cause des problèmes. Je veux utiliser des boucles imbriquées pour fonctionner sur des valeurs individuelles d'une matrice, une colonne à la fois. Le script que je vise ressemblerait à quelque chose comme ceci:

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))

La sortie souhaitée serait la suivante:

     [,1] [,2] [,3] [,4]
[1,]    1    1    1    1
[2,]    2    2    2    2
[3,]    3    3    3    3
[4,]    4    4    4    4

Le problème est évidemment dans cette ligne, où je ne sais pas comment se référer aux éléments individuels de la matrice.

Am[j,i] = Am[j,i] + Am[j-1,i];

Excuses s'il s'agit d'une stupide question de débutant. Tout indice serait apprécié!

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top