【发布时间】:2014-04-10 21:08:57
【问题描述】:
这是我第一次尝试 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];
抱歉,如果这是一个愚蠢的新手问题。任何提示将不胜感激!
【问题讨论】:
-
我之前说过,我再说一遍:
rcpp-devel是解决这些问题的更好地方。 -
@DirkEddelbuettel 虽然我知道
rcpp-devel列表可能会更多地接触有使用rcpp经验的人,但在我看来,stackoverflow 更容易访问。 -
@jbaums:当然,但在所有主要的 rcpp-devel 贡献者中,只有一个在这里看到了问题。提问的眼球减少了……