islocalmax
寻找局部极大值
描述
例子
向量中的局部极大值
计算并绘制数据向量的局部极大值。
X = 1:100;A = (1-cos(2*pi*0.01*x)).*sin(2*pi*0.15*x);TF = islocalmax(A);情节(x, x (TF), (TF),的r *)
矩阵行中的极大值
创建一个数据矩阵,并计算每一行的局部最大值。
A = 25*diag(ones(5,1)) + rand(5,5);TF = islocalmax(A,2)
TF =5x5逻辑阵列0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0
分离的最大值
计算数据向量相对于该向量中的时间戳的局部极大值t
.使用MinSeparation
参数来计算间隔至少45分钟的最大值。
T = hours(linspace(0,3,15));A = [2 4 6 4 3 7 5 6 5 10 4 -1 -3 -2 0];TF = islocalmax(A,“MinSeparation”分钟(45)“SamplePoints”t);情节(t, t (TF), (TF),的r *)
平坦极大域
指定用于指示连续最大值的方法。
计算包含连续极大值的数据的局部极大值。根据第一次出现的值指示每个平坦区域的最大值。
X = 0:0.1:5;A = min(0.75, sin(pi*x));TF1 = islocalmax(A,“FlatSelection”,“第一”);情节(x, x (TF1), (TF1),的r *)
用所有出现的值指示每个平坦区域的最大值。
TF2 = islocalmax(A,“FlatSelection”,“所有”);情节(x, x (TF2), (TF2),的r *)
著名的最大值
根据它们的突出程度选择最大值。
计算数据向量的局部极大值及其突出值,然后用数据绘制它们。
X = 1:100;A =峰值(100);A = A(50,:);[TF1,P] = islocalmax(A);P (TF1)
ans =1×21.7703 - 3.5548
情节(x, x (TF1), (TF1),的r *)轴紧
通过指定最小突出度要求,只计算数据中最突出的最大值。
TF2 = islocalmax(A,“MinProminence”2);情节(x, x (TF2), (TF2),的r *)轴紧
输入参数
一个
- - - - - -输入数据
向量|矩阵|多维数组|表格|时间表
输入数据,指定为矢量、矩阵、多维数组、表格或时间表。
昏暗的
- - - - - -操作维度
正整数标量
操作维度,指定为正整数标量。如果未指定值,则默认为第一个大小不等于1的数组维数。
考虑一个米
——- - - - - -n
输入矩阵,一个
:
islocalmax (1)
的每一列数据计算局部极大值一个
并返回米
——- - - - - -n
矩阵。islocalmax (2)
的每一行数据计算局部极大值一个
并返回米
——- - - - - -n
矩阵。
对于表格或时间表输入数据,昏暗的
不支持,操作将金宝app分别沿着每个表或时间表变量进行。
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:TF = islocalmax(A,' minhighlight ',2)
SamplePoints
- - - - - -采样点
向量|表变量名|标量|函数处理|表格vartype
下标
样本点,指定为样本点值的向量,如果输入数据是表格,则指定为下表中的选项之一。样本点代表x数据的-轴位置,并且必须排序并包含唯一的元素。采样点不需要均匀采样。向量[1 2 3…]
是默认值。
当输入数据是一个表时,您可以使用以下选项之一将样本点指定为表变量:
表格输入选项 | 描述 | 例子 |
---|---|---|
变量名 | 指定单个表变量名的字符向量或标量字符串 |
|
标量变量索引 | 标量表变量索引 |
|
逻辑向量 | 一种逻辑向量,其每个元素对应于一个表变量,其中 |
|
函数处理 | 接受表变量作为输入并返回逻辑标量(必须为)的函数句柄 |
|
vartype 下标 |
类生成的表下标 |
|
请注意
输入数据为时,不支持此名称-值参数金宝app时间表
.时间表使用行时间向量作为样本点。若要使用不同的抽样点,必须编辑时间表,使行时间包含所需的抽样点。
例子:islocalmax (A ' SamplePoints 0:0.1:10)
例子:islocalmax (T,“SamplePoints”,“Var1”)
DataVariables
- - - - - -要操作的表变量
表变量名|标量|向量|单元阵列|函数处理|表格vartype
下标
要操作的表变量,指定为此表中的选项之一。的DataVariables
Value指示要检查输入表的哪些变量以获得局部最大值。与指定变量关联的数据类型必须是数字或逻辑
.
第一个输出特遣部队
包含假
对于未指定的变量DataVariables
除非OutputFormat
是“表格”
.
选项 | 描述 | 例子 |
---|---|---|
变量名 | 指定单个表变量名的字符向量或字符串标量 |
|
变量名向量 | 字符向量或字符串数组的单元格数组,其中每个元素都是一个表变量名 |
|
变量指标的标量或向量 | 表变量索引的标量或向量 |
|
逻辑向量 | 一种逻辑向量,其每个元素对应于一个表变量,其中 |
|
函数处理 | 接受表变量作为输入并返回逻辑标量的函数句柄 |
|
vartype 下标 |
类生成的表下标 |
|
例子:islocalmax(T,'DataVariables',["Var1" "Var2" "Var4"])
OutputFormat
- - - - - -输出数据类型
“逻辑”
(默认)|“表格”
输出数据类型,指定为以下值之一:
“逻辑”
—对于表格或时间表输入数据,返回输出特遣部队
作为一个逻辑数组。“表格”
—对于表输入数据,返回输出特遣部队
作为一张桌子。对于时间表输入数据,返回输出特遣部队
作为一个时间表。
对于向量、矩阵或多维数组输入数据,OutputFormat
不支持。金宝app
例子:islocalmax (T, OutputFormat”、“表格”)
MinProminence
- - - - - -最低突出
0(默认)|负的标量
最小突出度,指定为非负标量。islocalmax
只返回突出值至少为指定值的局部最大值。
ProminenceWindow
- - - - - -突出的窗口
正整数标量|正整数的两元向量|正持续时间标量|正持续时间的两元向量
突出值窗口,指定为正整数标量、正整数的两个元素向量、正持续时间标量或正持续时间的两个元素向量。该值定义了一个由相邻点组成的窗口,用于计算每个局部最大值的突出值。
当窗口值为正整数标量时k,则该窗口以每个局部最大值和包含为中心k-1
相邻的元素。如果k为偶数时,则窗口以当前元素和以前的元素为中心。如果局部最大值在平坦区域内,则islocalmax
将整个平面区域作为窗口的中心点。
当值为两元素正整数向量时f [b]
,则窗口包含局部最大值,b
元素向后,和f
元素。如果局部最大值位于平坦区域内,则窗口启动b
元素在区域的第一个点和结束点之前f
区域最后一点之后的元素。
当输入的数据是时间表或SamplePoints
指定为datetime
或持续时间
向量,则窗口值必须为类型持续时间
,窗口是相对于样本点计算的。
FlatSelection
- - - - - -平坦区域指示器
“中心”
(默认)|“第一”
|“最后一次”
|“所有”
平坦区域指示器,用于连续重复一个局部最大值,指定为以下值之一:
“中心”
—只将平面区域的中心元素表示为局部最大值。元素特遣部队
平面的中心为1,其余平面元素为0。“第一”
-仅将平坦区域的第一个元素表示为局部最大值。元素特遣部队
对应于平面的开始为1,其余平面元素为0。“最后一次”
—只将平坦区域的最后一个元素作为局部最大值。元素特遣部队
对应于平面的末尾为1,其余平面元素为0。“所有”
-将平面区域的所有元素表示为局部极大值。的要素特遣部队
所对应的各部位均为平1。
当使用MinSeparation
或MaxNumExtrema
名称-值参数,平面区域点被共同视为单个最大值点。
MinSeparation
- - - - - -最小分离
0(默认)|负的标量
局部极大值之间的最小间隔,指定为非负标量。分离值定义为与样本点向量相同的单位,即[1 2 3…]
默认情况下。当分离值大于0时,islocalmax
选择最大的局部极大值,并忽略指定间隔内的所有其他局部极大值。重复这个过程,直到不再检测到更多的局部极大值。
当样本点向量有类型时datetime
,分隔值必须有type持续时间
.
MaxNumExtrema
- - - - - -最大值的最大数目
正整数标量
最大值的最大数目,指定为正整数标量。islocalmax
查找不超过最显著最大值的指定数目,默认情况下这是操作维的长度。
输出参数
特遣部队
—本地极大值指示器
向量|矩阵|多维数组|表|时间表
局部极大值指示器,以矢量、矩阵、多维数组、表或时间表的形式返回。
特遣部队
尺寸和一个
除非OutputFormat
是“表格”
.如果的值OutputFormat
是“表格”
,然后特遣部队
的变量DataVariables
指定。
数据类型:逻辑
P
——突出
向量|矩阵|多维数组|表|时间表
突出,以向量、矩阵、多维数组、表格或时间表的形式返回。
如果
P
是向量、矩阵或多维数组,P
尺寸和一个
.如果
P
是一张表格或时间表,P
和的高度相同吗一个
并且只有对应的变量DataVariables
指定。
如果输入数据有符号或无符号整数类型,则P
是无符号整数。
更多关于
局部极大值突出度
局部极大值(或山峰)的突出程度衡量了山峰相对于其他山峰的高度和位置的突出程度。
要测量山峰的突出程度,首先要从山峰伸出一条水平线。找出这条线与数据的左右交点,这条线要么是数据的另一个峰值,要么是数据的终点。将这些位置标记为左右间隔的外部端点。接下来,找到两个区间中最低的谷值。取这两个山谷中较大的那个,测量从那个山谷到山顶的垂直距离。这个距离就是日珥。
对于一个向量x
时,最大日珥最多马克斯(x)分钟(x)
.
扩展功能
高大的数组
使用行数超过内存容量的数组进行计算。
使用注意事项和限制:
不支持高时间表。金宝app
属性的值
ProminenceWindow
名称-值参数。的
MaxNumExtrema
,MinSeparation
,SamplePoints
不支持名称-值参数。金宝app的价值
DataVariables
不能是函数句柄。
有关更多信息,请参见高大的数组.
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
必须启用对可变大小数组的支持。金宝app
的
ProminenceWindow
而且OutputFormat
不支持名称-值参数。金宝app
线程环境
使用MATLAB®在后台运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
这个函数完全支持基于线程的环境。金宝app有关更多信息,请参见在线程环境中运行MATLAB函数.
GPU数组
通过使用并行计算工具箱™在图形处理单元(GPU)上运行来加速代码。
本功能完全支持GPU阵列。金宝app有关更多信息,请参见在图形处理器上运行MATLAB函数(并行计算工具箱).
版本历史
在R2017b中引入R2022a:返回包含逻辑输出的表或时间表
对于表格或时间表输入数据,返回表格输出特遣部队
属性来代替逻辑数组OutputFormat
参数的名称-值“表格”
.
R2021b:指定样本点作为表变量
属性将样本点指定为表变量SamplePoints
名称-值参数。
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。