在matlab中找到矩阵中最大值任一侧的局部最小值



用于一些"大数据"处理。当绘制时,我的数据是符号波状的,但具有随机峰值。(想象一下,将每个矩阵位置的值与其位置进行对比(

我知道如何找到峰值,但我需要一种方法来找到峰值两侧的局部极小值和矩阵中的位置。例如,如果数据是:

3 2 1 0 1 2 3 7-4-5-6-5-4 0

我需要的函数会返回如下内容:min,loc=[0,-6;4,11]

如果您有权访问R2017b或更高版本,请检查islocalmax和islocalmin函数。

MATLAB R2007a及更新版本有一个名为findpeaks的函数(需要信号处理工具箱(。您要查找的语法是

[pks,locs] = findpeaks(data)

具体而言,

>> [pks,locs] = findpeaks(-[3 2 1 0 1 2 3 7 -4 -5 -6 -5 -4 0]) % note it's "-[data]"
pks =
0     6
locs =
4    11

减号是因为我们想要的是"谷"而不是"峰",所以请确保之后不要忘记否定pks

相关内容

  • 没有找到相关文章

最新更新