小编Gab*_*les的帖子

如何从Rcpp返回一个矩阵列表到R?

我在Rcpp中有一个函数,它执行类似这样的操作:它创建一个std :: list类型的矩阵列表,并打算将该矩阵列表返回给R.

我在这里附上一个简化的例子:

#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]

// [[Rcpp::export]]
Rcpp::List splitImagesRcpp(arma::mat x) 
{
   std::list<arma::mat> listOfRelevantImages;
   int relevantSampleSize = x.n_rows;
   for(int k = 0; k < relevantSampleSize; ++k)
   {
      listOfRelevantImages.push_back(x.row(k));
   }
   return wrap(listOfRelevantImages);
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是,我想返回R一个矩阵列表,但我得到一个向量列表.我一直在努力并查看文档,但我似乎无法找到解决方案.看起来wrap正在完成它的工作,但它也在列表中递归地包装我的矩阵.

我得到这样的东西:

> str(testingMatrix)
List of 200
 $ : num [1:400] 1 1 1 1 1 1 1 1 1 1 ...
 $ : num [1:400] 1 1 1 1 1 1 1 1 1 1 ...
Run Code Online (Sandbox Code Playgroud)

但我希望得到这样的东西:

> str(testingMatrix)
List of 200
 $ …
Run Code Online (Sandbox Code Playgroud)

c++ r matrix armadillo rcpp

3
推荐指数
1
解决办法
611
查看次数

标签 统计

armadillo ×1

c++ ×1

matrix ×1

r ×1

rcpp ×1