【发布时间】:2020-12-02 08:48:11
【问题描述】:
我尝试使用RcppArmadillo 计算数组每个切片的 Frobenious 范数 (arma::cube)。文件cxxFuns.cpp 中的示例代码如下所示。
// [[Rcpp::depends(RcppArmadillo)]]
#include "RcppArmadillo.h"
// [[Rcpp::export]]
arma::vec array_norm (arma::cube & x) {
arma::vec out = x.each_slice([](arma::mat& x0) {return arma::norm(x0, "fro") ;}) ;
return out ;
}
cpp文件编译成功后,函数array_norm抛出异常:
set.seed(2020)
Rcpp::sourceCpp('cxxFuns.cpp')
x <- array(rnorm(3*4*5), 3:5)
array_norm(x)
#> error: copy into matrix: can't interpret cube with dimensions 3x4x5 as a vector
#> Error in array_norm(x) :
#> copy into matrix: can't interpret cube with dimensions 3x4x5 as a vector
由reprex package 创建于 2020-12-02 (v0.3.0)
【问题讨论】:
标签: rcpp rcpparmadillo