当前位置: 首页 > article >正文

MATLAB中movmax函数用法

目录

语法

说明

示例

向量的中心移动最大值

向量的尾部移动最大值

矩阵的移动最大值

包括缺失值的移动最大值

基于样本点计算移动最大值

仅返回满窗最大值


        movmax函数的功能是求得移动最大值。

语法

M = movmax(A,k)
M = movmax(A,[kb kf])
M = movmax(___,dim)
M = movmax(___,nanflag)
M = movmax(___,Name,Value)

说明

M = movmax(A,k) 返回由局部 k 个数据点范围内的最大值组成的数组,其中每个最大值基于 A 的相邻元素的长度为 k 的滑动窗计算得出。当 k 为奇数时,窗以当前位置的元素为中心。当 k 为偶数时,窗以当前元素及其前一个元素为中心。当没有足够的元素填满窗时,窗将自动在端点处截断。当窗被截断时,只根据窗内的元素计算最大值。M 与 A 的大小相同。

        如果 A 是向量,movmax 将沿向量 A 的长度运算。

        如果 A 是多维数组,则 movmax 沿 A 的大小不等于 1 的第一个维度进行运算。

M = movmax(A,[kb kf]) 通过长度为 kb+kf+1 的窗计算最大值,其中包括当前位置的元素、前面的 kb 个元素和后面的 kf 个元素。

M = movmax(___,dim) 为上述任一语法指定 A 的运算维度。例如,如果 A 是矩阵,则 movmax(A,k,2) 沿 A 的列运算,计算每一行的 k 个元素的移动最大值。

M = movmax(___,nanflag) 指定忽略还是包括 A 中的 NaN 值。例如,movmax(A,k,"includenan") 在计算每个最大值时包括所有 NaN 值。默认情况下,movmax 忽略 NaN 值。

M = movmax(___,Name,Value) 使用一个或多个名称-值参数指定移动最大值的其他参数。例如,如果 x 是时间值向量,则 movmax(A,k,"SamplePoints",x) 相对于 x 中的时间计算移动最大值。

示例

向量的中心移动最大值

        计算行向量的三点中心移动最大值。当端点处的窗中少于三个元素时,将根据可用元素计算最大值。

A = [4 8 6 -1 -2 -3 -1 3 4 5];
M = movmax(A,3)
M = 1×10

     8     8     8     6    -1    -1     3     4     5     5

向量的尾部移动最大值

        计算行向量的三点尾部移动最大值。当端点处的窗中少于三个元素时,movmax 将根据可用元素的数量计算最大值。

A = [4 8 6 -1 -2 -3 -1 3 4 5];
M = movmax(A,[2 0])
M = 1×10

     4     8     8     8     6    -1    -1     3     4     5

矩阵的移动最大值

        计算矩阵中每行的三点中心移动最大值。窗从第一行开始,沿水平方向移动到该行的末尾,然后移到第二行,依此类推。维度参数为 2,即跨A的列移动窗。

A = [4 8 6; -1 -2 -3; -1 3 4]
A = 3×3

     4     8     6
    -1    -2    -3
    -1     3     4

M = movmax(A,3,2)
M = 3×3

     8     8     8
    -1    -1    -2
     3     4     4

包括缺失值的移动最大值

        创建一个包含 NaN 值的行向量。

A = [4 8 NaN -1 -2 -3 NaN 3 4 5];

        计算向量的三点中心移动最大值,包括 NaN 值。对于包含任一 NaN 值的窗,对应的最大值是 NaN。

M = movmax(A,3,"includenan")
M = 1×10

     8   NaN   NaN   NaN    -1   NaN   NaN   NaN     5     5

基于样本点计算移动最大值

        根据时间向量t,计算 A 中数据的 3 小时中心移动最大值。

A = [4 8 6 -1 -2 -3];
k = hours(3);
t = datetime(2016,1,1,0,0,0) + hours(0:5)
t = 1x6 datetime
   01-Jan-2016 00:00:00   01-Jan-2016 01:00:00   01-Jan-2016 02:00:00   01-Jan-2016 03:00:00   01-Jan-2016 04:00:00   01-Jan-2016 05:00:00

M = movmax(A,k,"SamplePoints",t)
M = 1×6

     8     8     8     6    -1    -2

仅返回满窗最大值

        计算行向量的三点中心移动最大值,但在输出中舍弃使用的点数少于三个的计算。也就是说,只返回从满的三元素窗计算的最大值,而舍弃端点计算。

A = [4 8 6 -1 -2 -3 -1 3 4 5];
M = movmax(A,3,"Endpoints","discard")
M = 1×8

     8     8     6    -1    -1     3     4     5

参数说明

A — 输入数组

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

k — 窗长度

        窗长度,指定为数值或持续时间标量。当 k 是正整数标量时,中心最大值包括当前位置的元素以及周围的相邻元素。

        例如,movmax(A,3) 计算一个由局部三点最大值组成的数组。

[kb kf] — 定向窗长度

        定向窗长度,指定为包含两个元素的数值或持续时间行向量。当 kb 和 kf 为正整数标量时,将基于 kb+kf+1 个元素进行计算。该计算包括当前位置的元素、当前位置前面的 kb 个元素以及当前位置后面的 kf 个元素。

        例如,movmax(A,[2 1]) 计算一个由局部四点最大值组成的数组。

如图所示:

dim — 沿其运算的维度

        沿其运算的维度,指定为正整数标量。如果不指定维度,则默认为第一个大于 1 的数组维度。

        维度 dim 表示 movmax 运算所沿的维度,即指定窗的移动方向。

以一个 m×n 输入矩阵 A 为例:

        movmax(A,k,1) 为 A 的每列计算包含 k 个元素的移动最大值,并返回一个 m×n 矩阵。

        movmax(A,k,2) 为 A 的每行计算包含 k 个元素的移动最大值,并返回一个 m×n 矩阵。

nanflag — 缺失值条件

缺失值条件,指定为下列值之一:

  • "omitmissing" 或 "omitnan" - 忽略 A 中的 NaN 值,并基于较少的点计算每个最大值。如果窗中的所有元素都是 NaN,则 M 中的对应元素是 NaN。"omitmissing" 和 "omitnan" 具有相同的行为。

  • "includemissing" 或 "includenan" - 在计算每个最大值时包括 A 中的 NaN 值。如果窗中的任一元素是 NaN,则 M 中的对应元素是 NaN。"includemissing" 和 "includenan" 具有相同的行为。

SamplePoints — 用于计算最大值的样本点

        用于计算最大值的样本点,指定为向量。样本点表示数据在 A 中的位置。样本点不需要均匀采样。默认情况下,样本点向量为 [1 2 3 ... ]。

        移动窗相对于样本点定义,样本点必须已排序并且包含唯一的元素。例如,如果 t 是与输入数据对应的时间向量,则 movmax(rand(1,10),3,"SamplePoints",t) 将有一个代表 t(i)-1.5 和 t(i)+1.5 之间时间间隔的窗。

        当样本点向量的数据类型为 datetime 或 duration 时,移动窗长度的类型必须为 duration。

        如果样本点的间距不均匀并且指定了 Endpoints,则其值必须为 "shrink"。


http://www.kler.cn/a/578160.html

相关文章:

  • 简单的 Python 示例,用于生成电影解说视频的第一人称独白解说文案
  • 通俗易懂的介绍LLM大模型技术常用专业名词(专业版)
  • 【C语言数据结构初阶】---基于单链表在控制台上实现贪吃蛇小游戏
  • go mod文件 项目版本管理
  • 向量内积(点乘)和外积(叉乘)
  • 深入解析:使用 Python 爬虫获取淘宝店铺所有商品接口
  • 支持向量简要理解
  • FOC 控制笔记【二】无感控制、滑膜观测器和PLL
  • WebView2网页封装桌面软件
  • RBAC 权限系统管理模型 学习笔记
  • [排序算法]直接插入排序
  • MPPT与PWM充电原理及区别详解
  • 【每日八股】Golang篇(二):关键字(上)
  • 锂电池组的串数设计研究
  • 手写一个Tomcat
  • 【HarmonyOS Next】鸿蒙应用故障处理思路详解
  • 微服务面试题:服务网关和链路追踪
  • 运行OpenManus项目(使用Conda)
  • 高效运行 QwQ-32B + 错误修复
  • java项目springboot 项目启动不了解决方案