n.动,动
的移动中值。
库::`工程师`
语法
函数调用
* [参数:M]=movmedian(___,[参数:nanflag]) -确定是否包括或排除值 南 到阵列 [参数:A]. 例如, movmedian(A,k,"omitnan") 忽略值 南 计算每个中值时。 默认情况下 *movmedian* 包括值 南.
* [参数:M]=movmedian(___,Name,Value) -使用一个或多个名称-值参数为移动中位数设置其他参数。 例如,如果 x 是时间值的向量,则 movmedian(A,k,"SamplePoints",x) 计算相对于时间值的移动中位数 x.
争论
输入参数
# *一个* — 输入数据
+
向量资料 | 矩阵 | 多维数组
Details
输入指定为向量、矩阵或多维数组的数据。
| 数据类型 |
|
# *k* — 窗口长度
+
标量,标量
Details
窗口的长度,设置为标量。 如果 k -一个正整数,居中的中位数包括当前位置的元素及其邻居。
例如, 电影(A,3) 计算局部三点中位数的值数组。
# *[kb kf]*是 方向窗口的长度
+
双元素向量是一个字符串
Details
方向窗口的长度,设为包含两个元素的字符串向量。 如果 kb 和 kf -正整数,计算由 kb+kf+1 的元素。 计算包括在当前位置的元素, kb 到当前位置的元素和 kf 当前位置之后的项目。
例如, movmedian(A,[2 1]) 计算局部四点中位数的值数组。
# *昏暗* — 执行操作所遵循的维度
+
正整数标量
Details
执行操作的维度被指定为正整数标量。 如果未指定维度,则默认使用数组的第一个维度,其大小不等于 1.
论点 昏暗 指定执行函数的维度 *movmedian*,即指定窗口移动的方向。
考虑输入矩阵 A 大小 m 上 n:
* movmedian(A,k,1) 计算移动中位数 k 每列的元素 A 并返回大小的矩阵 m 上 n.
+
* movmedian(A,k,2) 计算移动中位数 k 矩阵每行的元素 A 并返回大小的矩阵 m 上 n.
+
名称-值输入参数
指定格式中的可选参数对 名称,值,在哪里 姓名 -参数的名称,以及 价值 -适当的值。 名称-值参数应该放在其他参数之后,但对的顺序无关紧要。
使用逗号分隔名称和值,以及 姓名 把它放在引号里。
*例子:* M=movmedian(A,k,"端点","填充").
# *端点* — 一种处理端点附近窗口的方法
+
"收缩" (默认情况下)| "丢弃" | "填充" | 标量,标量
Details
处理端点附近窗口的方法,由以下选项之一指定:
| 意义 | 资料描述 |
|---|---|
|
减小输入数据端点附近的窗口大小,以仅包含现有元素。 |
|
如果窗口未完全重叠现有元素,则不显示任何中值。 |
|
将不存在的元素替换为 |
|
用指定的数字或逻辑值替换不存在的元素。 |
例子:
矢量的中心移动中值
Details
计算行向量的三点居中移动中值。 如果数组末尾的窗口中少于三个元素,则计算可用元素的平均值。
import EngeeDSP.Functions: movmedian
A = [4 8 6 -1 -2 -3 -1 3 4 5]
M = movmedian(A,3)
1×10 Matrix{Float64}:
6.0 6.0 6.0 -1.0 -2.0 -2.0 -1.0 3.0 4.0 4.5
矩阵的移动中值
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: movmedian
M = movmedian(A,3,2)
3×3 Matrix{Float64}:
6.0 6.0 7.0
-1.5 -2.0 -2.5
1.0 3.0 3.5