Giả sử tôi có một số List
trong Rcpp, ở đây được gọi là x
chứa ma trận. Tôi có thể trích xuất một trong các thành phần bằng cách sử dụng x[0]
hoặc thứ gì đó. Tuy nhiên, làm cách nào để trích xuất một phần tử cụ thể của ma trận đó? Suy nghĩ đầu tiên của tôi là x[0](0,0)
nhưng điều đó dường như không hoạt động. Tôi đã thử sử dụng các dấu hiệu *
nhưng cũng không hoạt động.Phần tử chỉ mục từ danh sách trong Rcpp
Dưới đây là một số mã ví dụ mà in ma trận (matrix cho thấy có thể dễ dàng được chiết xuất):
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()
Làm thế nào tôi có thể thay đổi dòng Rf_PrintValue(wrap(x[0]));
vào đây để in các phần tử trong hàng đầu tiên và cột? Trong mã tôi muốn sử dụng nó cho tôi cần phải trích xuất phần tử này để làm tính toán.