Index daily values in TT over many years to determine mean

3 views (last 30 days)
I would like to determine the daily means over many years from an existing TT (attached).
Specifically, all July 01's are combined and a mean determined, all July 02's are combined and a mean detemined, etc.
I've started to do this using a brute force step-wise method and realize its going to take forever. Below is what I've done so far (and it works).
I'm just wondering if (and I think there should be) there's a much easire way to parse the data.
% Create indexes for July days.
idx_Jul1 = ismember(day(TT4_staLCA_AT_Jul.Time), 1);
idx_Jul2 = ismember(day(TT4_staLCA_AT_Jul.Time), 2);
idx_Jul3 = ismember(day(TT4_staLCA_AT_Jul.Time), 3);
idx_Jul4 = ismember(day(TT4_staLCA_AT_Jul.Time), 4);
idx_Jul5 = ismember(day(TT4_staLCA_AT_Jul.Time), 5);
idx_Jul6 = ismember(day(TT4_staLCA_AT_Jul.Time), 6);
idx_Jul7 = ismember(day(TT4_staLCA_AT_Jul.Time), 7);
idx_Jul8 = ismember(day(TT4_staLCA_AT_Jul.Time), 8);
idx_Jul9 = ismember(day(TT4_staLCA_AT_Jul.Time), 9);
idx_Jul10 = ismember(day(TT4_staLCA_AT_Jul.Time), 10);
idx_Jul11 = ismember(day(TT4_staLCA_AT_Jul.Time), 11);
idx_Jul12 = ismember(day(TT4_staLCA_AT_Jul.Time), 12);
idx_Jul13 = ismember(day(TT4_staLCA_AT_Jul.Time), 13);
idx_Jul14 = ismember(day(TT4_staLCA_AT_Jul.Time), 14);
idx_Jul15 = ismember(day(TT4_staLCA_AT_Jul.Time), 15);
idx_Jul16 = ismember(day(TT4_staLCA_AT_Jul.Time), 16);
idx_Jul17 = ismember(day(TT4_staLCA_AT_Jul.Time), 17);
idx_Jul18 = ismember(day(TT4_staLCA_AT_Jul.Time), 18);
idx_Jul19 = ismember(day(TT4_staLCA_AT_Jul.Time), 19);
idx_Jul20 = ismember(day(TT4_staLCA_AT_Jul.Time), 20);
idx_Jul21 = ismember(day(TT4_staLCA_AT_Jul.Time), 21);
idx_Jul22 = ismember(day(TT4_staLCA_AT_Jul.Time), 22);
idx_Jul23 = ismember(day(TT4_staLCA_AT_Jul.Time), 23);
idx_Jul24 = ismember(day(TT4_staLCA_AT_Jul.Time), 24);
idx_Jul25 = ismember(day(TT4_staLCA_AT_Jul.Time), 25);
idx_Jul26 = ismember(day(TT4_staLCA_AT_Jul.Time), 26);
idx_Jul27 = ismember(day(TT4_staLCA_AT_Jul.Time), 27);
idx_Jul28 = ismember(day(TT4_staLCA_AT_Jul.Time), 28);
idx_Jul29 = ismember(day(TT4_staLCA_AT_Jul.Time), 29);
idx_Jul30 = ismember(day(TT4_staLCA_AT_Jul.Time), 30);
idx_Jul31 = ismember(day(TT4_staLCA_AT_Jul.Time), 31);
% Daily indexes Jul.
TT4_staLCA_AT_Jul1 = TT4_staLCA_AT_Jul(idx_Jul1,:);
TT4_staLCA_AT_Jul1_mean = nanmean(TT4_staLCA_AT_Jul1.Var1);
TT4_staLCA_AT_Jul2 = TT4_staLCA_AT_Jul(idx_Jul2,:);
TT4_staLCA_AT_Jul2_mean = nanmean(TT4_staLCA_AT_Jul2.Var1);
TT4_staLCA_AT_Jul3 = TT4_staLCA_AT_Jul(idx_Jul3,:);
TT4_staLCA_AT_Jul3_mean = nanmean(TT4_staLCA_AT_Jul3.Var1);
TT4_staLCA_AT_Jul4 = TT4_staLCA_AT_Jul(idx_Jul4,:);
TT4_staLCA_AT_Jul4_mean = nanmean(TT4_staLCA_AT_Jul4.Var1);
TT4_staLCA_AT_Jul5 = TT4_staLCA_AT_Jul(idx_Jul5,:);
TT4_staLCA_AT_Jul5_mean = nanmean(TT4_staLCA_AT_Jul5.Var1);
TT4_staLCA_AT_Jul6 = TT4_staLCA_AT_Jul(idx_Jul6,:);
TT4_staLCA_AT_Jul6_mean = nanmean(TT4_staLCA_AT_Jul6.Var1);
TT4_staLCA_AT_Jul7 = TT4_staLCA_AT_Jul(idx_Jul7,:);
TT4_staLCA_AT_Jul7_mean = nanmean(TT4_staLCA_AT_Jul7.Var1);
TT4_staLCA_AT_Jul8 = TT4_staLCA_AT_Jul(idx_Jul8,:);
TT4_staLCA_AT_Jul8_mean = nanmean(TT4_staLCA_AT_Jul8.Var1);
TT4_staLCA_AT_Jul9 = TT4_staLCA_AT_Jul(idx_Jul9,:);
TT4_staLCA_AT_Jul9_mean = nanmean(TT4_staLCA_AT_Jul9.Var1);
TT4_staLCA_AT_Jul10 = TT4_staLCA_AT_Jul(idx_Jul10,:);
TT4_staLCA_AT_Jul10_mean = nanmean(TT4_staLCA_AT_Jul10.Var1);
TT4_staLCA_AT_Jul11 = TT4_staLCA_AT_Jul(idx_Jul11,:);
TT4_staLCA_AT_Jul11_mean = nanmean(TT4_staLCA_AT_Jul11.Var1);
TT4_staLCA_AT_Jul12 = TT4_staLCA_AT_Jul(idx_Jul12,:);
TT4_staLCA_AT_Jul12_mean = nanmean(TT4_staLCA_AT_Jul12.Var1);
TT4_staLCA_AT_Jul13 = TT4_staLCA_AT_Jul(idx_Jul13,:);
TT4_staLCA_AT_Jul13_mean = nanmean(TT4_staLCA_AT_Jul13.Var1);
TT4_staLCA_AT_Jul14 = TT4_staLCA_AT_Jul(idx_Jul14,:);
TT4_staLCA_AT_Jul14_mean = nanmean(TT4_staLCA_AT_Jul14.Var1);
TT4_staLCA_AT_Jul15 = TT4_staLCA_AT_Jul(idx_Jul15,:);
TT4_staLCA_AT_Jul15_mean = nanmean(TT4_staLCA_AT_Jul15.Var1);
TT4_staLCA_AT_Jul16 = TT4_staLCA_AT_Jul(idx_Jul16,:);
TT4_staLCA_AT_Jul16_mean = nanmean(TT4_staLCA_AT_Jul16.Var1);
TT4_staLCA_AT_Jul17 = TT4_staLCA_AT_Jul(idx_Jul17,:);
TT4_staLCA_AT_Jul17_mean = nanmean(TT4_staLCA_AT_Jul17.Var1);
TT4_staLCA_AT_Jul18 = TT4_staLCA_AT_Jul(idx_Jul18,:);
TT4_staLCA_AT_Jul18_mean = nanmean(TT4_staLCA_AT_Jul18.Var1);
TT4_staLCA_AT_Jul19 = TT4_staLCA_AT_Jul(idx_Jul19,:);
TT4_staLCA_AT_Jul19_mean = nanmean(TT4_staLCA_AT_Jul19.Var1);
TT4_staLCA_AT_Jul20 = TT4_staLCA_AT_Jul(idx_Jul20,:);
TT4_staLCA_AT_Jul20_mean = nanmean(TT4_staLCA_AT_Jul20.Var1);
TT4_staLCA_AT_Jul21 = TT4_staLCA_AT_Jul(idx_Jul21,:);
TT4_staLCA_AT_Jul21_mean = nanmean(TT4_staLCA_AT_Jul21.Var1);
TT4_staLCA_AT_Jul22 = TT4_staLCA_AT_Jul(idx_Jul22,:);
TT4_staLCA_AT_Jul22_mean = nanmean(TT4_staLCA_AT_Jul22.Var1);
TT4_staLCA_AT_Jul23 = TT4_staLCA_AT_Jul(idx_Jul23,:);
TT4_staLCA_AT_Jul23_mean = nanmean(TT4_staLCA_AT_Jul23.Var1);
TT4_staLCA_AT_Jul24 = TT4_staLCA_AT_Jul(idx_Jul24,:);
TT4_staLCA_AT_Jul24_mean = nanmean(TT4_staLCA_AT_Jul24.Var1);
TT4_staLCA_AT_Jul25 = TT4_staLCA_AT_Jul(idx_Jul25,:);
TT4_staLCA_AT_Jul25_mean = nanmean(TT4_staLCA_AT_Jul25.Var1);
TT4_staLCA_AT_Jul26 = TT4_staLCA_AT_Jul(idx_Jul26,:);
TT4_staLCA_AT_Jul26_mean = nanmean(TT4_staLCA_AT_Jul26.Var1);
TT4_staLCA_AT_Jul27 = TT4_staLCA_AT_Jul(idx_Jul27,:);
TT4_staLCA_AT_Jul27_mean = nanmean(TT4_staLCA_AT_Jul27.Var1);
TT4_staLCA_AT_Jul28 = TT4_staLCA_AT_Jul(idx_Jul28,:);
TT4_staLCA_AT_Jul28_mean = nanmean(TT4_staLCA_AT_Jul28.Var1);
TT4_staLCA_AT_Jul29 = TT4_staLCA_AT_Jul(idx_Jul29,:);
TT4_staLCA_AT_Jul29_mean = nanmean(TT4_staLCA_AT_Jul29.Var1);
TT4_staLCA_AT_Jul30 = TT4_staLCA_AT_Jul(idx_Jul30,:);
TT4_staLCA_AT_Jul30_mean = nanmean(TT4_staLCA_AT_Jul30.Var1);
TT4_staLCA_AT_Jul31 = TT4_staLCA_AT_Jul(idx_Jul31,:);
TT4_staLCA_AT_Jul31_mean = nanmean(TT4_staLCA_AT_Jul31.Var1);
% Combine all means into one matrix.
TT5_staLCA_AT_Jul = [TT4_staLCA_AT_Jul1_mean; TT4_staLCA_AT_Jul2_mean; TT4_staLCA_AT_Jul3_mean; TT4_staLCA_AT_Jul4_mean; TT4_staLCA_AT_Jul5_mean; TT4_staLCA_AT_Jul6_mean;...
TT4_staLCA_AT_Jul7_mean; TT4_staLCA_AT_Jul8_mean; TT4_staLCA_AT_Jul9_mean; TT4_staLCA_AT_Jul10_mean; TT4_staLCA_AT_Jul11_mean; TT4_staLCA_AT_Jul12_mean;...
TT4_staLCA_AT_Jul13_mean; TT4_staLCA_AT_Jul14_mean; TT4_staLCA_AT_Jul15_mean; TT4_staLCA_AT_Jul16_mean; TT4_staLCA_AT_Jul17_mean; TT4_staLCA_AT_Jul18_mean;...
TT4_staLCA_AT_Jul19_mean; TT4_staLCA_AT_Jul20_mean; TT4_staLCA_AT_Jul21_mean; TT4_staLCA_AT_Jul22_mean; TT4_staLCA_AT_Jul23_mean; TT4_staLCA_AT_Jul24_mean;...
TT4_staLCA_AT_Jul25_mean; TT4_staLCA_AT_Jul26_mean; TT4_staLCA_AT_Jul27_mean; TT4_staLCA_AT_Jul28_mean; TT4_staLCA_AT_Jul29_mean; TT4_staLCA_AT_Jul30_mean;...
TT4_staLCA_AT_Jul31_mean;];
% Create a column vector for july days used in plotting.
Jul_length = (1:31);
Jul_length = Jul_length';
% Plot July average AT
figure
scatter(Jul_length, TT5_staLCA_AT_Jul)

Accepted Answer

Sindar
Sindar on 23 Sep 2020
This will create a table with the average for each day of the year (1-366). 'dayofmonth' might be preferable for just July data to avoid leap year issues
summary_table = groupsummary(TT4_staLCA_AT_Jul,'Time','dayofyear','mean');
  14 Comments
Eric Escoto
Eric Escoto on 24 Sep 2020
Ah, I see. Makes sense.
Plot looks as it should now. Thanks again, Sindar!

Sign in to comment.

More Answers (1)

Steven Lord
Steven Lord on 23 Sep 2020
Use groupsummary with the GROUPBINS input specified as "dayofyear".

Community Treasure Hunt

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

Start Hunting!