# Averaging time series for a season

6 views (last 30 days)
HA on 14 Jul 2020
Answered: Jaynik on 16 Jul 2024
Hello,
I have a 3d time series with month as the last dimension (latxlonxmonth) with 300 years worth of data, I have been using the annual average function for annual time series (latxlonx300)-
A = squeeze(nanmean(reshape(B,[s(1:2),12,s(3)/12]),3));
I now need to do a similar time seires but just for a specific season -June, July, August (latxlonx300).
How would I go about taking a seasonal mean instead of full annual mean? It is probably something simple that my mind is just not getting right now.
Thank you.

Jaynik on 16 Jul 2024
Hi,
You can follow a similar approach to the one you used for the annual mean. Instead of averaging over all 12 months, you will only average over the months of interest. Following is a general approach:
1. Reshape the array to separate the years and months.
2. Extract the months of interest (June, July, August).
3. Compute the mean over these months.
Here is the MATLAB code:
% Assuming B is your original 3D array (lat x lon x month)
% Reshape the array to separate years and months
B_reshaped = reshape(B, [s(1), s(2), 12, s(3)/12]);
% Extract the months of interest (June, July, August) i.e., 6:8
JJA_months = B_reshaped(:,:,6:8,:);
% Compute the mean over the months of interest
JJA_mean = squeeze(nanmean(JJA_months, 3));
Hope this helps!