1

对于一些“大数据”处理。绘制时,我的数据是符号波,但具有随机峰值。(所以想象一下将每个矩阵位置的值与它的位置相对应)

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

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

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

4

2 回答 2

2

如果您有权访问 R2017b 或更高版本,请查看islocalmaxislocalmin函数。

于 2018-11-14T14:27:26.310 回答
2

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事后否定。

于 2018-11-14T16:18:56.123 回答