RcppArmadillo colvecを標準Rベクターとして返す方法を知りません。私はas<NumericVector>(wrap()
を介して型キャストできることを願っていましたが、まだオブジェクトにはR個の行列があります。ここで私が試したものを表示するコードのビットは、(部分的にthis previous questionに触発さ)です:RcppArmadilloベクターをRベクターとして返します
// [[Rcpp::export]]
List testthis(NumericVector x) {
arma::colvec y = x;
arma::vec z = x;
return List::create(Rcpp::Named("y1")=y,
Rcpp::Named("y2")=wrap(y),
Rcpp::Named("y3")=as<NumericVector>(wrap(y)),
Rcpp::Named("z1")=z,
Rcpp::Named("z2")=arma::trans(z),
Rcpp::Named("z3")=as<NumericVector>(wrap(z))
);
}
と私は出力を見れば、私は、すべてのR行列オブジェクトである次のことを得ます。 Rベクトルにキャストすることはできますか?
> testthis(c(1:3))
$y1
[,1]
[1,] 1
[2,] 2
[3,] 3
$y2
[,1]
[1,] 1
[2,] 2
[3,] 3
$y3
[,1]
[1,] 1
[2,] 2
[3,] 3
$z1
[,1]
[1,] 1
[2,] 2
[3,] 3
$z2
[,1] [,2] [,3]
[1,] 1 2 3
$z3
[,1]
[1,] 1
[2,] 2
[3,] 3
これもいいですよね。 –
@ nrussellとDirkの両方の回答が私の質問に私を助けました。彼らはわずかに異なる(しかし、有効な)ソリューションを提供するので、誰が回答クレジットを得なければならないかについてコインを裏返した。両方に感謝! – ekstroem