首页 > 解决方案 > 如何根据 IlNumerics 中的数组中的多个条件过滤行

问题描述

我想获得基于多个约束的行。一个标准很完美,比如

A[A[full, 0] % 3 == 0, full];

但是当我添加第二个条件时,我得到一个编译器错误。这样做的正确方法是什么?

Array<double> A = new double[,] {
              { 1, 9, 20 },
              { 2, 11, 21 },
              { 9, 12, 21 },
              { 9, 13, 23 },
              { 9, 14, 24 },
              { 10, 12, 21 },
              { 14, 13, 23 },
              { 16, 14, 24 },
              { 19, 12, 21 },
              { 27, 13, 23 },
              { 23, 14, 24 },
              { 6, 15, 25 }
            };

            Array<double> matching = 
                A[A[full, 0] % 3 == 0 && A[full, 1] > 10, full];

标签: arraysilnumerics

解决方案


&&运算符没有Array<T>重载。它在 C# 中返回一个布尔值,而不是您可能期望的数组。改用相应的功能ILMath.and(A, B),它就会起作用。


推荐阅读