Averaging specified number of points around the minimum value
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi,
I'm trying to average a specified number of points around the minimum value of my data (ex. 5 points to the left and 5 points to the right) and cannot seem to find a solution. I'm just not sure how to create that range.
I'm assuming it would be something along the lines of mean(min( %my range)).
Thanks in advance for any help!
2 commentaires
Torsten
le 3 Déc 2024
So you have an array "data", the minimum is at data(ix) for some index "ix" and you want to compute the average of [data(ix-5:ix-1),data(ix+1:ix+5)] ?
Réponse acceptée
Torsten
le 3 Déc 2024
Déplacé(e) : Torsten
le 3 Déc 2024
data(ix-5:ix-1) are the 5 points left to the minimum, data(ix+1:ix+5) are the five points right to the minimum.
So the code should be
[~,ix] = min(data);
max_left = min(5,ix-1);
max_right = min(5,numel(data)-ix);
avg = mean([data(ix-max_left:ix-1),data(ix+1:ix+max_right)])
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!