在张量中过滤多维视图
Filtering multidimensional views in xtensor
我正在尝试使用一个简单的条件过滤 2D 张量视图。我找到了 xt::filter 函数,但是当我使用它时,它只返回过滤视图的第一列。我需要 2D 过滤视图。最好的方法是什么?
我可以逐行检查条件,并自己获取所有索引,并使用 xt::view 仅显示所需的行,但我使用 xtensor 工具集采用更复杂的方法。
我当前的过滤器只返回一个方向,如下所示:
auto unfiltered = xt::view(...);
auto filtered = xt::filter(unfiltered, xt::view(unfiltered, xt::all(), 0) > tresh);
编辑:
有可能我不完全清楚。我需要一个 2D 视图,其中我只保留那些线,其中线的第一个元素大于反抗。
xt::view(unfiltered, xt::all(), 0)
正在创建一个仅包含未筛选的第一列的视图。以下内容应符合您的预期:
auto unfiltered = xt::view(...);
auto filtered = xt::filter(unfiltered, unfiltered > tresh);
编辑:很抱歉造成误解,这是OP评论后的更新:
该条件不会广播到要过滤的表达式的形状,现在的解决方法是:
auto unfiltered = xt::view(...);
auto filtered = xt::filter(unfiltered,
xt::broadcast(xt::view(unfiltered, xt::all(), 0, xt::newaxis()),
unfiltered.shape()) > tresh);
我将为此打开一个问题。
另请注意,filter 返回一个 1D 表达式(因为满足条件的元素可能分散在原始表达式中(,您需要重塑它以获得 2D 表达式。
相关文章:
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 视图中的参数推导失败:take_while
- 如何维护资源管理器项目视图中当前可见的项目列表
- 在另一个类视图中添加最多2个图表的正确方法是什么
- OpenVR:向视图方向移动
- 使用 WIN32 API (C/C++) 对特定树视图项进行着色
- 将所选值(通过视图)从 boost::multi_array 复制到另一个数组 (C++)
- 如何在不使用滚动条的情况下使视图更改
- 列表视图更改选择颜色
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 为什么 gcc 会给我可能未初始化的警告 deque::insert 带有过滤范围
- 在 Qml 中从 QSqlTableModel 中删除单行时视图不一致
- 通过C++从目录中过滤特定文件类型
- 如何从未知视图中声明范围::v3::View 变量
- 控制带有信号/插槽的Qt QML滑动视图
- boost::hana:为什么我无法过滤集?
- 列表视图项的替代颜色
- 带有 GDB 调试器的 VS 代码内存视图
- 在张量中过滤多维视图
- 过滤期间,在树视图中扩展特定项目