使用 rcpp 的简单矩阵到矩阵函数
Simple matrix to matrix function using rcpp
我正在尝试使用 rcpp 在 r 中编写一个简单的函数。我正在通过 http://adv-r.had.co.nz/Rcpp.html 弄清楚语法并使用了 sugar 函数,但无法使以下内容起作用:
cppFunction('NumericMatrix fun(NumericMatrix x) {
NumericMatrix dd = (exp(-(pow(x, 2)) / 2)*(3 - 6*pow(x, 2) + pow(x,4)))/sqrt(2*PI);
return dd;
}')
基本上是在矩阵的每个元素中应用一个函数。我怎样才能让它工作?
遗憾的是,Rcpp NumericMatrix
尚不支持矩阵乘法。一种选择是使用 Armadillo via RcppArmadillo.
# install.packages("RcppArmadillo")
Rcpp::cppFunction('arma::mat fun(const arma::mat& x) {
arma::mat dd = (exp(-(pow(x, 2)) / 2)%(3 - 6*pow(x, 2) + pow(x,4)))/sqrt(2*PI);
return dd;
}', depends = "RcppArmadillo")
注意%
是逐元素乘法
我正在尝试使用 rcpp 在 r 中编写一个简单的函数。我正在通过 http://adv-r.had.co.nz/Rcpp.html 弄清楚语法并使用了 sugar 函数,但无法使以下内容起作用:
cppFunction('NumericMatrix fun(NumericMatrix x) {
NumericMatrix dd = (exp(-(pow(x, 2)) / 2)*(3 - 6*pow(x, 2) + pow(x,4)))/sqrt(2*PI);
return dd;
}')
基本上是在矩阵的每个元素中应用一个函数。我怎样才能让它工作?
遗憾的是,Rcpp NumericMatrix
尚不支持矩阵乘法。一种选择是使用 Armadillo via RcppArmadillo.
# install.packages("RcppArmadillo")
Rcpp::cppFunction('arma::mat fun(const arma::mat& x) {
arma::mat dd = (exp(-(pow(x, 2)) / 2)%(3 - 6*pow(x, 2) + pow(x,4)))/sqrt(2*PI);
return dd;
}', depends = "RcppArmadillo")
注意%
是逐元素乘法