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 commentaire

Adam
Adam le 27 Fév 2018
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.

Connectez-vous pour commenter.

Réponses (2)

Star Strider
Star Strider le 27 Fév 2018

4 votes

If you have R2017b, use the islocalmax (link) function.
Andrei Bobrov
Andrei Bobrov le 27 Fév 2018
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 commentaire

Alankrita Asthana
Alankrita Asthana le 27 Fév 2018
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

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by