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 =5 × 5逻辑阵列0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 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
矩阵。
对于表或时间表输入数据,昏暗的
不支持,操作将分别沿着每个表或时间表变量进行。
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:TF = islocalmax(A,' minprominent ',2)
SamplePoints
- - - - - -采样点
向量|表变量名|标量|函数处理|表格vartype
下标
样本点,指定为样本点值的向量,如果输入数据是表格,则指定为下表中的选项之一。样本点代表x-数据的坐标轴位置,并且必须排序并包含唯一的元素。采样点不需要均匀采样。向量[1 2 3…]
是默认值。
当输入数据是一个表时,您可以使用以下选项之一将样本点指定为表变量:
表格输入选项 | 描述 | 例子 |
---|---|---|
变量名 | 指定单个表变量名的字符向量或标量字符串 |
|
标量变量索引 | 标量表变量索引 |
|
逻辑向量 | 一个逻辑向量,其每个元素都对应一个表变量,其中 |
|
函数处理 | 接受表变量作为输入并返回逻辑标量的函数句柄 |
|
vartype 下标 |
方法生成的表下标 |
|
请注意
当输入数据为时,不支持此名称-值参数时间表
.时间表使用行时间的向量作为样本点。要使用不同的样本点,必须编辑时间表,使行时间包含所需的样本点。
例子:islocalmax (A ' SamplePoints 0:0.1:10)
例子:islocalmax (T,“SamplePoints”,“Var1”)
DataVariables
- - - - - -表要操作的变量
表变量名|标量|向量|单元阵列|函数处理|表格vartype
下标
表要操作的变量,指定为此表中的选项之一。的DataVariables
值指示要检查输入表中哪些变量的局部极大值。与指定变量关联的数据类型必须是数值或逻辑
.
第一个输出特遣部队
包含假
没有指定的变量DataVariables
除非OutputFormat
是“表格”
.
选项 | 描述 | 例子 |
---|---|---|
变量名 | 指定单个表变量名的字符向量或字符串标量 |
|
变量名的向量 | 字符向量或字符串数组的单元格数组,其中每个元素都是表变量名 |
|
可变指标的标量或向量 | 表变量索引的标量或向量 |
|
逻辑向量 | 一个逻辑向量,其每个元素都对应一个表变量,其中 |
|
函数处理 | 接受表变量作为输入并返回逻辑标量的函数句柄 |
|
vartype 下标 |
方法生成的表下标 |
|
例子:islocalmax(T,' datavvariables ',["Var1" "Var2" "Var4"])
OutputFormat
- - - - - -输出数据类型
“逻辑”
(默认)|“表格”
输出数据类型,指定为以下值之一:
“逻辑”
—对于表或时间表输入数据,返回输出特遣部队
作为一个逻辑数组。“表格”
—对于表输入数据,返回输出特遣部队
作为一个表。对于时间表输入数据,返回输出特遣部队
作为一个时间表。
对于矢量、矩阵或多维数组输入数据,OutputFormat
不支持。
例子: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
,分离值必须有类型持续时间
.
MaxNumExtrema
- - - - - -最大值的最大个数
正整数标量
最大值的最大个数,指定为正整数标量。islocalmax
找到的最大值不超过最突出最大值的指定数目,默认情况下是操作维度的长度。
输出参数
特遣部队
—本地最大值指示灯
向量|矩阵|多维数组|表|时间表
局部极大值指示器,作为向量、矩阵、多维数组、表或时间表返回。
特遣部队
是一样的尺寸吗一个
除非OutputFormat
是“表格”
.的值OutputFormat
是“表格”
,然后特遣部队
只有对应的变量DataVariables
指定。
数据类型:逻辑
P
——突出
向量|矩阵|多维数组|表|时间表
突出,作为向量、矩阵、多维数组、表或时间表返回。
如果
P
是一个向量、矩阵或多维数组,P
是一样的尺寸吗一个
.如果
P
是一张表格或时间表,P
是一样的高度一个
只有对应的变量DataVariables
指定。
如果输入数据有符号或无符号整数类型,则P
无符号整数。
更多关于
局部极大值的突出性
局部极大值(或峰值)的突出程度衡量了该峰值相对于其他峰值的高度和位置的突出程度。
要测量山峰的突出度,首先要从山峰伸出一条水平线。找出这条线在左和右与数据相交的位置,这将是数据的另一个峰值或终点。将这些位置标记为左右间隔的外部端点。接下来,找出两个区间的最低谷。取这两个山谷中较大的那个,测量从那个山谷到峰顶的垂直距离。这个距离就是日珥。
对于一个向量x
,最大的日珥是最多的马克斯(x)分钟(x)
.
扩展功能
高大的数组
使用行数超过内存容量的数组进行计算。
使用注意事项和限制:
不支持高时间表。
的值
ProminenceWindow
名称-值参数。的
MaxNumExtrema
,MinSeparation
,SamplePoints
不支持名称-值参数。的价值
DataVariables
不能是函数句柄。
有关更多信息,请参见高大的数组.
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
必须启用对可变大小数组的支持。
的
ProminenceWindow
而且OutputFormat
不支持名称-值参数。
线程环境
在后台使用MATLAB®运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
这个函数完全支持基于线程的环境。有关更多信息,请参见在线程环境中运行MATLAB函数.
GPU数组
通过使用并行计算工具箱™在图形处理单元(GPU)上运行来加速代码。
该功能完全支持GPU阵列。有关更多信息,请参见在图形处理器上运行MATLAB函数(并行计算工具箱).
版本历史
在R2017b中引入R2022a:返回包含逻辑输出的表或时间表
对于表或时间表输入数据,返回表式输出特遣部队
而不是逻辑数组OutputFormat
的名称-值参数“表格”
.
R2021b:指定样本点作为表变量
方法将样例点指定为表变量SamplePoints
名称-值参数。
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。