А также:

OSCAT‎ > ‎Basic Library‎ > ‎

_ARRAY_MEDIAN

Тип Функция : REAL

Входы PT : Pointer (Указатель на массив)

SIZE : UINT (Размер массива)

Выходы REAL (Медиана массива)


Функция _ARRAY_MEDIAN вычисляет медиану произвольного массива значений типа REAL. При вызове функции передается указатель на массив и его размер в байтах. В CoDeSys вызов происходит следующим образом: _ARRAY_MEDIAN(ADR(Array), SIZEOF(Array)), где Array - имя обрабатываемого массива. ADR() является стандартной функцией, которая возвращает указатель на массив, а SIZEOF() - стандартная функция, которая вычисляет размер массива. Для определения медианы, массив, на который ссылается указатель, будет отсортирован непосредственно в памяти и останется отсортированным по выходе из функции. Таким образом, функция _ARRAY_MEDIAN изменяет содержимое массива.

Этот способ обработки массива является очень эффективным, поскольку не требует дополнительной памяти, и передаваемые значения не нужно копировать.

Если нужно обработать массив, который нельзя изменять, то до передачи указателя и вызова функции необходимо скопировать его во временный массив.

Пример: _ARRAY_MEDIAN(ADR(bigarray), SIZEOF(bigarray))

Медиана:
Медиана представляет собой срединное значение упорядоченного множества значений.
Медиана от (12, 0, 4, 7, 1) есть 4. После выполнения функции массив остается отсортированным в памяти (0, 1, 4, 7, 12).

Если массив содержит четное число элементов, медиана представляет собой среднее арифметическое двух срединных значений в массиве.