movmad

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

Описание

пример

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

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

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

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

пример

M = movmad(A,[kb kf]) вычисляет MAD с окном длины 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
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 вектора-строки, но отмените любое вычисление, в котором используется менее трех точек из выхода. Другими словами, возвращайте только MAD, вычисленные из полного трехэлементного окна, отбрасывая вычисления конечных точек.

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 - имя аргумента и 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

Точки выборки для вычисления MAD, заданная как разделенная разделенными запятой парами, состоящая из '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 = median(|Aimedian(A)|)

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

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

См. также

| | | |

Введенный в R2017a