Find timeseries mean for 10 years

2 visualizaciones (últimos 30 días)
Sarah Yun
Sarah Yun el 15 de Dic. de 2019
Comentada: Adam Danz el 16 de Dic. de 2019
Hi,
I have time-series temperature data for years 1950 to 2010.
I want to calculate the decadal means i.e. 1950 - 1960, 1960 - 1970 etc and plot them as a histogram
What code should I use to calculate the 10 year means?
Thank you.

Respuesta aceptada

Adam Danz
Adam Danz el 15 de Dic. de 2019
Editada: Adam Danz el 15 de Dic. de 2019
Assuming you have a vector named temperature that stores the temperatures and a vector named dt that stores the datetime stamps (in datetime format), you can use findgroups() to group the data into decades and then splitapply() to calculate the group means.
% Create demo data
dt = datetime(1950,1,1):datetime(2019,12,15);
temperature = rand(size(dt)) * 100;
% Group by decade
[groups, groupID] = findgroups(floor(year(dt)/10)*10);
% Compute decade means
decMeans = splitapply(@mean,temperature,groups);
% Put results into a table
results = table(groupID.', decMeans.','VariableNames',{'Decade','MeanTemp'});
View results
results =
7×2 table
Decade MeanTemp
______ ________
1950 49.348
1960 50.959
1970 50.13
1980 49.847
1990 49.808
2000 49.471
2010 49.404
[update]
If there are NaN values you'd like to ignore,
decMeans = splitapply(@(x)mean(x,'omitnan'),temperature,groups);
  6 comentarios
Sarah Yun
Sarah Yun el 16 de Dic. de 2019
Thank you.
How do I find the p-values?
It shows a box-plot only.
Adam Danz
Adam Danz el 16 de Dic. de 2019
Did you look at the p output?
Here's more info

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Time Series 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