MATLAB: Calculating daily average curve from weekly data

averagehourlytimetableweekly

So i have a big timetable with multiple observation from time period of one week. resolution is one hour I want to shrink it into one day time period and same 1 hour resolution. The one thing that could work is to first calculate observation averages so that the table becomes 168*1 and do a for loop to split every day of week into own columns (24*7 table) and then caculate the averages again so i finally get 24*1 table. Is there a better way to do this? timetable default "mean" function doesn't work for this because "hourly" returns only average of observations, but doesn't shrink my weekly data to daily average.

Best Answer

If i don't get wrong, it seems that you want to perform this operation:
%% Mean along 10 columns
g1m = mean(g1,2);
%% Reshape to get a the desired size
g1m_w = reshape(g1m,[24 7]);
%% Perform the mean again
g1m = mean(g1m_w,2);