MATLAB: Seasonal average over years

average

I have monthly averages of daily data for 7 years (84×1). I would like to make an May-October average for the whole period (7×1). I have tried different approaches but I am just getting more confused.
Thank you!

Best Answer

Try this demo:
% Make sample data
temps = randi(100, 84, 1)
% Reshape to a month by year array.

tempsByMonth = reshape(temps, 12,7)
% Extract the May - October months.
mayThroughOct = tempsByMonth(5:10,:)
% Get the means over all those extracted months.
meanMayOct = mean(mayThroughOct(:))
Of course it could be make into a more cryptic, obtuse one liner if you wanted, but I went for understandability.
If you have the Image Processing Toolbox, you have mean2() so it can be shortened to
tempsByMonth = reshape(temps, 12,7) % Reshape to a month by year array.
meanMayOct = mean2(tempsByMonth(5:10,:)) % Get the means over extracted months.
and still be fairly readable.