是否有一种紧凑/漂亮/高效的方法来执行“ block 的补充”操作。意思是说我想从矩阵 M 从第 3 行开始提取 10 行的 block ,我们可以这样做:
Eigen::MatrixXd myBlock = M.block(3,0,10,M.cols());
但我要提取的是“除那 10 行之外的所有行”。即从第 0 行到第 2 行,然后从第 13 行到最后。这可能吗 ?提前致谢。
最佳答案
直接连接是不可能的,但是你可以轻松地将两个 block 连接在一起:
// 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)
.
关于c++ - block 操作的特征矩阵库补码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40137354/