如何在ILNumerics中钳制数组数据

时间:2016-01-26 00:03:00

标签: c# arrays ilnumerics

我希望能够在ILArray中设置所有值< T>超出最小值/最大值范围的最小值/最大值。

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

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

没有经过嵌套的for循环并检查每个值是否有更简单的方法来执行此操作?

2 个答案:

答案 0 :(得分:2)

您可以直接执行此操作,例如:

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

答案 1 :(得分:1)

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;