gpt4 book ai didi

Rcpp Armadillo : convert matrix subview to SEXP

转载 作者:行者123 更新时间:2023-12-02 00:06:18 28 4
gpt4 key购买 nike

有没有办法转换 arma::subview<double>进入 SEXP ?创建矩阵后我有以下代码 X在我的 Rcpp代码:

  //.... MCMC loop
if(i % skiplength == 0) {
for(unsigned int k=0; k < X.n_rows; k++) {
X(k,index) = y[k];
}
index = index + 1;
}
// return matrix of samples in columns
return Rcpp::wrap(X.submat( arma::span(0, X.n_rows - 1) , arma::span(discard, X.n_cols-1)));
END_RCPP
}

但我收到一条错误消息,说明:cannot convert 'const arma::subview<double>' to SEXP in initialization .有一个简单的解决方法吗?

一个可重现的例子

reproducible = '
arma::subview<double> conv(arma::Mat<double> m) {
return m.submat(arma::span(0, m.n_rows),arma::span(0, m.n_cols));
}'

cppFunction(code = reproducible, depends = "RcppArmadillo", verbose = TRUE)

最佳答案

刚刚弄明白了, subview 显然可以转换为矩阵

我换了

return Rcpp::wrap(X.submat( arma::span(0, X.n_rows - 1) , arma::span(discard, X.n_cols-1)));

arma::mat ret = X.submat(arma::span(0, X.n_rows - 1) , arma::span(discard, X.n_cols-1));
return Rcpp::wrap(ret);

它编译得很好。

关于Rcpp Armadillo : convert matrix subview to SEXP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18215037/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com