Документация Engee

cummin

Кумулятивный минимум.

Библиотека

EngeeDSP

Синтаксис

Вызов функции

  • M = cummin(A) — возвращает кумулятивные минимальные элементы массива A.

    • Если A — вектор, то M — вектор того же размера и типа, содержащий кумулятивные минимумы вектора A.

    • Если A — матрица, то M — матрица того же размера и типа, содержащая кумулятивные минимумы в каждом столбце матрицы A.

    • Если A — многомерный массив, то M — массив того же размера и типа, содержащий кумулятивные минимумы по первому измерению массива A, размер которого не равен 1.

  • M = cummin(A,dim) — возвращает кумулятивные минимумы по измерению dim. Например, если A — матрица, то cummin(A,2) возвращает кумулятивные минимумы по строкам матрицы A.

  • M = cummin(___,direction) — определяет направление для любого из предыдущих вариантов синтаксиса. Например, cummin(A,2,"reverse") возвращает кумулятивные минимумы матрицы A, действуя от конца к началу второго измерения матрицы A.

  • M = cummin(___,nanflag) — определяет, следует ли исключать или включать значения NaN в массив A. Например, cummin(A,"includenan") учитывает значения NaN при вычислении каждого минимума. По умолчанию cummin исключает значения NaN.

Аргументы

Входные аргументы

# A — входной массив
вектор | матрица | многомерный массив

Details

Входной массив, заданный как вектор, матрица или многомерный массив. Для комплексных элементов функция cummin сравнивает их амплитуды. Если амплитуды равны, cummin также сравнивает фазовые углы.

Типы данных

Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

Поддержка комплексных чисел

Да

# dim — измерение, по которому выполняется операция
положительный целочисленный скаляр

Details

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

Рассмотрим двумерный входной массив A:

  • cummin(A,1) работает с последовательными элементами в столбцах A и возвращает массив того же размера, что и A, с кумулятивными минимумами в каждом столбце.

    cummin 1

  • cummin(A,2) работает с последовательными элементами в строках A и возвращает массив того же размера, что и A, с кумулятивными минимумами в каждой строке.

    cummin 2

cummin возвращает A, если dim больше, чем ndims(A).

# direction — направление кумуляции
"forward" (по умолчанию) | "reverse"

Details

Направление кумуляции, заданное одним из следующих значений:

  • "forward" — работа от 1 до конца рабочего измерения;

  • "reverse" — работа от конца до 1 рабочего измерения.

# nanflag — условие пропущенного значения
"omitmissing" (по умолчанию) | "omitnan" | "includemissing" | "includenan"

Details

Условие обработки пропущенного значения, заданное одним из следующих значений:

  • "omitmissing" или "omitnan" — игнорировать значения NaN в A при вычислении кумулятивных минимумов. Если в A есть последовательные начальные значения NaN, то соответствующие элементы в M также являются NaN. Значения "omitmissing" и "omitnan" ведут себя одинаково.

  • "includemissing" или "includenan" — включить значения NaN в A при вычислении кумулятивных минимумов. Элементы в M становятся NaN, как только в A встречается первое значение NaN. Значения "includemissing" и "includenan" ведут себя одинаково.

Выходные аргументы

# M — выходной массив
вектор | матрица | многомерный массив

Details

Выходной массив, возвращаемый в виде вектора, матрицы или многомерного массива.

Примеры

Кумулятивный минимум в векторе

Details

Найдем кумулятивный минимум вектора случайных целых чисел размером 1 на 10.

import EngeeDSP.Functions: randi

v = randi([0,10],1,10)
1×10 Matrix{Float64}:
 9.0  2.0  8.0  2.0  10.0  3.0  2.0  2.0  6.0  5.0
import EngeeDSP.Functions: cummin

M = cummin(v)
1×10 Matrix{Float64}:
 9.0  2.0  8.0  2.0  10.0  3.0  2.0  2.0  6.0  5.0

Кумулятивный минимум в столбцах матрицы

Details

Найдем кумулятивный минимум столбцов матрицы размером 3×3.

A = [3 5 2; 1 6 3; 7 8 1]
3×3 Matrix{Int64}:
 3  5  2
 1  6  3
 7  8  1
import EngeeDSP.Functions: cummin

M = cummin(A)
3×3 Matrix{Float64}:
 3.0  5.0  2.0
 1.0  5.0  2.0
 1.0  5.0  1.0

Кумулятивный минимум в строках матрицы

Details

Найдем кумулятивный минимум строк матрицы размером 3×3.

A = [3 5 2; 1 6 3; 7 8 1]
3×3 Matrix{Int64}:
 3  5  2
 1  6  3
 7  8  1
import EngeeDSP.Functions: cummin

M = cummin(A, 2)
3×3 Matrix{Float64}:
 3.0  3.0  2.0
 1.0  1.0  1.0
 7.0  7.0  1.0

Обратный кумулятивный минимум

Details

Рассчитаем кумулятивный минимум в третьем измерении массива 2×2×3. Укажем направление "reverse", чтобы вычислять значения от конца третьего измерения к началу.

A = cat([1 2; 3 4], [9 10; 11 12], [5 6; 7 8]; dims=3)
2×2×3 Array{Int64, 3}:
[:, :, 1] =
 1  2
 3  4

[:, :, 2] =
  9  10
 11  12

[:, :, 3] =
 5  6
 7  8
import EngeeDSP.Functions: cummin

M = cummin(A, 3, "reverse")
2×2×3 Array{Float64, 3}:
[:, :, 1] =
 1.0  2.0
 3.0  4.0

[:, :, 2] =
 5.0  6.0
 7.0  8.0

[:, :, 3] =
 5.0  6.0
 7.0  8.0

Кумулятивный минимум, включая пропущенные значения

Details

Создадим матрицу, содержащую значения NaN.

A = [3 5 NaN 4; 2 6 2 9; 1 3 0 NaN]
3×4 Matrix{Float64}:
 3.0  5.0  NaN      4.0
 2.0  6.0    2.0    9.0
 1.0  3.0    0.0  NaN

Вычислим кумулятивные минимумы матрицы, включая значения NaN. Для столбцов матрицы, содержащих любое значение NaN, кумулятивные минимальные значения становятся равными NaN, как только встречается первое значение NaN.

import EngeeDSP.Functions: cummin

M = cummin(A, "includenan")
3×4 Matrix{Float64}:
 3.0  5.0  NaN    4.0
 2.0  5.0  NaN    4.0
 1.0  3.0  NaN  NaN

Советы

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