【发布时间】:2021-12-06 19:47:28
【问题描述】:
我正在使用 RcppArmadillo 创建一个使用随机模拟的函数。我无法将 arma::mat 的每一行作为 arma::vec 拉出。
以下是我的问题的简化示例。我使用 R 命名法来说明我想要实现的目标。
我相信在 C++ 中应该有一种相当简单的方法来实现这一点,但恐怕我还没有弄清楚。任何帮助将不胜感激。
#include <RcppArmadillo.h>
using namespace Rcpp;
// [[Rcpp::depends(RcppArmadillo)]]
// [[Rcpp::export]]
List function(List params) {
arma::mat c= params["c"];
arma::mat I= params["I"];
for (int istep = 0; istep < (I.n_elem); istep++) {
arma::vec loopedrows = I[istep,] //Here I have used the R indexing method, but this does not work in C++
double product= accu(c*loopedrows)
arma:vec newvec = stochastic_simulation(product)
I[istep+1,] = newvec // store the output of the in matrix I, again the nomenclature is in R.
}
return wrap(I);
};
【问题讨论】:
-
你找到(相当出色的)Armadillo documentation 了吗?行和列访问、索引、切片等的不同方式都在此处进行了说明。
-
嗨,Dirk,谢谢您的回答。您关于 Rcpp 的在线讲座极大地帮助了我开始使用该软件包。是的,我已经浏览了文档,但还无法使其正常工作。你有什么具体的功能可以推荐给这个任务吗?谢谢
标签: c++ rcpp rcpparmadillo