How to pick data with fix moving window ?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi everyone,
May someone help me here...
I have a 366 data points. I am interested to pick 60 data points each time with a shift of 5 data points i.e. 1-60, 5-65, 10-70, 15-75 ..... 305-365.
Thank you.
0 commentaires
Réponses (1)
Mathieu NOE
le 6 Jan 2021
hello
create index vector with delta = 5 :
ind = min(data):5:max(data);
and use it to extract the corresponding data values :
data_out = data(ind);
3 commentaires
Mathieu NOE
le 6 Jan 2021
ok
i read your first request a bit too quickly !
I was about to send the code when I noticed that the way you split the data cannot give the same 60 points for all cases :
1-60 => length = 60
5-65 and al followers => length = 61
so we have to change either the lower or the upper limit (like 5-64 and not 5-65)
Mathieu NOE
le 6 Jan 2021
so code should be :
data = readmatrix('data.txt');
buffer_length = 60;
k = 5;
nb_loops = 1+fix((length(data)-buffer_length)/k);
% nb_loops = 62;
data_out = [];
for ci = 1:nb_loops
ind_start = 1+(ci-1)*k;
ind_stop = ind_start+buffer_length-1;
ind = ind_start:1:ind_stop;
data_out(:,ci) = data(ind);
end
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!