Как зафиксировать массив данных в ILNumerics

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

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

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

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

2 ответа

Решение

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

Вы можете сделать это напрямую, например:

ILArray<int> data = new[,] {{10, 0}, {0, 5}};
data[data > 5] = 2; // this line does the trick
Другие вопросы по тегам