c++ - 选择 Eigen 中满足条件的行
问题描述
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 中做到这一点?
解决方案
Eigen::Array
包含有关矩阵的行是否符合标准的信息的布尔值可以定义为
enum cols {one, two, three, four};
auto is_selected = (mat.col(three).array() == 11);
数组is_selected
,可能在将其转换为整数向量之后,可用于构造一个新矩阵,该矩阵由原始矩阵的选定行组成,如本答案中所述。
推荐阅读
- ruby-on-rails - Rails 6.0 最佳实践中的 secret_key_base
- python - 为什么 venv 包含旧版本的 pip (9.0.3)?
- azure - 使用 Azure CLI 为应用程序见解设置数据保留
- c# - DynamoDB 查询包含一个列表参数
- reactjs - 无法使用 @testing-library/user-event 用新值更新文本区域
- xamarin - Xamarin Forms 不能两次安装相同的应用程序(使用不同的包名称)
- excel - 下载一个特定股票的历史股票价格时 VBA 宏出错:MDB
- angular - 使用 Angular 9 Reactive Forms 为一个输入使用多种模式的方法
- google-cloud-platform - 如何在谷歌云 sdk 中使用谷歌云 Gcloud 查询一次查询多个项目
- android - AndroidX Navigation 在 BottomNavigationView 上显示新的 NavigationGraph