how mark the highest maximums of a graph?
8 views (last 30 days)
Show older comments
Victoria Pilar Quesada García
on 10 Mar 2022
Commented: Bjorn Gustavsson
on 10 Mar 2022
hello, I try to mark the highest maximums of a graph that I make using data from an excel. but I can't.
the code i use is this:
% Representación Gráfica
plot(t_al,m_al)
xlabel("tiempo"), ylabel("nivel")
datetick('x',10)
grid on
%findpeaks(select,Fs,'MinPeakDistance',0.005)
I get an error with the select function and I don't know what to do
0 Comments
Accepted Answer
Steven Lord
on 10 Mar 2022
Let's plot some sample data.
x = 0:360;
y = sind(x).*(x-60).*(x-180).*(x-210)/(360.^2);
plot(x, y)
hold on
Identify the local maxima and plot a second "line" highlighting them with circles.
L = islocalmax(y);
plot(x(L), y(L), 'o')
2 Comments
Bjorn Gustavsson
on 10 Mar 2022
You're latest request becomes a very messy task. For that I would definitely write a function. Because now you have to handle selection of maxima in a "not at all obvious manner" what about high peaks that are way above the threshold but a bit close in x, how to handle a slightly lower peak that is just outside the x-separation to the highest peak but within that x-separation to a sub-peak close to the highest one, should that third peak be included or excluded. This is too much hassle to just toss something together on a whim without rather careful and precise specifications.
More Answers (1)
Bjorn Gustavsson
on 10 Mar 2022
You might get something from a simple solution like this (if your curve is not too noisy):
[m_al_max,idx_max] = max(m_al);
hold on
plot(t_al(idx_max),m_al_max,'rx')
HTH
4 Comments
See Also
Categories
Find more on Annotations 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!