在本征中选择满足条件的列

时间:2019-10-10 15:40:40

标签: c++ eigen3

    one two three four
 [1,]   1   6    11   16
 [2,]   2   7    12   17
 [3,]   3   8    11   18
 [4,]   4   9    11   19
 [5,]   5  10    15   20

我要提取其行具有第三列= 11的子矩阵。即:

      one two three four
 [1,]   1   6    11   16
 [3,]   3   8    11   18
 [4,]   4   9    11   19

如何在本征中做到这一点?

1 个答案:

答案 0 :(得分:0)

可以使用以下方法定义Eigen::Array布尔值,其中包含有关矩阵的行是否满足条件的信息

enum cols {one, two, three, four};
auto is_selected = (mat.col(three).array() == 11);

this answer中所述,可能在将数组is_selected转换为整数向量之后,可以用来构造一个由原始行的选定行组成的新矩阵。 / p>