cummax
Кумулятивный максимум.
| Библиотека |
|
Синтаксис
Вызов функции
-
M = cummax(A)— возвращает кумулятивные максимальные элементы массиваA.-
Если
A— вектор, тоM— вектор того же размера и типа, содержащий кумулятивные максимумы вектораA. -
Если
A— матрица, тоM— матрица того же размера и типа, содержащая кумулятивные максимумы в каждом столбце матрицыA. -
Если
A— многомерный массив, тоM— массив того же размера и типа, содержащий кумулятивные максимумы по первому измерению массиваA, размер которого не равен1.
-
Аргументы
Входные аргументы
#
A —
входной массив
вектор | матрица | многомерный массив
Details
Входной массив, заданный как вектор, матрица или многомерный массив. Для комплексных элементов функция cummax сравнивает их амплитуды. Если амплитуды равны, cummax также сравнивает фазовые углы.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
#
dim —
измерение, по которому выполняется операция
положительный целочисленный скаляр
Details
Измерение, по которому выполняется операция, заданное как положительный целочисленный скаляр. Если измерение не указано, по умолчанию используется первое измерение массива, размер которого не равен 1.
Рассмотрим двумерный входной массив A:
-
cummax(A,1)работает с последовательными элементами в столбцахAи возвращает массив того же размера, что иA, с кумулятивными максимумами в каждом столбце. -
cummax(A,2)работает с последовательными элементами в строкахAи возвращает массив того же размера, что иA, с кумулятивными максимумами в каждой строке.
cummax возвращает 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}:
3.0 9.0 6.0 6.0 10.0 3.0 8.0 8.0 4.0 6.0
import EngeeDSP.Functions: cummax
M = cummax(v)
1×10 Matrix{Float64}:
3.0 9.0 6.0 6.0 10.0 3.0 8.0 8.0 4.0 6.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: cummax
M = cummax(A)
3×3 Matrix{Float64}:
3.0 5.0 2.0
3.0 6.0 3.0
7.0 8.0 3.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: cummax
M = cummax(A, 2)
3×3 Matrix{Float64}:
3.0 5.0 5.0
1.0 6.0 6.0
7.0 8.0 8.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: cummax
M = cummax(A, 3, "reverse")
2×2×3 Array{Float64, 3}:
[:, :, 1] =
9.0 10.0
11.0 12.0
[:, :, 2] =
9.0 10.0
11.0 12.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: cummax
M = cummax(A, "includenan")
3×4 Matrix{Float64}:
3.0 5.0 NaN 4.0
3.0 6.0 NaN 9.0
3.0 6.0 NaN NaN