AnyMath 文档

n.动,动

的移动平均线。

库::`工程师`

语法

函数调用

  • [参数:M]=movmean(<参数:A>>,<参数:k>>) -返回本地平均值 [参数:k] 在长度的滑动窗口中计算每个平均值的点 [参数:k],其通过数组的相邻元素移动 [参数:A]. 如果 [参数:k] 奇数,窗口相对于当前位置的元素居中。 如果 [参数:k] 甚至,窗口相对于当前和以前的元素居中。 当没有足够的元素填充窗口时,窗口大小会在端点处自动截断。 当窗口被截断时,仅对填充窗口的元素取平均值。 [参数:M] 大小与 [参数:A].

*如果 [参数:A] -矢量,然后 *movmean 它作用于向量的长度 [参数:A].

*如果 [参数:A] -一个多维数组,然后 *movmean 它在第一个维度上运行 [参数:A],其大小不等于 1.

  • [参数:M]=movmean(___,[参数:nanflag]) -确定是包括还是排除值 到阵列 [参数:A]. 例如, movmean(A,k,"omitnan") 忽略值 时计算各平均值。 默认情况下 movmean 包括值 .

  • [参数:M]=movmean(___,Name,Value) -使用一个或多个参数设置移动平均线的其他参数,如 «名称-值». 例如,如果 x 是时间值的向量,则 movmean(A,k,"SamplePoints",x) 计算相对于时间值的移动平均值 x.

争论

输入参数

# 一个 — 输入数据

+ 向量资料 | 矩阵 | 多维数组

Details

输入指定为向量、矩阵或多维数组的数据。

数据类型

漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, 布尔</无翻译>

# k — 窗口长度

+ 标量,标量

Details

窗口的长度,设置为标量。 如果 k -正整数,居中平均值包括当前位置处的元素及其邻居。

例如, 电影(A,3) 计算局部三点平均值的值数组。

movmean 1

# *[kb kf]*是 方向窗口的长度

+ 双元素向量是一个字符串

Details

方向窗口的长度,设为包含两个元素的字符串向量。 如果 kbkf -正整数,计算由 kb + kf + 1 的元素。 计算包括在当前位置的元素, kb 到当前位置的元素和 kf 当前位置之后的项目。

例如, movmean(A,[2 1]) 计算局部四点平均值的值数组。

movmean 2

# 昏暗 — 执行操作所遵循的维度

+ 正整数标量

Details

执行操作的维度,指定为正整数标量。 如果未指定维度,则默认使用数组的第一个维度,其大小不等于 1.

论点 昏暗 指定执行函数的维度 movmean,即指定窗口移动的方向。

考虑输入矩阵 A 大小 mn:

  • 电影(A,k,1) 计算移动平均线 k 矩阵每列的元素 A 并返回大小的矩阵 mn.

    movmean 3

  • 电影(A,k,2) 计算移动平均线 k 矩阵的每一行的元素 A 并返回大小的矩阵 mn.

    movmean 4

# nanflag — 缺失值的条件

+ "包括" (默认情况下)| "包括" | "省略" | "奥米特南"

Details

处理缺失值的条件,由以下值之一设置:

  • "包括""包括" -启用值 [参数:A] 时计算各平均值。 如果窗口中有任何元素 — ,则相应的元素在 [参数:M]. 价值 "包括""包括" 他们的行为方式相同。

  • "省略""omitnan" -忽略所有值 [参数:A] 并针对更少的点计算每个平均值。 如果所有元素都在窗口中 — ,则相应的元素在 [参数:M]. 价值 "省略""omitnan" 他们的行为方式相同。

输入参数 «名称-值»

指定格式中的可选参数对 名称,值,在哪里 姓名 -参数的名称,以及 价值 -适当的值。 类型参数 «名称-值» 它们应该放在其他参数之后,但对的顺序无关紧要。

使用逗号分隔名称和值,以及 姓名 把它放在引号里。

例子: M=movmean(A,k,"端点","填充")

# 端点 — 一种处理端点附近窗口的方法

+ "收缩" (默认情况下)| "丢弃" | "填充" | 标量,标量

Details

处理端点附近窗口的方法,由以下选项之一指定:

意义 资料描述

"收缩"

减小输入数据端点附近的窗口大小,以仅包含现有元素。

"丢弃"

如果窗口与现有元素不完全重叠,则不显示任何平均值。

"填充"

将不存在的元素替换为 .

标量,标量

用指定的数字或逻辑值替换不存在的元素。

# 采样点 — 计算平均值的采样点

+ 向量资料

Details

用于计算平均值的样本点,设置为向量。 样本点表示数据在 [参数:A]. 样本点不必均匀分布。 默认情况下,样本点的向量具有以下形式 [1 2 3 …​ ].

滑动窗口是相对于采样点定义的,采样点应该被排序并包含唯一的元素。 例如,如果 t 是输入数据对应的时间向量,则 movmean(rand(1,10),3,"SamplePoints",t) 它有一个窗口表示之间的时间间隔 t[i] − 1.5t[i] + 1.5.

如果采样点间距不均匀且设置了参数 [参数:端点],那么它的值应该是 "收缩".

输出参数

# M — 输出数据

+ 向量资料 | 矩阵 | 多维数组

Details

作为向量、矩阵或多维数组返回的输出数据。

例子:

矢量的中心移动平均线

Details

计算行向量的三点居中移动平均值。 如果窗口中端点处的元素少于三个,则取可用元素的平均值。

import EngeeDSP.Functions: movmean

A = [4 8 6 -1 -2 -3 -1 3 4 5]
M = movmean(A, 3)
1×10 Matrix{Float64}:
 6.0  6.0  4.33333  1.0  -2.0  -2.0  -0.333333  2.0  4.0  4.5

矢量的移动平均线

Details

我们来计算行向量的三点移动平均值。 如果窗口中端点处的元素少于三个,则取可用元素的平均值。

import EngeeDSP.Functions: movmean

A = [4 8 6 -1 -2 -3 -1 3 4 5]
M = movmean(A, [2 1])
1×10 Matrix{Float64}:
 6.0  6.0  4.25  2.75  0.0  -1.75  -0.75  0.75  2.75  4.0

矩阵的移动平均线

Details

为矩阵的每一行计算三点居中移动平均值。 窗口从第一行开始,水平滑动到行尾,然后移动到第二行,依此类推。 维度参数是两个,它允许您在矩阵的列中滑动 A.

A = [4 8 6; -1 -2 -3; -1 3 4]
3×3 Matrix{Int64}:
  4   8   6
 -1  -2  -3
 -1   3   4
import EngeeDSP.Functions: movmean

M=movmean(A,3,2)
3×3 Matrix{Float64}:
  6.0   6.0   7.0
 -1.5  -2.0  -2.5
  1.0   2.0   3.5

具有缺失值的向量的移动平均值

Details

让我们计算包含两个元素的行向量的三点居中移动平均线 .

import EngeeDSP.Functions: movmean

A = [4 8 NaN -1 -2 -3 NaN 3 4 5]
M = movmean(A, 3)
1×10 Matrix{Float64}:
 6.0  NaN  NaN  NaN  -2.0  NaN  NaN  NaN  4.0  4.5

重新计算平均值,但排除这些值 . 当功能 movmean 忽略元素 ,它计算窗口中剩余元素的平均值。

M = movmean(A, 3, "omitnan")
1×10 Matrix{Float64}:
 6.0  6.0  3.5  -1.5  -2.0  -2.5  0.0  3.5  4.0  4.5

仅获取整个窗口的平均值

Details

让我们计算行向量的三点居中移动平均值,但丢弃使用来自输出数据的少于三个点的所有计算。 换句话说,我们将只返回为整个三元素窗口计算的平均值,放弃端点处的计算。

import EngeeDSP.Functions: movmean

A = [4 8 6 -1 -2 -3 -1 3 4 5]
M = movmean(A, 3, "Endpoints", "discard")
1×8 Matrix{Float64}:
 6.0  4.33333  1.0  -2.0  -2.0  -0.333333  2.0  4.0

此外

的平均值

Details

对于向量 有限长度,由 对于标量观测值,平均值定义为