Rcppを試すのはこれが初めてで、この非常に単純な問題が問題を引き起こしています。ネストされたforループを使用して、一度に1列ずつ行列の個々の値を操作したいと思います。私が目指しているスクリプトは次のようになります。
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];
これが愚かな初心者の質問である場合はお詫び申し上げます。ヒントをいただければ幸いです。