特征矩阵库的一个块操作的补充

Eigen Matrix library complement of a block operation

本文关键字:一个 操作 特征      更新时间:2023-10-16

是否有一种紧凑/美观/高效的方法来执行"块的补码"操作?也就是说,我想从一个矩阵M中提取一个10行的区块,从第3行开始我们可以这样做:

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

但我想提取的是"所有行,但这10行"。从第0行到第2行,然后从第13行到最后。这可能吗?

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

// 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);

注意:您可以将M.block(3,0,10,M.cols())写成M.middleRows<3>(10)

相关文章: