我正在尝试获取 MATLAB 图中峰的 x 坐标(附示例)。我一直在使用findpeaks
,但它似乎不喜欢我绘制点而不是线的事实。
我不会总是有两个高峰。有时我会拥有三个,有时我会拥有一个。多个峰将始终被 x 范围的至少 1/4 分开,并且峰将始终至少是噪声水平的两倍。
这是我期望的工作:
[pks,locs] = findpeaks(yData,...
'SortStr','descend',...
'MinPeakDistance',floor(range(xData)/4),...
'MinPeakHeight',floor(max(yData)/2)...
)
我没有得到两个峰值,而是在第一个峰值周围捆绑了四个:
>> locs
locs =
6774 166785 326792 486799
>> xData(locs)
ans =
-96780.787939025 -96770.1800919265
-96770.8959353367 -96771.6117787468
我假设 MinPeakDistance 正在处理 xData 索引而不是数据本身。如何让它使用峰值之间的距离而不是峰值索引之间的距离?