How to convert 3 hourly data into a 6 hourly data?

5 vues (au cours des 30 derniers jours)
Arun Nair
Arun Nair le 17 Mai 2019
Commenté : Arun Nair le 19 Mai 2019
I have a 3D variable (time,latitude,longitude) every 3hourly (regular). I need to change this variable into 6 hourly by averaging (eg, 0hr and 3hr of old variable averaged, and stored as first time step in the new variable). In total my old variable has 56 time steps. How should I go about?

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 17 Mai 2019
Modifié(e) : Andrei Bobrov le 18 Mai 2019
In R2016b
[m,n,k] = size(A);
t = hours(0:3:(k-1)*3);
Ar = reshape(A,m,[]);
TT = table2timetable(array2table(Ar),'RowTime',t(:));
T1 = retime(TT,TT.Time(1:2:end),'mean');
out = reshape(T1{:,:},[],n,k);
add:
[m,n,k] = size(A);
t = hours((0:m-1)*3)';
o1 = varfun(@mean,array2table([floor(t / hours(6)) + 1,reshape(A,m,[])]),...
'GroupingVariables','Var1');
out = reshape(o1{:,3:end},[],n,k);
  3 commentaires
Andrei Bobrov
Andrei Bobrov le 18 Mai 2019
Please see part 'add' in my answer.
Arun Nair
Arun Nair le 19 Mai 2019
Thank you for your help!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Power and Energy Systems 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