我刚接触Rcpp。我试图使用R包RcppEigen来获取矩阵的行列式。以下代码保存在文件中,我使用sourceCpp来使用它。当我使用sourceCpp时,没有编译错误。在R中使用getDeterminant(A)
,其中A
是一个矩阵。它总是报以下错误。
"Error: could not find function "getDeterminant""
然而,getEigenValues
函数效果很好。
如果有人乐意帮助我,我将不胜感激。 谢谢!
#include <RcppEigen.h>
// [[Rcpp::depends(RcppEigen)]]
using Eigen::Map; // 'maps' rather than copies
using Eigen::MatrixXd; // variable size matrix, double precision
using Eigen::VectorXd; // variable size vector, double precision
using Eigen::SelfAdjointEigenSolver; // one of the eigenvalue solvers
using Eigen::MatrixXi;
using Eigen::MatrixBase;
// [[Rcpp::export]]
VectorXd getEigenValues(Map<MatrixXd> M) {
SelfAdjointEigenSolver<MatrixXd> es(M);
return es.eigenvalues();
}
// [[Rcpp:export]]
double getDeterminant(Map<MatrixXd> AA){
return AA.determinant();
}