hourly average of data from 30mins past the hour
1 次查看(过去 30 天)
显示 更早的评论
I'm working on some solar irradiance data, I have been able to get the hourly average using the following code:
DateNumber = timeStamp(:,1);
formatOut = 'dd mm yyyy HH:MM:SS';
str = datestr(DateNumber,formatOut);
%Creates coloum vectors corresponding to month, day and hour
%these are used to find the hourly average for each day of the month
%averages for irradiance, temperature and wind speed are calculated
Cell = cellstr(str);
[~,Mth,Day,Hr] = datevec(Cell, 'dd mm yyyy HH:MM:SS');
subs = [Mth Day Hr+1];
hrly_mean_ir = accumarray(subs, I,[], @mean); % hourly mean irradiance
hrly_mean_ws = accumarray(subs, Ws,[], @mean);
hrly_mean_temp = accumarray(subs, T, [], @mean);
The problem with this is when I plot it, for example the data for each day should peak around 12pm. But since the average for 1100 to 1200 (or 1200 to 1300 depending on the plot) the peak can be shifted slightly off the midday point.
What I need is the hour to 'start' at 30mins past the hour, eg for 12pm the average would be 1130 to 1230
I'm not too sure how I can get the hourly average in this format however.
0 个评论
回答(1 个)
Alexandra Harkai
2016-12-2
You could avoid the date conversion back-and-forth business by sticking to DateNumber. Getting not only the hours but the minutes for those DateNumber values you can add an hour only on the ones where the minutes indicate they are at least 30mins past the hour, pushing them to the next 'bucket'.
DateNumber = timeStamp(:,1);
%Creates coloum vectors corresponding to month, day and hour
%these are used to find the hourly average for each day of the month
%averages for irradiance, temperature and wind speed are calculated
[~,Mth,Day,Hr,Mn] = datevec(DateNumber);
subs = [Mth Day Hr+Mn>=30];
hrly_mean_ir = accumarray(subs, I,[], @mean); % hourly mean irradiance
hrly_mean_ws = accumarray(subs, Ws,[], @mean);
hrly_mean_temp = accumarray(subs, T, [], @mean);
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Dates and Time 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!