【问题标题】:Eigen: Acessing scattered element in a matrix特征:访问矩阵中的分散元素
【发布时间】:2016-06-19 15:29:21
【问题描述】:

在 MATLAB 中,我可以选择分散的子矩阵,例如:

A = [1 ,2 ,3;4,5,6;7,8,9]
A([1,3],[1,3]) = [1,3;7,9]

有没有一种巧妙的方法可以用 Eigen 做到这一点?

【问题讨论】:

    标签: c++ matlab eigen masking eigen3


    【解决方案1】:

    不是以通用方式,但如果您的访问模式是常规的,您可以使用具有适当步幅的 Eigen::Map:

    #include <Eigen/Core>
    #include <iostream>
    
    int main(int argc, char *argv[])
    {
      Eigen::Matrix3d A;
    
      A << 1, 2, 3, 4, 5, 6, 7, 8, 9;
    
      std::cout << Eigen::Map<Eigen::Matrix2d, 0, Eigen::Stride<6, 2> >(A.data());
      return 0;
    }
    

    http://eigen.tuxfamily.org/dox/classEigen_1_1Stride.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多