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

5 visualizaciones (últimos 30 días)
Arun Nair
Arun Nair el 17 de Mayo de 2019
Comentada: Arun Nair el 19 de Mayo de 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?

Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 17 de Mayo de 2019
Editada: Andrei Bobrov el 18 de Mayo de 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 comentarios
Andrei Bobrov
Andrei Bobrov el 18 de Mayo de 2019
Please see part 'add' in my answer.
Arun Nair
Arun Nair el 19 de Mayo de 2019
Thank you for your help!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Power and Energy Systems en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by