MATLAB Figure のピークの x 座標を取得しようとしています (例を添付)。を使用してきましたがfindpeaks
、線ではなく点をプロットしているという事実が気に入らないようです。
いつも 2 つのピークがあるとは限りません。3つ持つときもあれば、1つ持つときもあります。複数のピークは常に x の範囲の少なくとも 1/4 で区切られ、ピークは常にノイズ レベルの少なくとも 2 倍になります。
これが私が期待するものです:
[pks,locs] = findpeaks(yData,...
'SortStr','descend',...
'MinPeakDistance',floor(range(xData)/4),...
'MinPeakHeight',floor(max(yData)/2)...
)
2 つのピークを取得する代わりに、4 つのすべてが最初のピークの周りにまとめられています。
>> locs
locs =
6774 166785 326792 486799
>> xData(locs)
ans =
-96780.787939025 -96770.1800919265
-96770.8959353367 -96771.6117787468
MinPeakDistance は、データ自体ではなく xData インデックスで動作していると思います。ピークのインデックス間の距離ではなく、ピーク間の距離を使用するにはどうすればよいですか?