match peaks from plot

v = hz1.Vdeg;
l = length(v);
t = 1:l(end);
plot(t,v);
[vmax,vindmax]=findpeaks(v,t);
[vmin,vindmin]=findpeaks(-v,t);
hold on
plot(vindmax,vmax,'o','MarkerFaceColor','r','MarkerSize',5);
plot(vindmin,-vmin,'d','MarkerFaceColor','g','MarkerSize',5);
figure
s = hz1.Dmm;
l = length(s);
t = 1:l(end);
plot(t,s);
[smax,sindmax]=findpeaks(s,t);
[smin,sindmin]=findpeaks(-s,t);
hold on
plot(sindmax,smax,'o','MarkerFaceColor','r','MarkerSize',5);
plot(sindmin,-smin,'d','MarkerFaceColor','g','MarkerSize',5);
I have these 2 peaks . how do I match the peaks from these two together ?

5 个评论

What exactly does "match" mean to you? And I see hundreds of peaks, not just two. I see two plots, each one having hundreds of peaks and hundreds of valleys. Please indicate the two peaks you want to "match" and mathematically define "match".
If you have any more questions, then ask them after you read this and clarify your question:
@Jes, look at Find local maxima - MATLAB islocalmax (mathworks.com). If its not available in your version of MATLAB you can eliminate the relatively negative findpeaks you found and thenn do a findpeaks on the reduced findpeaks.
@Image Analyst I need to match the peaks from 1st plot with the 2nd plot
@Jeffrey Clark i couldnt get you clearly. Could you exlain a bit more? did you mean by using islocalmax I could reduce the amount of data?
@Jes, yes. Look at the last figure on that documentation page, I suspect that method will work for you to give a reasonable number of peaks.

请先登录,再进行评论。

回答(0 个)

提问:

N/A
2022-6-12

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by