小编mor*_*wcj的帖子

用于获取矩阵子集的 RcppEigen 切片方法无法一致工作并导致致命错误/崩溃

我正在使用Rcppand编写 R 包RcppEigen,但在矩阵切片和子设置方面遇到问题。我需要从一个较大的方阵中得到一个非对角方阵

Eigen::MatrixXd切片方法似乎是问题。使用Eigen::seq()方法在 R 中根本不起作用,因为“命名空间 'Eigen' 中没有名为 'seq' 的成员”,并且该MatrixXd.block(i, j, n, n)方法导致崩溃,某些大(ish)值是n. 有时它工作得很好,但如果我增加大小,它会导致致命的崩溃。

这是 C++ 代码的示例:

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

using namespace Rcpp;

using Eigen::Map;
using Eigen::MatrixXd;

typedef Map<MatrixXd> MapMatd;

// [[Rcpp::export]]
List crosspart_worker_cpp(const MapMatd& Vij, ...){

  int n = Vij.cols()/2;

  /* ... some arbitrary code ... */
 

  // extract sub-block of varcovar matrix (only unique pairs)
  MatrixXd Vsub = Vij.block(1, n + 1, n, …
Run Code Online (Sandbox Code Playgroud)

c++ memory r rcpp eigen

6
推荐指数
0
解决办法
185
查看次数

标签 统计

c++ ×1

eigen ×1

memory ×1

r ×1

rcpp ×1