我相信 boost 对矩阵的连续或至少逐步一致的切片有限制。在 R 中,我可以有一个随机向量 c(5,2,8) 并使用它来索引矩阵 M[c(5,2,8),] 例如...
问问题
477 次
1 回答
4
犰狳从 3.0 版开始支持这一点,该版本甚至在两周前发布。
这是一个通过RcppArmadillo工作的示例:
R> library(inline)
R>
R> code <- '
+ arma::mat M = Rcpp::as<arma::mat>(m); // normal matrix
+ arma::uvec V = Rcpp::as<arma::uvec>(v); // unsigned int vec
+ arma::mat N = M.cols(V); // index matrix by vec
+ return Rcpp::wrap(N);
+ '
R>
R> fun <- cxxfunction(signature(m="numeric", v="integer"),
+ code,
+ plugin="RcppArmadillo")
R> M <- matrix(1:25,5,5)
R> V <- c(1L, 3L, 5L) - 1 # offset by one for zero indexing
R> fun(M, V)
[,1] [,2] [,3]
[1,] 1 11 21
[2,] 2 12 22
[3,] 3 13 23
[4,] 4 14 24
[5,] 5 15 25
R>
有一个匹配功能可以选择行而不是列。
于 2012-04-19T00:44:48.347 回答