How can I find the local maximum and local minimum in my dataset?

27 vues (au cours des 30 derniers jours)
Farnood83
Farnood83 le 24 Juil 2021
Commenté : Image Analyst le 25 Juil 2021
I have a dataset of Lateral Force vs Displacement from my experiments. I want to find the local maximums and local minimums in each set of data. Then I need to find the distance between the neighboring local minimum and local maximum. I attached some figures into my question and showed the local maximums and local minimums with circles. The local minimums have a black circle, and local minimums have a red circle.
Is it possible to use findpeaks or islocalmax? I think it might not be possible to use them because my data is not smooth.
Many thanks in advance
Cheers,

Réponse acceptée

Image Analyst
Image Analyst le 24 Juil 2021
Depends on exactly what you mean by local min or max, and I don't see any black or red circles in the picture you posted. You could try movmin()/imerode() or movmax()/imdilate() to get the min or min in a moving window. The local min in the window may not necessarily be a valley and the local max may not necessarily be a peak. To get peaks and valleys you'd need islocalmin/islocalmax (very simple determination) or findpeaks for a more comprehensive classification of what you call a peak or value. To get valleys you need to invert your signal
[peakValues, indexesOfPeaks] = findpeaks(signal);
[valleyValues, indexesOfValleys] = findpeaks(-signal);
valleyValues = -valleyValues; % Invert back to get the original, non-negated values.
There are a bunch of complicated options in findpeaks() to fine tune what you consder a peak or valley.
  4 commentaires
Farnood83
Farnood83 le 25 Juil 2021
Some of those are not actually the local maximum or local minimum. Those very small sharp parts of the data are not the main local maximums or local minimums. I just showed some of the major ones to explain what I mean. I will try your suggestion.
Thank you so much
Farnood
Image Analyst
Image Analyst le 25 Juil 2021
Well whatever you want to find, those are the functions that will do it.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by