Finding coordinates of peaks
Show older comments
Hello,
I have a data file that looks like this: http://imageshack.us/photo/my-images/26/peakds.jpg/ and I would like to return the position of the two highest peaks. Does anyone have any neat ways of doing this?
Thanks,
Answers (1)
Kevin Sharp
on 7 Jun 2012
You need to first perform non-maximal suppression and then sort the remaining data.
Try this ...
x = 1:100;
data= sin(.2*x+1)+sin(.5*x+2)+sin(.7*x+3);
figure;
plot(data,'b-');
hold on;
%non-maximal suppression
data(ordfilt2(data,3,[1 1 1])>data) = 0;
%sort data
[v,i] = sort(data,'descend');
plot(i(1:2),v(1:2),'rx')
Categories
Find more on Descriptive Statistics in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!