Матрица Rcpp: цикл по строкам, по одному столбцу за раз

Я впервые пробую Rcpp, и эта очень простая проблема вызывает у меня проблемы. Я хочу использовать вложенные циклы for для работы с отдельными значениями матрицы, по одному столбцу за раз. Сценарий, к которому я стремлюсь, будет выглядеть примерно так:

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

Желаемый результат будет следующим:

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

Проблема, очевидно, в этой строке, где я не знаю, как ссылаться на отдельные элементы матрицы.

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

Приносим извинения, если это глупый вопрос для новичков. Мы будем благодарны за любые подсказки!

20
задан gkcn 10 April 2014 в 13:08
поделиться