Spec-Zone.ru › Octave 8

26.2 Статистики скользящих окон данных

Часто бывает полезно вычислять описательные статистики по подмножеству (т.е., окну) всего набора данных. Octave предоставляет функцию movfun, которая вызовет произвольную функцию-обработчик с окнами данных и аккумулирует результаты. Многие из наиболее часто используемых функций, такие как скользящее среднее значение по окну данных (movmean), уже предоставляются.

: y = movfun (fcn, x, wlen) ¶
: y = movfun (fcn, x, [nb, na]) ¶
: y = movfun (…, "property", value) ¶

Применить функцию fcn к скользящему окну длиной wlen для данных x.

Если wlen — скаляр, функция fcn применяется к скользящему окну длиной wlen. Когда wlen является нечётным числом, окно симметрично и включает (wlen - 1) / 2 элементов по обе стороны от центрального элемента. Например, при вычислении выходного значения в индексе 5 с длиной окна 3, movfun использует элементы данных [4, 5, 6]. Если wlen — чётное число, окно асимметрично и имеет wlen/2 элементов слева от центрального элемента и wlen/2 - 1 элементов справа от центрального элемента. Например, при вычислении выходного значения в индексе 5 с длиной окна 4, movfun использует элементы данных [3, 4, 5, 6].

Если wlen является массивом из двух элементов [nb, na], функция применяется к скользящему окну -nb:na. Это окно включает nb элементов перед текущим элементом и na элементов после текущего элемента. Текущий элемент всегда включён. Например, при заданных wlen = [3, 0], данные, используемые для вычисления индекса 5, это [2, 3, 4, 5].

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

При применении к массиву (возможно, многомерному) с n столбцами, fcn может возвращать результат в двух форматах: Формат 1) массив размера 1-на-n-на-dim3-на-…-на-dimN. Это типичный формат выходных данных функций Octave. Тип demo ("movfun", 5) для примера такого использования. Формат 2) строка векторов длиной n * numel_higher_dims, где numel_higher_dims это prod (size (x)(3:end)). Результат fcn для i-го входного столбца должен быть найден в выходных данных в индексах i:n:(n*numel_higher_dims). Этот формат полезен при конкатенации функций в массивы или при использовании nthargout. Тип demo ("movfun", 6) для примера такого случая.

Вычисление можно контролировать, задавая пары свойство/значение property/value. Допустимые свойства:

"dim"

Операции выполняются вдоль указанного измерения, а не по умолчанию — вдоль первого измерения, которое не является одноэлементным.

"Endpoints"

Это свойство контролирует, как вычисляются результаты на границах (краях) окна. Возможные значения:

"shrink" (по умолчанию)

Окно усекается в начале и в конце массива, чтобы исключить элементы, для которых нет исходных данных. Например, при окне длиной 3, y(1) = fcn (x(1:2)), и y(end) = fcn (x(end-1:end)).

"discard"

Любые значения y, использующие окно, выходящее за пределы исходного массива данных, удаляются. Например, с вектором данных из 10 элементов и окном длиной 3, выходные данные будут содержать только 8 элементов. Первый элемент потребовал бы вычисления функции над индексами [0, 1, 2] и поэтому отбрасывается. Последний элемент потребовал бы вычисления функции над индексами [9, 10, 11] и поэтому отбрасывается.

"fill"

Любые элементы окна вне массива данных заменяются значением NaN. Например, с окном длиной 3, y(1) = fcn ([NaN, x(1:2)]), и y(end) = fcn ([x(end-1:end), NaN]). Этот вариант обычно приводит к y с NaN значениями на границах, хотя это зависит от того, как fcn обрабатывает NaN, а также от свойства "nancond".

user_value

Любые элементы окна вне массива данных заменяются заданным значением user_value, которое должно быть скалярным числовым значением. Например, с окном длиной 3, y(1) = fcn ([user_value, x(1:2)]), и y(end) = fcn ([x(end-1:end), user_value]). Распространённое значение для user_value — 0.

"same"

Любые элементы окна вне массива данных заменяются значением x на границе. Например, с окном длиной 3, y(1) = fcn ([x(1), x(1:2)]), и y(end) = fcn ([x(end-1:end), x(end)]).

"periodic"

Окно «заворачивается» таким образом, что любые отсутствующие элементы данных берутся с другой стороны данных. Например, с окном длиной 3, y(1) = fcn ([x(end), x(1:2)]), и y(end) = fcn ([x(end-1:end), x(1)]).

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

"nancond"

Управляет тем, включаются ли NaN и NA значения (значение: "includenan") или исключаются (значение: "omitnan") из данных, передаваемых fcn. По умолчанию — "includenan". Внимание: вариант "omitnan" ещё не реализован.

"outdim"

Строка векторов, которая выбирает, какие измерения вычислений будут отображаться в выходных данных y. Это полезно только тогда, когда fcn возвращает многомерный массив в формате 1. По умолчанию возвращаются все выходные измерения.

Примечание для программистов: свойство "outdim" может использоваться для экономии памяти, когда выход fcn имеет много измерений или когда оболочка для базовой функции, которая выбирает необходимые выходные данные, слишком затратна. Если память не является проблемой, самый простой способ выбрать выходные измерения — сначала вычислить полный результат с помощью movfun и затем отфильтровать его с помощью индексирования. Если сложность кода не является проблемой, можно создать оболочку с использованием анонимных функций. Например, если basefcn — это функция, возвращающая строку выходных данных с K измерениями, и нужно только измерение D, то можно использовать следующую оболочку.

fcn = @(x) basefcn (x)(:,columns(x) * (D-1) + (1:columns(x)));
y = movfun (@fcn, …);

См. также: movslice, prepad, postpad, permute, reshape.

: slcidx = movslice (N, wlen) ¶
: [slcidx, C, Cpre, Cpost, win] = movslice (…) ¶

Генерирует индексы для разбиения вектора длиной N на окна длиной wlen.

Вход N должен быть положительным целым числом.

Входной параметр длины скользящего окна wlen может быть скаляром, отличным от 1, или массивом из 2 элементов целых чисел. Для скалярных значений, если нечётное, окно симметрично и включает (wlen - 1) / 2 элементов по обе стороны от центрального элемента. Если wlen — чётное число, окно асимметрично и имеет wlen/2 элементов слева от центрального элемента и wlen/2 - 1 элементов справа от центрального элемента. Когда wlen является массивом из 2 элементов, [nb, na], окно включает nb элементов слева от текущего элемента и na элементов справа от текущего элемента.

Выход slcidx — массив индексов срезов, которые полностью помещаются в векторе, где каждый столбец — отдельный срез по мере перемещения окна слева направо. Срезы имеют wlen элементов для скалярного wlen или nb + na + 1 элементов для значений wlen в виде массива.

Необязательный выход C — это строка векторов позиций центра окна, где окно полностью находится в векторе.

Необязательные выходы Cpre и Cpost содержат элементы вектора в начале и в конце вектора соответственно, которые приводят к тому, что окно выходит за пределы вектора.

Необязательный выход win — столбец векторов с тем же числом строк, что и slcidx, который содержит скользящее окно, определённое как шаблон относительной позиции центра.

См. также: movfun.

END_OF_DOCUMENT_MARKER
: y = movmad (x, wlen) ¶
: y = movmad (x, [nb, na]) ¶
: y = movmad (…, dim) ¶
: y = movmad (…, "nancond") ¶
: y = movmad (…, property, value) ¶

Вычислите скользящее среднее абсолютное отклонение по скользящему окну длиной wlen для данных x.

Если wlen является скаляром, функция mad применяется к скользящему окну длиной wlen. Когда wlen является нечётным числом, окно симметричное и включает (wlen - 1) / 2 элементов по обе стороны от центрального элемента. Например, при вычислении выходного значения в индексе 5 с длиной окна 3, movmad использует данные элементы [4, 5, 6]. Если wlen является чётным числом, окно асимметричное и имеет wlen/2 элементов слева от центрального элемента и wlen/2 - 1 элементов справа от центрального элемента. Например, при вычислении выходного значения в индексе 5 с длиной окна 4, movmad использует данные элементы [3, 4, 5, 6].

Если wlen является массивом с двумя элементами [nb, na], функция применяется к скользящему окну -nb:na. Это окно включает nb элементов до текущего элемента и na элементов после текущего элемента. Текущий элемент всегда включается. Например, при заданных данных wlen = [3, 0], данные, используемые для вычисления индекса 5, это [2, 3, 4, 5].

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

Необязательный строковый аргумент "nancond" управляет тем, включаются ли NaN и NA значения ("includenan") или исключаются ("omitnan") из данных, переданных в mad. По умолчанию используется "includenan". Внимание: опция "omitnan" пока не реализована.

Вычисление можно контролировать, указав пары property/value. Допустимые свойства:

"Endpoints"

Это свойство управляет тем, как рассчитываются результаты на границах (краях) окна. Возможные значения:

"shrink" (по умолчанию)

Окно усекается в начале и конце массива, чтобы исключить элементы, для которых нет исходных данных. Например, с окном длиной 3, y(1) = mad (x(1:2)), и y(end) = mad (x(end-1:end)).

"discard"

Любые значения y, использующие окно, выходящее за пределы исходного массива данных, удаляются. Например, с вектором данных из 10 элементов и окном длиной 3, на выходе будет только 8 элементов. Первый элемент потребует вычисления функции над индексами [0, 1, 2] и поэтому отбрасывается. Последний элемент потребует вычисления функции над индексами [9, 10, 11] и поэтому отбрасывается.

"fill"

Любые элементы окна, находящиеся за пределами массива данных, заменяются на NaN. Например, с окном длиной 3, y(1) = mad ([NaN, x(1:2)]), и y(end) = mad ([x(end-1:end), NaN]). Эта опция обычно приводит к тому, что у y на границах есть NaN значения, хотя это зависит от того, как mad обрабатывает NaN, а также от свойства "nancond".

user_value

Любые элементы окна, находящиеся за пределами массива данных, заменяются заданным значением user_value, которое должно быть скалярным числом. Например, с окном длиной 3, y(1) = mad ([user_value, x(1:2)]), и y(end) = mad ([x(end-1:end), user_value]). Распространённым выбором для user_value является 0.

"same"

Любые элементы окна, находящиеся за пределами массива данных, заменяются значением x на границе. Например, с окном длиной 3, y(1) = mad ([x(1), x(1:2)]), и y(end) = mad ([x(end-1:end), x(end)]).

"periodic"

Окно сворачивается, так что любые недостающие элементы данных берутся с другой стороны данных. Например, с окном длиной 3, y(1) = mad ([x(end), x(1:2)]), и y(end) = mad ([x(end-1:end), x(1)]).

"SamplePoints"

Внимание: Эта опция пока не реализована.

Примечание для программистов: Эта функция является обёрткой, которая вызывает movfun. Дополнительные параметры и документацию см. в movfun.

См. также: movfun, movslice, movmax, movmean, movmedian, movmin, movprod, movstd, movsum, movvar.

: y = movmax (x, wlen) ¶
: y = movmax (x, [nb, na]) ¶
: y = movmax (…, dim) ¶
: y = movmax (…, "nancond") ¶
: y = movmax (…, property, value) ¶

Вычисление скользящего максимального значения на данных x в окне скользящего размера wlen.

Если wlen является скаляром, функция max применяется к скользящему окну размера wlen. Когда wlen является нечётным числом, окно симметрично и включает (wlen - 1) / 2 элементов с обеих сторон от центрального элемента. Например, при вычислении выходного значения в индексе 5 с длиной окна 3, movmax использует данные элементов [4, 5, 6]. Если wlen является чётным числом, окно асимметрично и содержит wlen/2 элементов слева от центрального элемента и wlen/2 - 1 элементов справа от центрального элемента. Например, при вычислении выходного значения в индексе 5 с длиной окна 4, movmax использует данные элементов [3, 4, 5, 6].

Если wlen является массивом из двух элементов [nb, na], функция применяется к скользящему окну -nb:na. Это окно включает nb элементов перед текущим элементом и na элементов после текущего элемента. Текущий элемент всегда включён. Например, при заданных wlen = [3, 0], данные, используемые для вычисления индекса 5, составляют [2, 3, 4, 5].

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

Необязательный строковый аргумент "nancond" управляет включением NaN и NA значений ("includenan") или их исключением ("omitnan") из данных, передаваемых в max. По умолчанию используется "includenan". Внимание: опция "omitnan" ещё не реализована.

Вычисление может быть настроено с помощью пар property/value. Допустимые свойства:

"Endpoints"

Это свойство управляет тем, как результаты вычисляются на границах (концах) окна. Возможные значения:

"shrink" (по умолчанию)

Окно усекается в начале и в конце массива, чтобы исключить элементы, для которых нет исходных данных. Например, при длине окна 3, y(1) = max (x(1:2)), и y(end) = max (x(end-1:end)).

"discard"

Любые значения y, которые используют окно, выходящее за пределы исходного массива данных, удаляются. Например, при 10-элементном векторе данных и окне длиной 3, выходной массив будет содержать только 8 элементов. Первый элемент потребует вычисления функции над индексами [0, 1, 2] и, следовательно, будет отброшен. Последний элемент потребует вычисления функции над индексами [9, 10, 11] и, следовательно, будет отброшен.

"fill"

Любые элементы окна за пределами массива данных заменяются на NaN. Например, при длине окна 3, y(1) = max ([NaN, x(1:2)]), и y(end) = max ([x(end-1:end), NaN]). Это свойство обычно приводит к значениям y на границах, хотя оно зависит от того, как max обрабатывает NaN, и также от свойства "nancond".

user_value

Любые элементы окна за пределами массива данных заменяются указанным значением user_value, которое должно быть скалярным числом. Например, при длине окна 3, y(1) = max ([user_value, x(1:2)]), и y(end) = max ([x(end-1:end), user_value]). Часто используется значение 0 для user_value.

"same"

Любые элементы окна за пределами массива данных заменяются значением x на границе. Например, при длине окна 3, y(1) = max ([x(1), x(1:2)]), и y(end) = max ([x(end-1:end), x(end)]).

"periodic"

Окно скручивается, так что любые отсутствующие элементы данных берутся с другой стороны данных. Например, при длине окна 3, y(1) = max ([x(end), x(1:2)]), и y(end) = max ([x(end-1:end), x(1)]).

"SamplePoints"

Внимание: Эта опция ещё не реализована.

Примечание по программированию: Эта функция является оболочкой, которая вызывает movfun. Дополнительные опции и документацию см. в movfun.

См. также: movfun, movslice, movmad, movmean, movmedian, movmin, movprod, movstd, movsum, movvar.

: y = movmean (x, wlen) ¶
: y = movmean (x, [nb, na]) ¶
: y = movmean (…, dim) ¶
: y = movmean (…, "nancond") ¶
: y = movmean (…, property, value) ¶

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

Если wlen является скаляром, функция mean применяется к скользящему окну длиной wlen. Когда wlen является нечётным числом, окно симметричное и включает (wlen - 1) / 2 элементов по обе стороны от центрального элемента. Например, при вычислении выходного значения в индексе 5 с длиной окна 3, movmean использует элементы данных [4, 5, 6]. Если wlen является чётным числом, окно асимметричное и содержит wlen/2 элементов слева от центрального элемента и wlen/2 - 1 элементов справа от центрального элемента. Например, при вычислении выходного значения в индексе 5 с длиной окна 4, movmean использует элементы данных [3, 4, 5, 6].

Если wlen является массивом из двух элементов [nb, na], функция применяется к скользящему окну -nb:na. Это окно включает nb элементов до текущего элемента и na элементов после текущего элемента. Текущий элемент всегда включается. Например, при заданном wlen = [3, 0], данные, используемые для вычисления индекса 5, составляют [2, 3, 4, 5].

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

Необязательный строковый аргумент "nancond" управляет тем, включаются ли NaN и NA значения ("includenan") или исключаются ("omitnan") из данных, передаваемых в mean. По умолчанию используется "includenan". Внимание: опция "omitnan" ещё не реализована.

Вычисление можно контролировать, задавая пары property/value. Допустимые свойства:

"Endpoints"

Это свойство контролирует, как результаты рассчитываются на границах (концах) окна. Возможные значения:

"shrink" (по умолчанию)

Окно усекается в начале и конце массива, чтобы исключить элементы, для которых нет исходных данных. Например, при длине окна 3, y(1) = mean (x(1:2)), и y(end) = mean (x(end-1:end)).

"discard"

Любые значения y, использующие окно, выходящее за пределы исходного массива данных, удаляются. Например, при 10-элементном векторе данных и длине окна 3, выходной массив будет содержать только 8 элементов. Первый элемент потребует вычисления функции по индексам [0, 1, 2] и поэтому отбрасывается. Последний элемент потребовал бы вычисления функции по индексам [9, 10, 11] и поэтому отбрасывается.

"fill"

Любые элементы окна, находящиеся за пределами массива данных, заменяются на NaN. Например, при длине окна 3, y(1) = mean ([NaN, x(1:2)]), и y(end) = mean ([x(end-1:end), NaN]). Эта опция обычно приводит к тому, что у y есть NaN значения на границах, хотя это зависит от того, как mean обрабатывает NaN, и также от свойства "nancond".

user_value

Любые элементы окна, находящиеся за пределами массива данных, заменяются на заданное значение user_value, которое должно быть числовым скаляром. Например, при длине окна 3, y(1) = mean ([user_value, x(1:2)]), и y(end) = mean ([x(end-1:end), user_value]). Часто используется значение 0 для user_value.

"same"

Любые элементы окна, находящиеся за пределами массива данных, заменяются значением x на границе. Например, при длине окна 3, y(1) = mean ([x(1), x(1:2)]), и y(end) = mean ([x(end-1:end), x(end)]).

"periodic"

Окно перематывается, так что любые недостающие элементы данных берутся с другой стороны данных. Например, при длине окна 3, y(1) = mean ([x(end), x(1:2)]), и y(end) = mean ([x(end-1:end), x(1)]).

"SamplePoints"

Внимание: Эта опция ещё не реализована.

Примечание для программистов: Эта функция является оболочкой, которая вызывает movfun. Дополнительные параметры и документацию см. в movfun.

См. также: movfun, movslice, movmad, movmax, movmedian, movmin, movprod, movstd, movsum, movvar.

: y = movmedian (x, wlen) ¶
: y = movmedian (x, [nb, na]) ¶
: y = movmedian (…, dim) ¶
: y = movmedian (…, "nancond") ¶
: y = movmedian (…, property, value) ¶

Вычислите медиану скользящего окна длины wlen по данным x.

Если wlen является скаляром, функция movmedian применяется к скользящему окну длины wlen. Когда wlen нечётное число, окно симметричное и включает (wlen - 1) / 2 элементов по обе стороны от центрального элемента. Например, при вычислении выходного значения в индексе 5 с длиной окна 3, movmedian использует элементы данных [4, 5, 6]. Если wlen чётное число, окно асимметричное и содержит wlen/2 элементов слева от центрального элемента и wlen/2 - 1 элементов справа от центрального элемента. Например, при вычислении выходного значения в индексе 5 с длиной окна 4, movmedian использует элементы данных [3, 4, 5, 6].

Если wlen является массивом с двумя элементами [nb, na], функция применяется к скользящему окну -nb:na. Это окно включает nb элементов перед текущим элементом и na элементов после текущего элемента. Текущий элемент всегда включён. Например, при заданных данных wlen = [3, 0], данные, используемые для вычисления индекса 5, это [2, 3, 4, 5].

Если указан необязательный аргумент dim, операция выполняется по этой размерности.

Необязательный строковый аргумент "nancond" управляет включением ("includenan") или исключением ("omitnan") значений NaN и NA из данных, передаваемых в movmedian. По умолчанию используется "includenan". Предупреждение: опция "omitnan" пока не реализована.

Вычисления можно контролировать, задавая пары property/value. Допустимые свойства:

"Endpoints"

Это свойство контролирует, как вычисляются результаты на границах (краях) окна. Возможные значения:

"shrink" (по умолчанию)

Окно обрезается в начале и конце массива, чтобы исключить элементы, для которых нет исходных данных. Например, при длине окна 3, y(1) = movmedian (x(1:2)), и y(end) = movmedian (x(end-1:end)).

"discard"

Любые значения y, использующие окно, выходящее за пределы исходного массива данных, удаляются. Например, с вектором данных из 10 элементов и длиной окна 3, на выходе будет только 8 элементов. Первый элемент потребовал бы вычисления функции по индексам [0, 1, 2] и поэтому отбрасывается. Последний элемент потребовал бы вычисления функции по индексам [9, 10, 11] и поэтому отбрасывается.

"fill"

Любые элементы окна за пределами массива данных заменяются на NaN. Например, при длине окна 3, y(1) = movmedian ([NaN, x(1:2)]), и y(end) = movmedian ([x(end-1:end), NaN]). Эта опция обычно приводит к значениям y на границах, хотя она зависит от того, как movmedian обрабатывает NaN, а также от свойства "nancond".

user_value

Любые элементы окна за пределами массива данных заменяются заданным значением user_value, которое должно быть числовым скаляром. Например, с длиной окна 3, y(1) = movmedian ([user_value, x(1:2)]), и y(end) = movmedian ([x(end-1:end), user_value]). Часто для user_value выбирается 0.

"same"

Любые элементы окна за пределами массива данных заменяются значением x на границе. Например, с длиной окна 3, y(1) = movmedian ([x(1), x(1:2)]), и y(end) = movmedian ([x(end-1:end), x(end)]).

"periodic"

Окно зацикливается, так что любые отсутствующие элементы данных берутся с другой стороны данных. Например, с длиной окна 3, y(1) = movmedian ([x(end), x(1:2)]), и y(end) = movmedian ([x(end-1:end), x(1)]).

"SamplePoints"

Предупреждение: Эта опция пока не реализована.

Примечание для программистов: Эта функция является оболочкой, которая вызывает movfun. Дополнительные параметры и документация находятся по ссылке movfun.

См. также: movfun, movslice, movmad, movmax, movmean, movmin, movprod, movstd, movsum, movvar.

: y = movmin (x, wlen) ¶
: y = movmin (x, [nb, na]) ¶
: y = movmin (…, dim) ¶
: y = movmin (…, "nancond") ¶
: y = movmin (…, property, value) ¶

Вычисление минимального значения по скользящему окну длиной wlen для данных x.

Если wlen является скаляром, функция min применяется к скользящему окну длиной wlen. Когда wlen является нечётным числом, окно симметричное и включает (wlen - 1) / 2 элементов с обеих сторон от центрального элемента. Например, при вычислении результата в индексе 5 с длиной окна 3, movmin использует данные элементов [4, 5, 6]. Если wlen является чётным числом, окно асимметричное и имеет wlen/2 элементов слева от центрального элемента и wlen/2 - 1 элементов справа от центрального элемента. Например, при вычислении результата в индексе 5 с длиной окна 4, movmin использует данные элементов [3, 4, 5, 6].

Если wlen является массивом с двумя элементами [nb, na], функция применяется к скользящему окну -nb:na. Это окно включает nb элементов перед текущим элементом и na элементов после текущего элемента. Текущий элемент всегда включается. Например, при wlen = [3, 0], данные, используемые для вычисления индекса 5, это [2, 3, 4, 5].

Если необязательный аргумент dim задан, операция выполняется по этой размерности.

Необязательный строковый аргумент "nancond" управляет тем, включаются ли NaN и NA значения ("includenan") или исключаются ("omitnan") из данных, переданных в min. По умолчанию "includenan". Внимание: опция "omitnan" пока не реализована.

Вычисление можно контролировать, задав пары property/value. Допустимые свойства:

"Endpoints"

Это свойство управляет тем, как рассчитываются результаты на границах (концах) окна. Возможные значения:

"shrink" (по умолчанию)

Окно обрезается в начале и в конце массива, чтобы исключить элементы, для которых нет исходных данных. Например, с окном длиной 3, y(1) = min (x(1:2)), и y(end) = min (x(end-1:end)).

"discard"

Любые значения y, которые используют окно, выходящее за пределы исходного массива данных, удаляются. Например, с вектором данных из 10 элементов и окном длиной 3, результат будет содержать только 8 элементов. Первый элемент потребовал бы вычисления функции над индексами [0, 1, 2] и, следовательно, отбрасывается. Последний элемент потребовал бы вычисления функции над индексами [9, 10, 11] и, следовательно, отбрасывается.

"fill"

Любые элементы окна за пределами массива данных заменяются на NaN. Например, с окном длиной 3, y(1) = min ([NaN, x(1:2)]), и y(end) = min ([x(end-1:end), NaN]). Эта опция обычно приводит к тому, что y имеет NaN значения на границах, хотя это зависит от того, как min обрабатывает NaN, а также от свойства "nancond".

user_value

Любые элементы окна за пределами массива данных заменяются указанным значением user_value, которое должно быть числовым скаляром. Например, с окном длиной 3, y(1) = min ([user_value, x(1:2)]), и y(end) = min ([x(end-1:end), user_value]). Часто используется значение 0 для user_value.

"same"

Любые элементы окна за пределами массива данных заменяются значением x на границе. Например, с окном длиной 3, y(1) = min ([x(1), x(1:2)]), и y(end) = min ([x(end-1:end), x(end)]).

"periodic"

Окно скручивается так, что любые отсутствующие элементы данных берутся с другой стороны данных. Например, с окном длиной 3, y(1) = min ([x(end), x(1:2)]), и y(end) = min ([x(end-1:end), x(1)]).

"SamplePoints"

Внимание: Эта опция пока не реализована.

Примечание для программистов: Эта функция является оболочкой, которая вызывает movfun. Для дополнительных опций и документации см. movfun.

См. также: movfun, movslice, movmad, movmax, movmean, movmedian, movprod, movstd, movsum, movvar.

: y = movprod (x, wlen) ¶
: y = movprod (x, [nb, na]) ¶
: y = movprod (…, dim) ¶
: y = movprod (…, "nancond") ¶
: y = movprod (…, property, value) ¶

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

Если wlen является скаляром, функция movprod применяется к скользящему окну длины wlen. Когда wlen является нечётным числом, окно симметричное и включает (wlen - 1) / 2 элементов по обе стороны от центрального элемента. Например, при вычислении выходного значения в индексе 5 с длиной окна 3, movprod использует элементы данных [4, 5, 6]. Если wlen является чётным числом, окно асимметричное и содержит wlen/2 элементов слева от центрального элемента и wlen/2 - 1 элементов справа от центрального элемента. Например, при вычислении выходного значения в индексе 5 с длиной окна 4, movprod использует элементы данных [3, 4, 5, 6].

Если wlen является массивом с двумя элементами [nb, na], функция применяется к скользящему окну -nb:na. Это окно включает nb элементов перед текущим элементом и na элементов после текущего элемента. Текущий элемент всегда включается. Например, при заданных wlen = [3, 0], данные, используемые для вычисления индекса 5, это [2, 3, 4, 5].

Если необязательный аргумент dim задан, операция выполняется по этой размерности.

Необязательный строковый аргумент "nancond" управляет тем, включаются ли NaN и NA значения ("includenan") или исключаются ("omitnan") из данных, передаваемых в movprod. По умолчанию значение "includenan". Внимание: опция "omitnan" ещё не реализована.

Вычисление можно контролировать, задав пары property/value. Допустимые свойства:

"Endpoints"

Это свойство управляет тем, как результаты вычисляются на границах (концах) окна. Возможные значения:

"shrink" (по умолчанию)

Окно усекается в начале и в конце массива, чтобы исключить элементы, для которых нет исходных данных. Например, с окном длиной 3, y(1) = movprod (x(1:2)), и y(end) = movprod (x(end-1:end)).

"discard"

Любые значения y, использующие окно, выходящее за пределы исходного массива данных, удаляются. Например, с вектором данных из 10 элементов и окном длиной 3, выходной массив будет содержать только 8 элементов. Первый элемент потребует вычисления функции над индексами [0, 1, 2] и, следовательно, будет отброшен. Последний элемент потребует вычисления функции над индексами [9, 10, 11] и, следовательно, будет отброшен.

"fill"

Любые элементы окна вне массива данных заменяются значением NaN. Например, с окном длиной 3, y(1) = movprod ([NaN, x(1:2)]), и y(end) = movprod ([x(end-1:end), NaN]). Эта опция обычно приводит к тому, что y имеет NaN значения на границах, хотя это зависит от того, как movprod обрабатывает NaN, а также от свойства "nancond".

user_value

Любые элементы окна вне массива данных заменяются указанным значением user_value, которое должно быть скалярным числовым значением. Например, с окном длиной 3, y(1) = movprod ([user_value, x(1:2)]), и y(end) = movprod ([x(end-1:end), user_value]). Часто для user_value выбирают 0.

"same"

Любые элементы окна вне массива данных заменяются значением x на границе. Например, с окном длиной 3, y(1) = movprod ([x(1), x(1:2)]), и y(end) = movprod ([x(end-1:end), x(end)]).

"periodic"

Окно закругляется так, что любые отсутствующие элементы данных берутся с другой стороны данных. Например, с окном длиной 3, y(1) = movprod ([x(end), x(1:2)]), и y(end) = movprod ([x(end-1:end), x(1)]).

"SamplePoints"

Внимание: эта опция ещё не реализована.

Примечание для программистов: Эта функция является оболочкой, которая вызывает movfun. Дополнительные опции и документация находятся по адресу movfun.

См. также: movfun, movslice, movmad, movmax, movmean, movmedian, movmin, movstd, movsum, movvar.

: y = movstd (x, wlen) ¶
: y = movstd (x, [nb, na]) ¶
: y = movstd (…, opt) ¶
: y = movstd (…, opt, dim) ¶
: y = movstd (…, "nancond") ¶
: y = movstd (…, property, value) ¶

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

Если wlen — скаляр, функция movstd применяется к скользящему окну длиной wlen. Когда wlen является нечётным числом, окно является симметричным и включает (wlen - 1) / 2 элементов по обе стороны от центрального элемента. Например, при вычислении результата в индексе 5 с длиной окна 3, movstd использует элементы данных [4, 5, 6]. Если wlen — чётное число, окно является асимметричным и имеет wlen/2 элементов слева от центрального элемента и wlen/2 - 1 элементов справа от центрального элемента. Например, при вычислении результата в индексе 5 с длиной окна 4, movstd использует элементы данных [3, 4, 5, 6].

Если wlen — массив с двумя элементами [nb, na], функция применяется к скользящему окну -nb:na. Это окно включает nb элементов до текущего элемента и na элементов после текущего элемента. Текущий элемент всегда включён. Например, с учётом wlen = [3, 0], данные, используемые для вычисления индекса 5, составляют [2, 3, 4, 5].

Необязательный аргумент opt определяет тип нормализации. Допустимые значения:

0:

нормализация с N-1, предоставляет квадратный корень из наилучшей несмещённой оценки дисперсии [по умолчанию]

1:

нормализация с N, это предоставляет квадратный корень из второй центральной моменты вокруг среднего

Если необязательный аргумент dim задан, выполняется операция по этой размерности. Аргумент нормализации opt должен быть задан перед размерностью.

Необязательный строковый аргумент "nancond" управляет тем, включаются ли NaN и NA значения ("includenan") или исключаются ("omitnan") из данных, передаваемых в movstd. По умолчанию "includenan". Внимание: опция "omitnan" пока не реализована.

Вычисление можно контролировать, указав пары property/value. Допустимые свойства:

"Endpoints"

Это свойство управляет тем, как результаты рассчитываются на границах (конечных точках) окна. Возможные значения:

"shrink" (по умолчанию)

Окно усекается в начале и в конце массива, чтобы исключить элементы, для которых нет исходных данных. Например, с окном длиной 3, y(1) = movstd (x(1:2)), и y(end) = movstd (x(end-1:end)).

"discard"

Любые значения y, которые используют окно, выходящее за пределы исходного массива данных, удаляются. Например, с 10-элементным вектором данных и окном длиной 3, результат будет содержать только 8 элементов. Первый элемент требовал бы вычисления функции по индексам [0, 1, 2] и, следовательно, отбрасывается. Последний элемент требовал бы вычисления функции по индексам [9, 10, 11] и, следовательно, отбрасывается.

"fill"

Любые элементы окна за пределами массива данных заменяются на NaN. Например, с окном длиной 3, y(1) = movstd ([NaN, x(1:2)]), и y(end) = movstd ([x(end-1:end), NaN]). Эта опция обычно приводит к y содержащему NaN значений на границах, хотя она зависит от того, как movstd обрабатывает NaN, а также от свойства "nancond".

user_value

Любые элементы окна за пределами массива данных заменяются указанным значением user_value, которое должно быть числовым скаляром. Например, с окном длиной 3, y(1) = movstd ([user_value, x(1:2)]), и y(end) = movstd ([x(end-1:end), user_value]). Распространённым выбором для user_value является 0.

"same"

Любые элементы окна за пределами массива данных заменяются значением x на границе. Например, с окном длиной 3, y(1) = movstd ([x(1), x(1:2)]), и y(end) = movstd ([x(end-1:end), x(end)]).

"periodic"

Окно оборачивается, так что любые недостающие элементы данных берутся с другой стороны данных. Например, с окном длиной 3, y(1) = movstd ([x(end), x(1:2)]), и y(end) = movstd ([x(end-1:end), x(1)]).

"SamplePoints"

Внимание: эта опция пока не реализована.

Примечание по программированию: Эта функция является обёрткой, которая вызывает movfun. Дополнительные опции и документацию см. в movfun.

См. также: movfun, movslice, movmad, movmax, movmean, movmedian, movmin, movprod, movsum, movvar.

: y = movsum (x, wlen) ¶
: y = movsum (x, [nb, na]) ¶
: y = movsum (…, dim) ¶
: y = movsum (…, "nancond") ¶
: y = movsum (…, property, value) ¶

Вычислите скользящую сумму по скользящему окну длиной wlen для данных x.

Если wlen является скаляром, функция movsum применяется к скользящему окну длиной wlen. Когда wlen является нечетным числом, окно симметрично и включает (wlen - 1) / 2 элементов по обе стороны от центрального элемента. Например, при вычислении выходного значения в индексе 5 с длиной окна 3, movsum использует элементы данных [4, 5, 6]. Если wlen является четным числом, окно является асимметричным и имеет wlen/2 элементов слева от центрального элемента и wlen/2 - 1 элементов справа от центрального элемента. Например, при вычислении выходного значения в индексе 5 с длиной окна 4, movsum использует элементы данных [3, 4, 5, 6].

Если wlen является массивом с двумя элементами [nb, na], функция применяется к скользящему окну -nb:na. Это окно включает nb элементов перед текущим элементом и na элементов после текущего элемента. Текущий элемент всегда включается. Например, учитывая wlen = [3, 0], данные, используемые для вычисления индекса 5, это [2, 3, 4, 5].

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

Необязательный строковый аргумент "nancond" управляет тем, включать ли NaN и NA значения ("includenan") или исключать ("omitnan") их из данных, переданных movsum. По умолчанию значение "includenan". Предупреждение: опция "omitnan" еще не реализована.

Вычисление можно контролировать, указав пары property/value. Допустимые свойства:

"Endpoints"

Это свойство определяет, как рассчитываются результаты на границах (краях) окна. Возможные значения:

"shrink" (по умолчанию)

Окно обрезается в начале и конце массива, чтобы исключить элементы, для которых нет исходных данных. Например, с окном длиной 3, y(1) = movsum (x(1:2)), и y(end) = movsum (x(end-1:end)).

"discard"

Любые значения y, которые используют окно, выходящее за пределы исходного массива данных, удаляются. Например, с вектором данных из 10 элементов и окном длиной 3, выходной вектор будет содержать только 8 элементов. Первый элемент потребует вычисления функции для индексов [0, 1, 2] и поэтому будет отброшен. Последний элемент потребует вычисления функции для индексов [9, 10, 11] и поэтому будет отброшен.

"fill"

Любые элементы окна вне массива данных заменяются на NaN. Например, с окном длиной 3, y(1) = movsum ([NaN, x(1:2)]), и y(end) = movsum ([x(end-1:end), NaN]). Эта опция обычно приводит к тому, что у y будут NaN значения на границах, хотя это зависит от того, как movsum обрабатывает NaN, а также от свойства "nancond".

user_value

Любые элементы окна вне массива данных заменяются заданным значением user_value, которое должно быть численным скаляром. Например, с окном длиной 3, y(1) = movsum ([user_value, x(1:2)]), и y(end) = movsum ([x(end-1:end), user_value]). Распространенным выбором для user_value является 0.

"same"

Любые элементы окна вне массива данных заменяются значением x на границе. Например, с окном длиной 3, y(1) = movsum ([x(1), x(1:2)]), и y(end) = movsum ([x(end-1:end), x(end)]).

"periodic"

Окно "заворачивается", так что любые отсутствующие элементы данных берутся с другой стороны данных. Например, с окном длиной 3, y(1) = movsum ([x(end), x(1:2)]), и y(end) = movsum ([x(end-1:end), x(1)]).

"SamplePoints"

Предупреждение: Эта опция еще не реализована.

Примечание по программированию: Эта функция является оболочкой, которая вызывает movfun. Дополнительные параметры и документацию см. в movfun.

См. также: movfun, movslice, movmad, movmax, movmean, movmedian, movmin, movprod, movstd, movvar.

: y = movvar (x, wlen) ¶
: y = movvar (x, [nb, na]) ¶
: y = movvar (…, opt) ¶
: y = movvar (…, opt, dim) ¶
: y = movvar (…, "nancond") ¶
: y = movvar (…, property, value) ¶

Вычислите скользящую дисперсию на данных x с длиной скользящего окна wlen.

Если wlen является скалярным значением, функция var применяется к скользящему окну длины wlen. Когда wlen нечётное число, окно симметричное и включает (wlen - 1) / 2 элементов по обе стороны от центрального элемента. Например, при вычислении выходного значения в индексе 5 с длиной окна 3, movvar использует элементы данных [4, 5, 6]. Если wlen чётное число, окно несимметричное и содержит wlen/2 элементов слева от центрального элемента и wlen/2 - 1 элементов справа от центрального элемента. Например, при вычислении выходного значения в индексе 5 с длиной окна 4, movvar использует элементы данных [3, 4, 5, 6].

Если wlen является массивом с двумя элементами [nb, na], функция применяется к скользящему окну -nb:na. Это окно включает nb элементов до текущего элемента и na элементов после текущего элемента. Текущий элемент всегда включается. Например, при условии wlen = [3, 0], данные, используемые для вычисления индекса 5, являются [2, 3, 4, 5].

Необязательный аргумент opt определяет тип нормализации. Допустимые значения:

0:

нормализуется с N-1, обеспечивает лучший несмещённый оценщик дисперсии [по умолчанию]

1:

нормализуется с N, это обеспечивает второй момент относительно среднего значения

Если необязательный аргумент dim задан, выполняется операция по этой размерности. Аргумент нормализации opt должен быть задан перед размерностью.

Необязательный строковый аргумент "nancond" управляет включением ("includenan") или исключением ("omitnan") значений NaN и NA из данных, передаваемых в var. По умолчанию "includenan". Внимание: опция "omitnan" ещё не реализована.

Вычисление может контролироваться путём задания пар property/value. Допустимые свойства:

"Endpoints"

Это свойство управляет тем, как вычисляются результаты на границах окна. Возможные значения:

"shrink" (по умолчанию)

Окно усекается в начале и в конце массива, чтобы исключить элементы, для которых нет исходных данных. Например, с окном длины 3, y(1) = var (x(1:2)), и y(end) = var (x(end-1:end)).

"discard"

Любые значения y, использующие окно, выходящее за пределы исходного массива данных, удаляются. Например, с вектором данных из 10 элементов и окном длины 3, выходной массив будет содержать только 8 элементов. Первый элемент потребует вычисления функции над индексами [0, 1, 2] и поэтому отбрасывается. Последний элемент потребует вычисления функции над индексами [9, 10, 11] и поэтому отбрасывается.

"fill"

Любые элементы окна вне массива данных заменяются на NaN. Например, с окном длины 3, y(1) = var ([NaN, x(1:2)]), и y(end) = var ([x(end-1:end), NaN]). Этот вариант обычно приводит к y с NaN значениями на границах, хотя он зависит от того, как var обрабатывает NaN, а также от свойства "nancond".

user_value

Любые элементы окна вне массива данных заменяются заданным значением user_value, которое должно быть числовым скаляром. Например, с окном длины 3, y(1) = var ([user_value, x(1:2)]), и y(end) = var ([x(end-1:end), user_value]). Распространённый выбор для user_value - 0.

"same"

Любые элементы окна вне массива данных заменяются значением x на границе. Например, с окном длины 3, y(1) = var ([x(1), x(1:2)]), и y(end) = var ([x(end-1:end), x(end)]).

"periodic"

Окно закругляется, так что любые недостающие элементы данных берутся с другой стороны данных. Например, с окном длины 3, y(1) = var ([x(end), x(1:2)]), и y(end) = var ([x(end-1:end), x(1)]).

"SamplePoints"

Внимание: эта опция ещё не реализована.

Примечание для программистов: Эта функция является обёрткой, которая вызывает movfun. Дополнительные параметры и документацию см. в movfun.

См. также: movfun, movslice, movmad, movmax, movmean, movmedian, movmin, movprod, movstd, movsum.

© 1996–2023 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v8.1.0/Statistics-on-Sliding-Windows-of-Data.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API