计算完整数据集的子部分(即滑窗)的描述性统计数据通常很有用。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