我有一个包含五个主要峰值的图表。我想找到第一个峰值(最右边的那个)的位置和值。我有 100 多个不同的地块,并且峰值在各个地块中的大小会增大和缩小,并且需要使用 for 循环。我只是坚持使用 Matlab 代码确定大量有效数字的 x 和 y 值。
这是众多情节之一:
我有一个包含五个主要峰值的图表。我想找到第一个峰值(最右边的那个)的位置和值。我有 100 多个不同的地块,并且峰值在各个地块中的大小会增大和缩小,并且需要使用 for 循环。我只是坚持使用 Matlab 代码确定大量有效数字的 x 和 y 值。
这是众多情节之一:
如果你确定你总是会有 5 个峰值,我认为 FileExchange 功能extrema
会很有帮助,请参见此处。
这将按降序返回最大值(如果需要,则返回最小值),因此输出的第一个元素zmax
和imax
分别是最大值及其索引,它们的第二个元素是第二个最大值及其索引,依此类推。
在这种情况下,如果您需要的峰值始终是您只需要的五个峰值中的最小值,则zmax(5)
确定imax(5)
第 5 个最大的最大值。
如果您可以访问 Signal Processing Toolbox,findpeaks
那么您正在寻找的功能。可以使用不同的选项(包括峰值数量)调用它,这在该信息可用时会很有帮助。