Filter löschen
Filter löschen

Averaging time series for a season

3 Ansichten (letzte 30 Tage)
HA
HA am 14 Jul. 2020
Beantwortet: Jaynik am 16 Jul. 2024 um 5:54
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.

Antworten (1)

Jaynik
Jaynik am 16 Jul. 2024 um 5:54
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!

Kategorien

Mehr zu Mathematics finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by