RcppにはList
があり、ここにはx
という行列が含まれているとします。私はx[0]
か何かを使って要素の1つを抽出できます。ただし、その行列の特定の要素を抽出するにはどうすればよいですか?私の最初の考えはx[0](0,0)
でしたが、それはうまくいかないようです。私は*
記号を使ってみましたが、うまくいきません。ここRcppのリストのインデックス要素
はマトリックスを印刷するいくつかのサンプルコードは、(マトリックスが容易に抽出することが可能示す)である:
library("Rcpp")
cppFunction(
includes = '
NumericMatrix RandMat(int nrow, int ncol)
{
int N = nrow * ncol;
NumericMatrix Res(nrow,ncol);
NumericVector Rands = runif(N);
for (int i = 0; i < N; i++)
{
Res[i] = Rands[i];
}
return(Res);
}',
code = '
void foo()
{
List x;
x[0] = RandMat(3,3);
Rf_PrintValue(wrap(x[0])); // Prints first matrix in list.
}
')
foo()
どのように最初の行の要素及び列を印刷するために、ここでラインRf_PrintValue(wrap(x[0]));
を変更するだろうか?コードでは、計算を行うためにこの要素を抽出する必要があるために使用します。