exponenta event banner

movstd

Перемещение стандартного отклонения

Описание

пример

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

  • Если A является вектором, то movstd оперирует по длине вектора.

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

пример

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

пример

M = movstd(___,w) задает коэффициент нормализации для любого из предыдущих синтаксисов. Когда w = 0 (по умолчанию), M нормализовано k-1 для длины окна k. Когда w = 1, M нормализовано k.

пример

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

пример

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

пример

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

Примеры

свернуть все

Вычислите трехточечное центрированное скользящее стандартное отклонение вектора строки. Если в конечных точках окна меньше трех элементов, возьмите стандартное отклонение над доступными элементами.

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

    2.8284    2.0000    4.7258    4.3589    1.0000    1.0000    3.0551    2.6458    1.0000    0.7071

Вычислите трехточечное скользящее стандартное отклонение вектора строки. Если в конечных точках окна меньше трех элементов, возьмите стандартное отклонение над доступными элементами.

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

         0    2.8284    2.0000    4.7258    4.3589    1.0000    1.0000    3.0551    2.6458    1.0000

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

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

    2.0000    1.6330    3.8586    3.5590    0.8165    0.8165    2.4944    2.1602    0.8165    0.5000

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

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

    2.8284    2.0000    1.4142
    0.7071    1.0000    0.7071
    2.8284    2.6458    0.7071

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

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

    2.8284       NaN       NaN       NaN    1.0000       NaN       NaN       NaN    1.0000    0.7071

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

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

    2.8284    2.8284    6.3640    0.7071    1.0000    0.7071    4.2426    0.7071    1.0000    0.7071

Вычисление 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
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 = movstd(A,k,'SamplePoints',t)
M = 1×6

    2.8284    2.0000    4.7258    4.3589    1.0000    0.7071

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

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

    2.0000    4.7258    4.3589    1.0000    1.0000    3.0551    2.6458    1.0000

Входные аргументы

свернуть все

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

Типы данных: single | double | 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

Вес, указанный как одно из следующих значений:

  • 0 - Нормализовать по k-1, где k - длина окна. Если k=1, вес k.

  • 1 - Нормализовать по k.

Типы данных: single | double

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

Измерение dim указывает измерение, которое movstd работает вдоль направления, в котором скользит указанное окно.

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

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

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

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

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

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

  • 'omitnan' - Игнорировать все NaN значения на входе. Если окно содержит только NaN значения, затем movstd прибыль NaN.

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

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

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

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

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

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

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

Движущиеся окна определяются относительно точек образца, которые должны быть отсортированы и содержать уникальные элементы. Например, если t является вектором времен, соответствующих входным данным, то movstd(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

Подробнее

свернуть все

Стандартное отклонение

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

S=1N−1∑i=1N'Ai−μ|2,

где λ - среднее значение А:

μ=1N∑i=1NAi.

Стандартное отклонение представляет собой квадратный корень дисперсии. В некоторых определениях стандартного отклонения вместо N-1 используется коэффициент нормализации N, который можно задать путем установки w кому 1.

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

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

.

См. также

| | | |

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