# Calculate average over each specific interval

29 vues (au cours des 30 derniers jours)
Saad Alqahtani le 7 Juil 2021
Commenté : Saad Alqahtani le 8 Juil 2021
Hi,
I'm trying to calculate the mean every 5 seconds of data till the end.
so x= (1,63369) % my data in Newton Meter which is about 30.9419 seconds long
t = 5*2048 % 5 seconds interval.
I'd like to have your help in (1- how to make it calculate the mean in increaments from start till the end 2- how to deal with the last posrtion of the data that shorter than 5 seconds)
any help would be appreciate it. Thanks in advance.
##### 2 commentairesAfficher 1 commentaire plus ancienMasquer 1 commentaire plus ancien
Saad Alqahtani le 7 Juil 2021

Connectez-vous pour commenter.

### Réponse acceptée

dpb le 7 Juil 2021
Modifié(e) : dpb le 8 Juil 2021
2) first -- how to deal with the last posrtion of the data that shorter than 5 seconds"
How do you WANT to deal with it? You can either ignore it and have fix(numel/5) samples or average the values that do have in the last segment -- it's your choice.
1) The classic MATLAB way is to reshape() and use mean() --
a) Ignore last partial segment --
N=5; % number elements to average over
mnX=mean(reshape(x(1:N*fix(numel(x)/N)),N,[])); % average over N elements ignoring end values
b) Deal with odd end
x=[x nan(1,N*ceil(numel(x)/N)-numel(x))]; % augment vector to make even
mnX=mean(reshape(x,N,[]),1,'omitnan'); % average over N elements ignoring NaN elements
##### 3 commentairesAfficher 2 commentaires plus anciensMasquer 2 commentaires plus anciens
Saad Alqahtani le 8 Juil 2021
(b) works now as well. It looks like I had some typo somewhere. Thank you so much. I really appreciate your help!

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Resizing and Reshaping Matrices 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!