movmax

Движущийся максимум

Описание

пример

M = movmax(A,k) возвращает массив локального k- укажите максимальные значения, где каждый максимум вычисляется по раздвижному окну длины k через соседние элементы A. Когда k нечетно, окно сосредоточено об элементе в текущем положении. Когда k даже, окно сосредоточено о текущих и предыдущих элементах. Размер окна является автоматически усеченным в конечных точках, когда существует недостаточно элементов, чтобы заполнить окно. Когда окно является усеченным, максимум взят только по элементам, которые заполняют окно. M одного размера с A.

  • Если A вектор, затем movmax действует вдоль вектора.

  • Если A многомерный массив, затем movmax действует вдоль первого измерения массива, размер которого не равняется 1.

пример

M = movmax(A,[kb kf]) вычисляет максимум с окном длины kb+kf+1 это включает элемент в текущее положение, kb элементы назад и kf элементы вперед.

пример

M = movmax(___,dim) возвращает массив движущихся максимумов по измерению dim для любого из предыдущих синтаксисов. Например, если A матрица, затем movmax(A,k,2) действует вдоль столбцов A, вычисление k- скользящий максимум элемента для каждой строки.

пример

M = movmax(___,nanflag) задает, включать ли или не использовать NaN значения от вычисления для любого из предыдущих синтаксисов. movmax(A,k,'includenan') включает весь NaN значения в вычислении, в то время как movmax(A,k,'omitnan') игнорирует их и вычисляет максимум по меньшему количеству точек.

пример

M = movmax(___,Name,Value) задает дополнительные параметры для движущегося максимума с помощью одного или нескольких аргументов пары "имя-значение". Например, если x вектор временных стоимостей, затем movmax(A,k,'SamplePoints',x) вычисляет движущийся максимум относительно времен в x.

Примеры

свернуть все

Вычислите движущийся максимум в центре с тремя точками вектора-строки. Когда существует меньше чем три элемента в окне в конечных точках, берут максимум по элементам, которые доступны.

A = [4 8 6 -1 -2 -3 -1 3 4 5];
M = movmax(A,3)
M = 1×10

     8     8     8     6    -1    -1     3     4     5     5

Вычислите запаздывание с тремя точками движущийся максимум вектора-строки. Когда существует меньше чем три элемента в окне в конечных точках, movmax берет максимум по числу элементов, которые доступны.

A = [4 8 6 -1 -2 -3 -1 3 4 5];
M = movmax(A,[2 0])
M = 1×10

     4     8     8     8     6    -1    -1     3     4     5

Вычислите движущийся максимум в центре с тремя точками для каждой строки матрицы. Окно запускается на первой строке, скользит горизонтально в конец строки, затем перемещается во вторую строку и так далее. Аргумент размерности равняется двум, которые двигают окно через столбцы A.

A = [4 8 6; -1 -2 -3; -1 3 4]
A = 3×3

     4     8     6
    -1    -2    -3
    -1     3     4

M = movmax(A,3,2)
M = 3×3

     8     8     8
    -1    -1    -2
     3     4     4

Вычислите движущийся максимум в центре с тремя точками вектора-строки, содержащего два NaN элементы.

A = [4 8 NaN -1 -2 -3 NaN 3 4 5];
M = movmax(A,3)
M = 1×10

     8     8     8    -1    -1    -2     3     4     5     5

Повторно вычислите максимум, но включайте NaN значения. При взятии максимума по группе элементов, содержащих по крайней мере один NaN значение, movmax возвращает NaN.

M = movmax(A,3,'includenan')
M = 1×10

     8   NaN   NaN   NaN    -1   NaN   NaN   NaN     5     5

Вычислите 3-часовой движущийся максимум в центре данных в A согласно временному вектору t.

A = [4 8 6 -1 -2 -3];
k = hours(3);
t = datetime(2016,1,1,0,0,0) + hours(0:5)
t = 1x6 datetime array
Columns 1 through 3

   01-Jan-2016 00:00:00   01-Jan-2016 01:00:00   01-Jan-2016 02:00:00

Columns 4 through 6

   01-Jan-2016 03:00:00   01-Jan-2016 04:00:00   01-Jan-2016 05:00:00

M = movmax(A,k,'SamplePoints',t)
M = 1×6

     8     8     8     6    -1    -2

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

A = [4 8 6 -1 -2 -3 -1 3 4 5];
M = movmax(A,3,'Endpoints','discard')
M = 1×8

     8     8     6    -1    -1     3     4     5

Входные параметры

свернуть все

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Длина окна, заданная как числовой скаляр или скаляр длительности. Когда k положительный целочисленный скаляр, максимум в центре включает элемент в текущее положение плюс окружение соседей. Например, максимум с тремя точками, заданный окном длины три результата в следующем вычислении для векторного A:

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | duration

Направленная длина окна, заданная как числовой вектор-строка или вектор-строка длительности, содержащий два элемента. Когда kb и kf положительные целочисленные скаляры, вычисление по kb+kf+1 элементы. Вычисление включает элемент в текущее положение, kb элементы перед текущим положением и kf элементы после текущего положения. Например, максимум с четырьмя точками задан направленным окном [2 1] результаты в следующем вычислении для векторного A:

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | duration

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

Размерность dim указывает на размерность что movmax действует вперед, то есть, направление, в котором скользит заданное окно.

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

  • Если dim = 1, затем movmax(A,k,1) запускается с первого столбца и скользит вертикально по каждой строке, чтобы вычислить. Максимум вычисляется по k элементы за один раз. Затем это перемещается во второй столбец и повторяет расчет. Этот процесс продолжается, пока все столбцы не исчерпываются.

  • Если dim = 2, затем movmax(A,k,2) запускается с первой строки и скользит горизонтально по каждому столбцу. Максимум вычисляется по k элементы за один раз. Затем это перемещается во вторую строку и повторяет расчет. Этот процесс продолжается, пока все строки не исчерпываются.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

NaN условие, заданное как одно из этих значений:

  • 'omitnan' — Проигнорируйте весь NaN значения во входе. Если окно включает только NaN значения, затем movmax возвращает NaN.

  • 'includenan' — Включайте NaN значения от входа при вычислении максимума, приведении к выходу NaN.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: M = movmax(A,k,'Endpoints','fill')

Метод, чтобы обработать ведущие и запаздывающие окна, заданные как разделенная запятой пара, состоящая из 'Endpoints' и одно из следующего:

'Endpoints' ЗначениеОписание
'shrink'Уменьшите размер окна около конечных точек входа, чтобы включать только существующие элементы.
'discard'Не выводите максимальные значения, когда окно не полностью наложится с существующими элементами.
'fill'Замените несуществующими элементами с -Inf.
числовой или логический скалярЗамените несуществующими элементами с заданным числовым или логическим значением.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string

Точки выборки для вычислительных максимумов, заданных как разделенная запятой пара, состоящая из 'SamplePoints' и вектор. Точки выборки представляют местоположение данных в A. Точки выборки не должны быть однородно произведены. По умолчанию вектором точек выборки является [1 2 3 ... ].

Движущиеся окна заданы относительно точек выборки, которые должны быть отсортированы и содержать уникальные элементы. Например, если t вектор времен, соответствуя входным данным, затем movmax(rand(1,10),3,'SamplePoints',t) имеет окно, которое представляет временной интервал между t(i)-1.5 и t(i)+1.5.

Когда вектор точек выборки имеет тип данных datetime или duration, затем движущаяся длина окна должна иметь, вводят duration.

Если точки выборки расположены с неоднородными интервалами и 'Endpoints' пара "имя-значение" задана, затем ее значением должен быть 'shrink'.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | datetime | duration

Расширенные возможности

Смотрите также

| | |

Введенный в R2016a