是否有一种紧凑/漂亮/有效的方式来执行“块的补充”操作。意思是说我想从第3行开始从矩阵M中提取10行的块,我们可以这样做:
Eigen::MatrixXd myBlock = M.block(3,0,10,M.cols());
但我想要提取的是“除了那10行之外的所有行”。这是从第0行到第2行,然后从第13行到结尾。这可能吗 ?提前谢谢。
答案 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)
。