exponenta event banner

movmad

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

Описание

пример

M = movmad(A,k) возвращает массив локальных k-точные медианные абсолютные отклонения (MAD), где каждый 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

Вычислите 3-точечное перемещение MAD для каждой строки матрицы. Аргумент измерения равен 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 = медиана (| Ai − медиана (A) |)

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

| | | |

Представлен в R2017a