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
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!