计算完整数据集的子部分(即滑窗)的描述性统计数据通常很有用。Octave提供函数movfun
,它将调用具有数据滑窗的任意函数句柄并累积结果。许多最常用的函数,例如数据滑窗上的移动平均值(movmean
),已经提供。
y =
movfun (fcn, x, wlen)
¶y =
movfun (fcn, x, [nb, na])
¶y =
movfun (…, "property", value)
¶应用函数fcn到一个移动的滑窗的长度wlen关于数据x.
滑窗的大小wlen可以是数字标量或2元素数字矢量 [nb, na]
.
包含在滑窗中的元素取决于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_dims是
prod (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])
。此参数通常会导致y有NaN
边界处的值,尽管它受到fcn句柄NaN
,以及属性"nancond"
.
数据数组之外的任何滑窗元素都被指定的值替换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"
控制NaN
和NA
值如何影响输出movfun。
"includenan"
(默认)的值导致NaN
和NA
值包含在移动滑窗中,并且包含NaN
或NA
值的任何滑窗切片将返回该元素的NaN
。值"omitnan"
导致"movfun"
忽略任何NaN
或NA
值,从而减少用于计算该滑窗切片结果的元素数量。如果指定了"omitnan"
,并且滑窗切片包含所有NaN
或NA
值,"movfun"
将为该元素返回属性"nanval"
指定的值。值"includemissing"
和"omitmissing"
可以分别与"includenan"
和"omitnan"
同义使用。
"nanval"
指定当"nancond"
设置为"omitnan"
或"omitmissing"
且滑窗中的所有元素均为NaN
或NA
时要返回的值。"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
输出的形状和内容将不同。
滑窗大小和包含的元素的定义如下:
1:N
(或未指定):
(wlen - 1) / 2
元素。例如,滑窗长度为3时索引5处的滑窗切片将包括元素[4, 5, 6]
。
wlen/2
个元素,中央元素右侧有wlen/2 - 1
个元素。例如,滑窗长度为4时索引5处的滑窗切片将包括元素[3, 4, 5, 6]
。
[nb, na]
,其中nb和na是整数值,滑窗包括中央元素左侧的nb个元素和中央元素右侧的na个元素。例如,给定wlen = [3, 1]
,索引5处的滑窗切片将包括元素[2, 3, 4, 5, 6]
。
wlen = 2.5
将包括元素[3, 4, 5, 6, 7]
.
wlen = fix (wlen)
然后按上述整数值向量处理。例如,在索引5处的滑窗切片,wlen = [1.2, 2.3]
将包括元素[4, 5, 6, 7]
.
[nb, na]
的向量wlen,滑窗将包括中央元素位置前后nb和na个点,其中点的位置由samplepoints的元素定义。例如,在索引5处,wlen = [2, 3]
和samplepoints的第3-8个元素为[1, 3, 5, 7, 8 ,9]
,滑窗切片将包括元素[4, 5, 6, 7]
对应于samplepoints [3, 5, 7, 8]
。
[nb, na)
. 例如,在索引5处,wlen = 2
和samplepoints的第3-8个元素为[1, 3, 5, 7, 8 ,9]
,滑窗切片将包括元素[4, 5, 6]
对应于samplepoints [3, 5, 7]
。
slcidx的输出是一个矢量的下标的矩阵。
fix (wlen)
个元素,对于数组值wlen,切片将具有nb + na + 1
个元素。
可选的输出C是一个包含向量元素的行矢量,在这些元素处滑窗完全位于该向量内。
可选的输出Cpre和Cpost分别在向量的开始和结束处包含向量元素,这些元素导致滑窗扩展到向量的结束之外。
可选的输出win包含用于创建移动滑窗的信息。
可选的输出wlen返回用于movslice
的滑窗长度,以两元素[nb, na]
形式。
可选的逻辑输出scalar_wlen返回输入wlen的标量或矢量状态,以便调用函数可以确定移动滑窗是否应该包含还是排除右端点。即,对于向量wlen包含[nb, na]
或对于标量wlen排除[nb, na)
。
详见: movfun.
y =
movmad (x, wlen)
¶y =
movmad (x, [nb, na])
¶y =
movmad (…, dim)
¶y =
movmad (…, nancond)
¶y =
movmad (…, property, value)
¶计算在数据x上长度为wlen的滑窗上的移动中位数或平均绝对偏差。
滑窗的大小wlen可以是数字标量或2元素数字矢量 [nb, na]
.
包含在滑窗中的元素取决于wlen的大小和值,以及是否指定了"SamplePoints"
选项。
有关元素包含的完整信息,详见movslice
。
如果可选参数dim给定,沿此维度操作。
可选参数nancond是一个字符串,用于控制NaN
和NA
值如何影响"movmad"
的输出。
"includenan"
的值导致在滑窗中包括NaN
和NA
值,并且包含NaN
或NA
值的任何滑窗切片将返回该元素的NaN
。值
"omitnan"
(默认) 导致"movmad"
忽略任何NaN
或NA
值,从而减少用于计算该滑窗切片结果的元素数量。如果指定了
"omitnan"
并且滑窗切片包含所有NaN
或NA
值,"movmad"
将为该元素返回NaN
。
"includemissing"
和"omitmissing"
的值可以和
"includenan"
和"omitnan"
各自同义使用。
可以通过指定来控制计算键/值对:
"method"
属性可以取"median"
(默认) 或"mean"
的值,以控制
"movmad"
是在数据上执行中位数还是平均绝对偏差计算。
"Window"
和"Endpoints"
。对于这些属性和有效选项的完整描述,详见
movfun
。
编程注意:此函数是一个包装器,它调用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元素数字矢量 [nb, na]
.
包含在滑窗中的元素取决于wlen的大小和值,以及是否指定了"SamplePoints"
选项。
有关元素包含的完整信息,详见movslice
。
如果可选参数dim给定,沿此维度操作。
可选参数nancond是一个字符串,用于控制NaN
和NA
值如何影响"movmax"
的输出。
"includenan"
的值导致在滑窗中包括NaN
和NA
值,
并且包含NaN
或NA
值的任何滑窗切片将对该元素返回NaN
。
值"omitnan"
(默认) 导致"movmax"
忽略任何NaN
或NA
值,
导致更少的元素被用来计算该滑窗切片的最大值。如果指定了"omitnan"
并且滑窗切片包含所有NaN
或NA
值,
"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元素数字矢量 [nb, na]
.
包含在滑窗中的元素取决于wlen的大小和值,以及是否指定了"SamplePoints"
选项。
有关元素包含的完整信息,详见movslice
。
如果可选参数dim给定,沿此维度操作。
可选参数nancond是一个字符串,用于控制NaN
和NA
值如何影响"movmean"
的输出。
"includenan"
的值导致在滑窗中包括NaN
和NA
值,并且包含NaN
或NA
值的任何滑窗切片将返回该元素的NaN
。值
"omitnan"
(默认) 导致"movmean"
忽略任何NaN
或NA
值,从而减少用于计算该滑窗切片结果的元素数量。如果指定了
"omitnan"
并且滑窗切片包含所有NaN
或NA
值,"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元素数字矢量[nb, na]
.
包含在滑窗中的元素取决于wlen的大小和值,以及是否指定了"SamplePoints"
选项。
有关元素包含的完整信息,详见movslice
。
如果可选参数dim给定,沿此维度操作。
可选参数nancond是一个字符串,用于控制NaN
和NA
值如何影响"movmedian"
的输出。
"includenan"
的值导致在滑窗中包括NaN
和NA
值,并且包含NaN
或NA
值的任何滑窗切片将返回该元素的NaN
。值
"omitnan"
(默认) 导致"movmedian"
忽略任何NaN
或NA
值,从而减少用于计算该滑窗切片结果的元素数量。如果指定了
"omitnan"
并且滑窗切片包含所有NaN
或NA
值,"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元素数字矢量 [nb, na]
.
包含在滑窗中的元素取决于wlen的大小和值,以及是否指定了"SamplePoints"
选项。
有关元素包含的完整信息,详见movslice
。
如果可选参数dim给定,沿此维度操作。
可选参数nancond是一个字符串,用于控制NaN
和NA
值如何影响"movmin"
的输出。
"includenan"
的值导致在滑窗中包括NaN
和NA
值,并且包含NaN
或NA
值的任何滑窗切片将返回该元素的NaN
。值
"omitnan"
(默认) 导致"movmin"
忽略任何NaN
或NA
值,从而减少用于计算该滑窗切片结果的元素数量。如果指定了
"omitnan"
并且滑窗切片包含所有NaN
或NA
值,"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元素数字矢量 [nb, na]
.
包含在滑窗中的元素取决于wlen的大小和值,以及是否指定了"SamplePoints"
选项。
有关元素包含的完整信息,详见movslice
。
如果可选参数dim给定,沿此维度操作。
可选参数nancond是一个字符串,用于控制NaN
和NA
值如何影响"movprod"
的输出。
"includenan"
的值导致在滑窗中包括NaN
和NA
值,并且包含NaN
或NA
值的任何滑窗切片将返回该元素的NaN
。值
"omitnan"
(默认) 导致"movprod"
忽略任何NaN
或NA
值,从而减少用于计算该滑窗切片结果的元素数量。如果指定了
"omitnan"
并且滑窗切片包含所有NaN
或NA
值,"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元素数字矢量 [nb, na]
.
包含在滑窗中的元素取决于wlen的大小和值,以及是否指定了"SamplePoints"
选项。
有关元素包含的完整信息,详见movslice
。
可选参数opt确定要使用的规范化类型。有效值为
规范化为N-1,提供方差的最佳解算器的平方根[默认值]
规范化为N,这提供了二阶矩在平均值附近的平方根
如果可选参数dim给定,沿此维度操作。规范化参数opt必须在维度之前给定。
要使用 opt 的默认值,你可以传入空的
参数 []
.
可选参数nancond是一个字符串,用于控制NaN
和NA
值如何影响"movstd"
的输出。
"includenan"
的值导致在滑窗中包括NaN
和NA
值,并且包含NaN
或NA
值的任何滑窗切片将返回该元素的NaN
。值
"omitnan"
(默认) 导致"movstd"
忽略任何NaN
或NA
值,从而减少用于计算该滑窗切片结果的元素数量。如果指定了
"omitnan"
并且滑窗切片包含所有NaN
或NA
值,"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元素数字矢量 [nb, na]
.
包含在滑窗中的元素取决于wlen的大小和值,以及是否指定了"SamplePoints"
选项。
有关元素包含的完整信息,详见movslice
。
如果可选参数dim给定,沿此维度操作。
可选参数nancond是一个字符串,用于控制NaN
和NA
值如何影响"movsum"
的输出。
"includenan"
的值导致在滑窗中包括NaN
和NA
值,并且包含NaN
或NA
值的任何滑窗切片将返回该元素的NaN
。值
"omitnan"
(默认) 导致"movsum"
忽略任何NaN
或NA
值,从而减少用于计算该滑窗切片结果的元素数量。如果指定了
"omitnan"
并且滑窗切片包含所有NaN
或NA
值,"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元素数字矢量 [nb, na]
.
包含在滑窗中的元素取决于wlen的大小和值,以及是否指定了"SamplePoints"
选项。
有关元素包含的完整信息,详见movslice
。
可选参数opt确定要使用的规范化类型。有效值为:
规范化为N-1,提供了方差的最佳无偏估计量[默认值]
规范化为N,这提供了围绕平均值的第二个矩
如果可选参数dim给定,沿此维度操作。规范化参数opt必须在维度之前给定。
要使用 opt 的默认值,你可以传入空的
参数 []
.
可选参数nancond是一个字符串,用于控制NaN
和NA
值如何影响"movvar"
的输出。
"includenan"
的值导致在滑窗中包括NaN
和NA
值,并且包含NaN
或NA
值的任何滑窗切片将返回该元素的NaN
。值
"omitnan"
(默认) 导致"movvar"
忽略任何NaN
或NA
值,从而减少用于计算该滑窗切片结果的元素数量。如果指定了
"omitnan"
并且滑窗切片包含所有NaN
或NA
值,"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