26.2数据滑窗统计

计算完整数据集的子部分(即滑窗)的描述性统计数据通常很有用。Octave提供函数movfun,它将调用具有数据滑窗的任意函数句柄并累积结果。许多最常用的函数,例如数据滑窗上的移动平均值(movmean),已经提供。

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

应用函数fcn到一个移动的滑窗的长度wlen关于数据x.

滑窗的大小wlen可以是数字标量或2元素数字矢量 [nbna]. 包含在滑窗中的元素取决于wlen的大小和值,以及是否指定了"SamplePoints"选项。 有关元素包含的完整信息,详见movslice

在计算过程中,数据输入x被变形为二维wlenxN矩阵传入fcn,因此,fcn必须接受数组输入参数,并沿维度1应用计算,即沿数组的列应用计算。

应用于具有n列的数组(可能是多维的)时,fcn可以以两种格式之一返回结果:格式1) 大小为1×n×dim3×…×dimN的数组。这是Octave核心函数的典型输出格式。demo ("movfun", 5)可以作为这种用法的一个用例。格式2) 长度为n * numel_higher_dims的行向量,这里的numel_higher_dimsprod (size (x)(3:end)). fcn 的第i个输入的列 必须在输出的 i:n:(n*numel_higher_dims)索引处找到. 这种格式在将函数连接到数组中或使用nthargout时很有用。类型demo ("movfun", 6)作为这种情况的一个例子。

可以通过指定来控制计算键/值对。有效属性为

"dim"

沿着指定的维度操作,而不是第一个非奇异维度的默认维度。

"SamplePoints"

这个属性指定了数据点x的唯一坐标位置的排序数字矢量。默认值为向量[1 : numel (x)]. 当指定非默认的SamplePoints向量时,滑窗长度wlen是根据SamplePoints位置来测量的,以确定每个滑窗切片中包含哪些点。SamplePoints不需要均匀间隔。这可能导致滑窗切片包含不同数量的点。

广告
"Endpoints"

此属性控制在边界(端点)处计算结果的方式 )窗户的。可能的值为:

"shrink" (default)

滑窗在数组的开始和结束处被截断,以排除没有源数据的元素。例如对于长度为3的滑窗,y(1) = fcn (x(1:2))y(end) = fcn (x(end-1:end)).

广告
"discard"

任何y使用扩展到originaldata数组之外的滑窗的值将被删除。例如,对于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])。此参数通常会导致yNaN边界处的值,尽管它受到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)]).

广告

注意1:对于非均匀SamplePoint间距,"EndPoints"的唯一允许值是"shrink"

注意2:对于某些"Endpoints"选项,边界处的滑窗大小可能与中央部分不同,并且fcn必须在这些情况下可用。

广告
"nancond"

控制NaNNA值如何影响输出movfun"includenan" (默认)的值导致NaNNA值包含在移动滑窗中,并且包含NaNNA值的任何滑窗切片将返回该元素的NaN。值"omitnan"导致"movfun"忽略任何NaNNA值,从而减少用于计算该滑窗切片结果的元素数量。如果指定了"omitnan",并且滑窗切片包含所有NaNNA值,"movfun"将为该元素返回属性"nanval"指定的值。值"includemissing""omitmissing"可以分别与"includenan""omitnan"同义使用。

广告
"nanval"

指定当"nancond"设置为"omitnan""omitmissing"且滑窗中的所有元素均为NaNNA时要返回的值。"nanval"必须是数字标量值或NaN(默认值)。

广告
"outdim"

一个行向量,用于选择计算的哪些维度将出现在输出中y。只有当fcn返回格式为1的N维数组 。默认情况是返回所有输出维度。

广告

编程说明:属性"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 = movslice (N, wlen, samplepoints)
: [slcidx, C, Cpre, Cpost, win, wlen, scalar_wlen] = movslice (…)

创建索引以将长度为N的向量切片为长度为wlen的滑窗。

输入N必须是正整数。

滑窗的大小wlen可以是数字标量或2元素数字矢量. 在滑窗中包含的元素取决于wlen的大小和值,以及是否指定了samplepoints输入。

可选输入samplepoints是一个排序的数字矢量,唯一的N数据点的位置。默认值是向量[1 : N]. 当指定非默认的samplepoints向量时,滑窗长度wlen是根据samplepoints位置来测量的,以确定每个滑窗切片中包含哪些点。需要注意的是,samplepoints不需要均匀间隔,这可能导致滑窗切片包含不同数量的点。正因为如此,如下所述,当使用非默认的samplepoints时,某些movslice输出的形状和内容将不同。

滑窗大小和包含的元素的定义如下:

slcidx的输出是一个矢量的下标的矩阵。

可选的输出C是一个包含向量元素的行矢量,在这些元素处滑窗完全位于该向量内。

可选的输出CpreCpost分别在向量的开始和结束处包含向量元素,这些元素导致滑窗扩展到向量的结束之外。

可选的输出win包含用于创建移动滑窗的信息。

可选的输出wlen返回用于movslice的滑窗长度,以两元素[nbna] 形式。

可选的逻辑输出scalar_wlen返回输入wlen的标量或矢量状态,以便调用函数可以确定移动滑窗是否应该包含还是排除右端点。即,对于向量wlen包含[nbna] 或对于标量wlen排除[nbna) 。

详见: movfun.

广告
 
: y = movmad (x, wlen)
: y = movmad (x, [nb, na])
: y = movmad (…, dim)
: y = movmad (…, nancond)
: y = movmad (…, property, value)

计算在数据x上长度为wlen的滑窗上的移动中位数或平均绝对偏差。

滑窗的大小wlen可以是数字标量或2元素数字矢量 [nbna]. 包含在滑窗中的元素取决于wlen的大小和值,以及是否指定了"SamplePoints"选项。 有关元素包含的完整信息,详见movslice

如果可选参数dim给定,沿此维度操作。

可选参数nancond是一个字符串,用于控制NaNNA值如何影响"movmad"的输出。 "includenan"的值导致在滑窗中包括NaNNA值,并且包含NaNNA值的任何滑窗切片将返回该元素的NaN。值 "omitnan" (默认) 导致"movmad"忽略任何NaNNA值,从而减少用于计算该滑窗切片结果的元素数量。如果指定了 "omitnan"并且滑窗切片包含所有NaNNA值,"movmad"将为该元素返回NaN"includemissing""omitmissing"的值可以和 "includenan""omitnan"各自同义使用。

可以通过指定来控制计算键/值对:

编程注意:此函数是一个包装器,它调用movfun。有关输入和选项的完整文档,详见movfun.

兼容性注意:在Octave 10之前,此函数仅计算平均绝对偏差。为了与MATLAB兼容,默认值已更改为中位数绝对偏差。现在提供"method"属性以访问两种"mad"计算方法。此属性不应期望在Octave代码之外起作用。

详见: mad, 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可以是数字标量或2元素数字矢量 [nbna]. 包含在滑窗中的元素取决于wlen的大小和值,以及是否指定了"SamplePoints"选项。 有关元素包含的完整信息,详见movslice

如果可选参数dim给定,沿此维度操作。

可选参数nancond是一个字符串,用于控制NaNNA值如何影响"movmax"的输出。 "includenan"的值导致在滑窗中包括NaNNA值, 并且包含NaNNA值的任何滑窗切片将对该元素返回NaN。 值"omitnan" (默认) 导致"movmax"忽略任何NaNNA值, 导致更少的元素被用来计算该滑窗切片的最大值。如果指定了"omitnan"并且滑窗切片包含所有NaNNA值, "movmax"将为该元素返回NaN"includemissing""omitmissing"的值可以和 "includenan""omitnan"各自同义使用。

可以通过指定来控制计算键/值对。有效属性为:"Endpoints" and "SamplePoints". 有关输入和选项的完整文档,详见movfun.

编程注意:这里的函数是一个软件包器,它调用movfun。有关输入参数和选项的完整文档,详见movfun.

详见: max, 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)

计算在数据x上长度为wlen的滑窗上的移动平均值。

滑窗的大小wlen可以是数字标量或2元素数字矢量 [nbna]. 包含在滑窗中的元素取决于wlen的大小和值,以及是否指定了"SamplePoints"选项。 有关元素包含的完整信息,详见movslice

如果可选参数dim给定,沿此维度操作。

可选参数nancond是一个字符串,用于控制NaNNA值如何影响"movmean"的输出。 "includenan"的值导致在滑窗中包括NaNNA值,并且包含NaNNA值的任何滑窗切片将返回该元素的NaN。值 "omitnan" (默认) 导致"movmean"忽略任何NaNNA值,从而减少用于计算该滑窗切片结果的元素数量。如果指定了 "omitnan"并且滑窗切片包含所有NaNNA值,"movmean"将为该元素返回NaN"includemissing""omitmissing"的值可以和 "includenan""omitnan"各自同义使用。

可以通过指定来控制计算键/值对。有效属性为 "Endpoints" and "SamplePoints". 有关输入和选项的完整文档,详见movfun.

编程注意:这里的函数是一个软件包器,它调用movfun。有关输入参数和选项的完整文档,详见movfun.

详见: mean, 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)

计算在数据x上长度为wlen的滑窗上的移动中位数。

滑窗的大小wlen可以是数字标量或2元素数字矢量[nbna]. 包含在滑窗中的元素取决于wlen的大小和值,以及是否指定了"SamplePoints"选项。 有关元素包含的完整信息,详见movslice

如果可选参数dim给定,沿此维度操作。

可选参数nancond是一个字符串,用于控制NaNNA值如何影响"movmedian"的输出。 "includenan"的值导致在滑窗中包括NaNNA值,并且包含NaNNA值的任何滑窗切片将返回该元素的NaN。值 "omitnan" (默认) 导致"movmedian"忽略任何NaNNA值,从而减少用于计算该滑窗切片结果的元素数量。如果指定了 "omitnan"并且滑窗切片包含所有NaNNA值,"movmedian"将为该元素返回NaN"includemissing""omitmissing"的值可以和 "includenan""omitnan"各自同义使用。

可以通过指定来控制计算键/值对。有效属性为"Endpoints" and "SamplePoints". 有关输入和选项的完整文档,详见movfun.

编程注意:这里的函数是一个软件包器,它调用movfun。 有关输入参数和选项的完整文档,详见movfun.

详见: median, 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)

计算在数据x上长度为wlen的滑窗上的移动最小值。

滑窗的大小wlen可以是数字标量或2元素数字矢量 [nbna]. 包含在滑窗中的元素取决于wlen的大小和值,以及是否指定了"SamplePoints"选项。 有关元素包含的完整信息,详见movslice

如果可选参数dim给定,沿此维度操作。

可选参数nancond是一个字符串,用于控制NaNNA值如何影响"movmin"的输出。 "includenan"的值导致在滑窗中包括NaNNA值,并且包含NaNNA值的任何滑窗切片将返回该元素的NaN。值 "omitnan" (默认) 导致"movmin"忽略任何NaNNA值,从而减少用于计算该滑窗切片结果的元素数量。如果指定了 "omitnan"并且滑窗切片包含所有NaNNA值,"movmin"将为该元素返回NaN"includemissing""omitmissing"的值可以和 "includenan""omitnan"各自同义使用。

可以通过指定来控制计算键/值对。有效属性为 "Endpoints" and "SamplePoints". 有关输入和选项的完整文档,详见movfun.

编程注意:这里的函数是一个软件包器,它调用movfun。 有关输入参数和选项的完整文档,详见movfun.

详见: min, 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)

计算在数据x上长度为wlen的滑窗上的移动积。

滑窗的大小wlen可以是数字标量或2元素数字矢量 [nbna]. 包含在滑窗中的元素取决于wlen的大小和值,以及是否指定了"SamplePoints"选项。 有关元素包含的完整信息,详见movslice

如果可选参数dim给定,沿此维度操作。

可选参数nancond是一个字符串,用于控制NaNNA值如何影响"movprod"的输出。 "includenan"的值导致在滑窗中包括NaNNA值,并且包含NaNNA值的任何滑窗切片将返回该元素的NaN。值 "omitnan" (默认) 导致"movprod"忽略任何NaNNA值,从而减少用于计算该滑窗切片结果的元素数量。如果指定了 "omitnan"并且滑窗切片包含所有NaNNA值,"movprod"将为该元素返回NaN"includemissing""omitmissing"的值可以和 "includenan""omitnan"各自同义使用。

可以通过指定来控制计算键/值对。有效属性为 "Endpoints" and "SamplePoints". 有关输入和选项的完整文档,详见movfun.

编程注意:这里的函数是一个软件包器,它调用movfun。 有关输入参数和选项的完整文档,详见movfun.

详见: prod, 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)

计算在数据x上长度为wlen的滑窗上的移动标准差。

滑窗的大小wlen可以是数字标量或2元素数字矢量 [nbna]. 包含在滑窗中的元素取决于wlen的大小和值,以及是否指定了"SamplePoints"选项。 有关元素包含的完整信息,详见movslice

可选参数opt确定要使用的规范化类型。有效值为

0:

规范化为N-1,提供方差的最佳解算器的平方根[默认值]

广告
1:

规范化为N,这提供了二阶矩在平均值附近的平方根

广告

如果可选参数dim给定,沿此维度操作。规范化参数opt必须在维度之前给定。 要使用 opt 的默认值,你可以传入空的 参数 [].

可选参数nancond是一个字符串,用于控制NaNNA值如何影响"movstd"的输出。 "includenan"的值导致在滑窗中包括NaNNA值,并且包含NaNNA值的任何滑窗切片将返回该元素的NaN。值 "omitnan" (默认) 导致"movstd"忽略任何NaNNA值,从而减少用于计算该滑窗切片结果的元素数量。如果指定了 "omitnan"并且滑窗切片包含所有NaNNA值,"movstd"将为该元素返回NaN"includemissing""omitmissing"的值可以和 "includenan""omitnan"各自同义使用。

可以通过指定来控制计算键/值对。有效属性为 "Endpoints" and "SamplePoints". 有关输入和选项的完整文档,详见movfun.

编程注意:这里的函数是一个软件包器,它调用movfun。 有关输入参数和选项的完整文档,详见movfun.

详见: std, 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)

计算在数据x上长度为wlen的滑窗上的移动和。

滑窗的大小wlen可以是数字标量或2元素数字矢量 [nbna]. 包含在滑窗中的元素取决于wlen的大小和值,以及是否指定了"SamplePoints"选项。 有关元素包含的完整信息,详见movslice

如果可选参数dim给定,沿此维度操作。

可选参数nancond是一个字符串,用于控制NaNNA值如何影响"movsum"的输出。 "includenan"的值导致在滑窗中包括NaNNA值,并且包含NaNNA值的任何滑窗切片将返回该元素的NaN。值 "omitnan" (默认) 导致"movsum"忽略任何NaNNA值,从而减少用于计算该滑窗切片结果的元素数量。如果指定了 "omitnan"并且滑窗切片包含所有NaNNA值,"movsum"将为该元素返回NaN"includemissing""omitmissing"的值可以和 "includenan""omitnan"各自同义使用。

可以通过指定来控制计算键/值对。有效属性为 "Endpoints" and "SamplePoints". 有关输入和选项的完整文档,详见movfun.

编程注意:这里的函数是一个软件包器,它调用movfun。 有关输入参数和选项的完整文档,详见movfun.

详见: sum, 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可以是数字标量或2元素数字矢量 [nbna]. 包含在滑窗中的元素取决于wlen的大小和值,以及是否指定了"SamplePoints"选项。 有关元素包含的完整信息,详见movslice

可选参数opt确定要使用的规范化类型。有效值为:

0:

规范化为N-1,提供了方差的最佳无偏估计量[默认值]

广告
1:

规范化为N,这提供了围绕平均值的第二个矩

广告

如果可选参数dim给定,沿此维度操作。规范化参数opt必须在维度之前给定。 要使用 opt 的默认值,你可以传入空的 参数 [].

可选参数nancond是一个字符串,用于控制NaNNA值如何影响"movvar"的输出。 "includenan"的值导致在滑窗中包括NaNNA值,并且包含NaNNA值的任何滑窗切片将返回该元素的NaN。值 "omitnan" (默认) 导致"movvar"忽略任何NaNNA值,从而减少用于计算该滑窗切片结果的元素数量。如果指定了 "omitnan"并且滑窗切片包含所有NaNNA值,"movvar"将为该元素返回NaN"includemissing""omitmissing"的值可以和 "includenan""omitnan"各自同义使用。

可以通过指定来控制计算键/值对。有效属性为 "Endpoints" and "SamplePoints". 有关输入和选项的完整文档,详见movfun.

编程注意:这里的函数是一个软件包器,它调用movfun。 有关输入参数和选项的完整文档,详见movfun.

详见: var, movfun, movslice, movmad, movmax, movmean, movmedian, movmin, movprod, movstd, movsum.


版权所有 © 2024-2025 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2