1
Rcppには、std :: list型の行列のリストを作成し、その行列のリストをRに戻すことを意図した関数があります。Rcppから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);
}
問題は、である私はRに行列のリストを返すようにしたいが、私はベクトルのリストを取得します。私は多くを試して、ドキュメントを見ているが、私はこれのための解決策を見つけるように見えることはできません。ラップがその仕事をしているように見えますが、リスト内で行列を再帰的にラップしています。私はしたいので、私はRcppからではなく、R.でこれをやりたい
> str(testingMatrix)
List of 200
$ : num [1:40, 1:10] 1 1 1 1 1 1 1 1 1 1 ...
$ : num [1:40, 1:10] 1 1 1 1 1 1 1 1 1 1 ...
:
> 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 ...
しかし、私はこのような何かを取得したい:私はこのような何かを得る
スピードアップを測定するために、関数を純粋にRでプログラムされたものと交換することができる。
本当にありがとうございます。
グレート!それは私のために働いた。私の事例は再現性がありません。申し訳ありませんが、私の最初の質問はここに掲載されました。私はあなたの答えに似て、再現性があるように質問を修正します。ありがとうございました! :) –
自由にupvoteして答えを受け入れる。 – coatless
私は答えを受け入れましたが、私はただ8つの評判しか持っていないので、まだ私はupvoteできません。私は必要なときにそれをするでしょう15;) –