块操作的特征矩阵库补充

时间:2016-10-19 16:53:27

标签: c++ indexing eigen

是否有一种紧凑/漂亮/有效的方式来执行“块的补充”操作。意思是说我想从第3行开始从矩阵M中提取10行的块,我们可以这样做:

  Eigen::MatrixXd myBlock = M.block(3,0,10,M.cols());

但我想要提取的是“除了那10行之外的所有行”。这是从第0行到第2行,然后从第13行到结尾。这可能吗 ?提前谢谢。

1 个答案:

答案 0 :(得分:1)

不可能直接,但您可以轻松地将两个块连接在一起:

// result must be allocated to the correct size before concatenating:
Eigen::MatrixXd myComplement(M.rows()-10, M.cols());
myComplement << M.topRows<3>(), M.bottomRows(M.rows()-13);

N.B .: 您可以写M.block(3,0,10,M.cols())而不是M.middleRows<3>(10)