这是我第一次尝试Rcpp,这个非常简单的问题给我带来了麻烦。我想使用嵌套for循环来操作矩阵的单个值,每次一列。我的目标该脚本会是这个样子:Rcpp矩阵:循环遍历行,一次一列
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];
道歉,如果这是一个愚蠢的新手问题。任何提示将不胜感激!
我以前说过的话,我会说它又一次:'rcpp-devel'是解决这些问题的好地方。 – 2011-05-08 23:36:27
@DirkEddelbuettel虽然我明白'rcpp-devel'列表可能会更多地接触到使用'rcpp'的人,在我看来,stackoverflow更容易访问。 – jbaums 2012-08-17 00:03:18
@jbaums:当然,但所有关键的rcpp-devel贡献者只有一个在这里看到问题。减少问题的眼球... – 2012-08-17 00:46:35