Averaging specified number of points around the minimum value

1 vue (au cours des 30 derniers jours)
Meghan
Meghan le 3 Déc 2024
Commenté : Meghan le 3 Déc 2024
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
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)] ?
Meghan
Meghan le 3 Déc 2024
Yes, thank you! Why include the ix+/-1?

Connectez-vous pour commenter.

Réponse acceptée

Torsten
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)

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!

Translated by