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 Comments

Image Analyst
Image Analyst on 12 Jun 2022
Edited: Image Analyst on 12 Jun 2022
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.
N/A
N/A on 13 Jun 2022
@Image Analyst I need to match the peaks from 1st plot with the 2nd plot
N/A
N/A on 13 Jun 2022
@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.

Sign in to comment.

Answers (0)

Asked:

N/A
on 12 Jun 2022

Commented:

on 13 Jun 2022

Community Treasure Hunt

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

Start Hunting!