如何在 ILNumerics 中限制数组数据

How to clamp array data in ILNumerics

我希望能够将 ILArray 中 Min/Max 值范围之外的所有值设置为 Min/Max 值。

是否有可以执行此操作的 ILNumerics 数组方法?

例如,在我的 1000,1000 范围数组中,值的范围是 1 到 2000,但大部分数据都在 800-1000 范围内,所以我想设置任何低于 800 到 800 的值,以及任何高于 800 的值1000 到 1000。

没有通过嵌套的 for 循环并检查每个值是否有更简单的方法来做到这一点?

可以直接做,例如:

ILArray<int> data = new[,] {{10, 0}, {0, 5}};
data[data > 5] = 2; // this line does the trick

ILNumerics 中没有这样的方法,它将数组的值限制在一定范围内。但是,正如 evertqin 所示,您可以分别设置最大和最小范围。为了将数组的值限制在 1 ..4 到 2..3 之间,您可以这样做:

ILArray<double> data = new[,] {{1.0, 2.0}, {3.0, 4.0}};
data[data > 3] = 3;
data[data < 2] = 2;