Averaging time series for a season

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.

Answers (1)

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!

Categories

Find more on Mathematics in Help Center and File Exchange

Asked:

HA
on 14 Jul 2020

Answered:

on 16 Jul 2024

Community Treasure Hunt

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

Start Hunting!