movmad

Скользящая медиана абсолютного отклонения

Синтаксис

M = movmad(A,k)
M = movmad(A,[kb kf])
M = movmad(___,dim)
M = movmad(___,nanflag)
M = movmad(___,Name,Value)

Описание

пример

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

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

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

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

пример

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

пример

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

пример

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

пример

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

Примеры

свернуть все

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

A = [1 2 4 -1 -2 -3 -1 3 2 1];
M = movmad(A,3)
M = 1×10

    0.5000    1.0000    2.0000    1.0000    1.0000    1.0000    2.0000    1.0000    1.0000    0.5000

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

A = [1 2 1 -1 -2 -3 -1 3 4 1];
M = movmad(A,[2 0])
M = 1×10

         0    0.5000         0    1.0000    1.0000    1.0000    1.0000    2.0000    1.0000    1.0000

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

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

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

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

    0.5000         0    0.5000
    0.5000    1.0000    0.5000
    2.0000    1.0000    0.5000

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

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

    0.5000       NaN       NaN       NaN    1.0000       NaN       NaN       NaN    1.0000    1.5000

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

M = movmad(A,3,'omitnan')
M = 1×10

    0.5000    0.5000    1.0000    0.5000    1.0000    0.5000    3.0000    0.5000    1.0000    1.5000

Вычислите 3-часовой движущийся MAD в центре данных в 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 = movmad(A,k,'SamplePoints',t)
M = 1×6

    2.0000    2.0000    2.0000    1.0000    1.0000    0.5000

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

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

     0     1     1     1     1     2     1     1

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

свернуть все

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

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

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

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

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

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

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

Рассмотрите матричный A.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Больше о

свернуть все

Среднее абсолютное отклонение

Для вектора случайной переменной A составил из скалярных наблюдений N, среднее абсолютное отклонение (MAD) задано как

MAD = медиана(|Aiмедиана(A)|)

для i = 1,2,...,N.

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

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

| | | |

Введенный в R2017a

Для просмотра документации необходимо авторизоваться на сайте