Rcpp Eigen从SparseMatrix访问一行

时间:2018-04-16 05:48:50

标签: r eigen rcpp

我使用Eigen的稀疏矩阵作为我的一些函数的数据结构。我的函数将遍历稀疏矩阵的行并执行一些操作。我试图访问稀疏矩阵的行作为SparseVector,但由于某种原因导致R崩溃。

#include <RcppEigen.h>
// [[Rcpp::depends(RcppEigen)]]

using Eigen::Map;
using Eigen::MatrixXd;
using Eigen::VectorXd;
using Eigen::SparseMatrix;
using Eigen::MappedSparseMatrix;
using Eigen::SparseVector;
using Eigen::Triplet;
using namespace Rcpp;
using namespace Eigen;

// [[Rcpp::export]]
Eigen::SparseVector<double> getSparseVec(const Eigen::MappedSparseMatrix<double>& X) {
  return X.row(1);
}

.row()的返回类型似乎是一个ConstRowXpr,但我不知道如何将其转换为SparseVector的形式,而且我一直无法找到该文档的页面ConstRowXpr

0 个答案:

没有答案