首页 > 解决方案 > eigen(c++):如何访问矩阵的一部分?

问题描述

在 matlab 中,我可以使用 A(1:5,2:4) 访问矩阵中 1-5 行和 2-4 列的元素。在 c++ eigen 库中,我如何访问 matlab 中的部分元素?

标签: c++eigen

解决方案


使用block功能

#include <Eigen/Dense>
#include <iostream>
 
int main()
{
  Eigen::MatrixXf m(4,4);
  m <<  1, 2, 3, 4,
        5, 6, 7, 8,
        9,10,11,12,
       13,14,15,16;
  std::cout << "m(2:3, 2:3) = \n";
  std::cout << m.block<2,2>(1,1) << '\n';
}

返回

m(2:3, 2:3) = 
 6  7
10 11

你甚至可以用这种方式写入矩阵!请参阅上面的链接。


推荐阅读