find local maxima without using findpeaks()

hi. i have raw velocity data. i need to get the local maxima of that data in velocity vs time plot.findpeaks() needs a liscense, so is there any other function similar to findpeaks?

1 Comment

There are plenty of peak finding variants in the File Exchange for free. I can't vouch for the quality of any of them, but you can evaluate them for your usage.

Sign in to comment.

Answers (2)

Please use function diff.
for example:
a = rand(15,1);
t = diff(a);
lo = t > 0;
ii = strfind(lo(:)',[1,0]) + 1;
plot(a(:));
hold on
plot(ii(:),a(ii),'ro');

1 Comment

this function is detecting the minima also. the data has so many ripples so how can i find only one maxima out of so many ripples

Sign in to comment.

Asked:

on 27 Feb 2018

Commented:

on 28 Feb 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!