# is there's a way to automatically find peaks in an histogram?

120 views (last 30 days)
sani on 28 May 2020
Commented: sani on 30 May 2020
Hello,
I have a script to analyze data from a detector (the data is not necessarily repeated). right now I have to find the peaks manually which is time-consuming!
is there's a way I can get the range of the peak base in the x-axis automatically? and is there's a way to neglect small peaks (let's say small in respect to the ratio from the max peak)?
here is an example of histogram I'm working with
##### 2 CommentsShow 1 older commentHide 1 older comment
sani on 28 May 2020
yes but I couldn't applied it for histogram, just to my original data (and it dosn't relevant)

Steven Lord on 29 May 2020
You can do this using the islocalmax function.
% Sample data
rng default
x = randn(1, 1e5);
h = histogram(x);
% Retrieve some properties from the histogram
V = h.Values;
E = h.BinEdges;
% Use islocalmax
L = islocalmax(V);
% Find the centers of the bins that islocalmax identified as peaks
left = E(L);
right = E([false L]);
center = (left + right)/2;
% Plot markers on those bins
hold on
plot(center, V(L), 'o')
sani on 30 May 2020
thanks a lot Steven! it was really helpful:)

### Categories

Find more on Spectral Measurements 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!