2016-01-26 2 views
2

Я хочу иметь возможность установить все значения в ILArray < T>, которые находятся за пределами диапазона значений Min/Max до значения Min/Max.Как закрепить данные массива в ILNumerics

Есть ли метод массива ILNumerics, который будет делать это?

например, в массиве диапазона 1000 1000, диапазон значений от 1 до 2000, но большая часть данных находится в диапазоне 800-1000, поэтому я хочу установить любое значение ниже 800-800 и любое значение, превышающее 1000 до 1000.

Без прохождения цикла вложенного цикла и проверки каждого значения есть более простой способ сделать это?

ответ

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