How to find first two largest peaks with sample location

50 views (last 30 days)
Please let me know, how to find its two highest peaks along with its samples information too.
P wave.JPG

Accepted Answer

Bhaskar R
Bhaskar R on 6 Feb 2020
d = rand(100,1); % assumed data
[vals,loc] = maxk(d,2); % first two peaks(mnaximum values) sample values and locations
plot(d); hold on; % plot original samples
plot(loc,vals,'rv', 'MarkerFaceColor', 'r'); % plot peak values
  2 Comments
Muhammad Usman Gul
Muhammad Usman Gul on 6 Feb 2020
Your answer is work well iff and only if we are going to find out first-two maximum values. But here I would like to find out the first two largest peaks instead of maximum values. i.e in given figure, first and second peaks at 496 & 916 respectively. However, in your given function '"maxk" it will return 2nd maximum value which is a part of the first peak.
Thanks for your cooperation and I hope you got my point.
Bhaskar R
Bhaskar R on 6 Feb 2020
Yeah, I got you. Use findpeaks to get all peak values of the samples
d = rand(100,1); % assumed data
[vals,locs] = findpeaks(d);
[val,loc] = maxk(vals,2); % first two peaks(mnaximum values) sample values and locations
plot(d); hold on; % plot original samples
plot(locs(loc),val,'rv', 'MarkerFaceColor', 'r'); % plot peak values

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!