2016-01-26 15 views
2

我希望能够将最小/最大值范围之外的ILArray < T>中的所有值设置为最小/最大值。如何在ILNumerics中钳位阵列数据

是否有一个ILNumerics数组方法可以做到这一点?

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

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

回答

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; 
2

可以直接做,例如:

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