我使用Matlab的findpeaks
函数在1d数组中查找局部最大值。我的目标是计算最大值的数量,以及我遇到问题的地方。
findpeaks()
太敏感了。例如,试试这个
v=[3.6107,3.6109, 3.6110,3.6110, 3.6108, 3.6107,3.6105, 3.6105, 3.6105,3.6106,3.6108,3.6109,3.6109, 3.6108,3.6105,3.6100,3.6094,3.6087,3.6080, 3.6073, 3.6067, 3.6062,3.6058,3.6053,3.6048,3.6041,3.6032,3.6021,3.6008,3.5993,3.5977, 3.5960,3.5942,3.5925,3.5907,3.5889,3.5869,3.5846,3.5820,3.5789,3.5753];
[maxvals, maxind] = findpeaks(v)
你会得到一些最大值,而这显然只是一个数字神器,而不是实际的最大值。
您如何建议放宽参数,以便我获得更好的结果?
在Matlab 2014 中,有一个MinPeakProminence
参数可以解决这个问题,但它似乎并没有在2013a中发挥作用。有什么想法吗?