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=1N1i=1N|Aiμ|2,

где μ - среднее значение A:

μ=1Ni=1NAi.

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

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

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

.

См. также

| | | |

Введенный в R2016a