【问题标题】:Selecting row which column meeting condition in Eigen选择 Eigen 中满足条件的行
【发布时间】:2019-10-10 15:40:40
【问题描述】:
    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

如何在 Eigen 中做到这一点?

【问题讨论】:

标签: c++ eigen3


【解决方案1】:

一个Eigen::Array 的布尔值包含有关矩阵行是否符合标准的信息,可以使用

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

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

【讨论】:

    猜你喜欢
    • 2019-04-24
    • 1970-01-01
    • 2011-07-20
    • 2017-11-15
    • 1970-01-01
    • 2017-10-22
    • 2020-04-12
    • 2015-09-29
    相关资源
    最近更新 更多