# Calculate average over each specific interval

17 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 AucuneMasquer Aucune
Image Analyst le 7 Juil 2021
Please attach your time and signal data (I'm guessing it's t and x) in a .mat file with the paperclip icon
so we can try some things.
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 1 commentaire plus ancienMasquer 1 commentaire plus ancien
dpb le 8 Juil 2021
Must've made a typo somewhere; works for me---
>> x=rand(1,63369);
>> numel(x)
ans =
63369
>> N
N =
5
>> ceil(numel(x)/5)
ans =
12674
>> N*ceil(numel(x)/N)
ans =
63370
>> ans/N
ans =
12674
>> x=[x nan(1,N*ceil(numel(x)/N)-numel(x))];
>> numel(x)
ans =
63370
>> mnX=mean(reshape(x(1:5*fix(numel(x)/5)),5,[]));
>> whos mnX
Name Size Bytes Class Attributes
mnX 1x12674 101392 double
>>
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 MATLAB 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