Number of peak values from the plot

1 view (last 30 days)
I have the peak values for the following graph ..but i need the number of peak values in the plot.
load engine_run.dat
engine_state = engine_run(:,1);
time = engine_run(:,2);
findpeaks(time,engine_state)
xlabel('time')
ylabel('engine state')
title('Find All Peaks')

Accepted Answer

Star Strider
Star Strider on 25 Mar 2021
Use findpeaks with outputs:
[pks,locs] = findpeaks(time,engine_state);
The number of peaks will be:
numPeaks = numel(pks)
The ‘locs’ output will be the times they occurred.
  4 Comments
satwick guturu
satwick guturu on 26 Mar 2021
And can you help with this..?
If there are more than two peaks for every five seconds.. then they'll be equal to zero or else 1.
How do i implement this ?
Star Strider
Star Strider on 26 Mar 2021
I would use the diff function on the locs output and then see if any of those values are less than five seconds.
If they are, then using that result catgorize them as either 0 or 1, depending on whatever criteria you are using.

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!