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!