calculate week of year
Show older comments
I have an annual time series where measurements are recorded at hourly intervals:
StartDate = '2011-01-01 00:00';
EndDate = '2011-12-031 23:00';
DateTime=datevec(datenum(StartDate,'yyyy-mm-dd HH:MM'):60/(60*24):...
datenum(EndDate,'yyyy-mm-dd HH:MM'));
dat = 2+(20-2).*rand(size(DateTime,1),1);
I would like to calculate the mean 24 hour cycle for each week of the year i.e. for week 1, day of year 1 to 7 I want to calculate the average 00:00, 01:00,... and so on so eventually I will end up with 52, 24 hour series i.e. one for each week of the year. Matlab does have a function called 'weeknum' which returns the week number from a given seriel date number, however, this function is in the financial toolbox. Can anyone suggest an alternative methdo for finding week number?
Accepted Answer
More Answers (1)
Steven Lord
on 27 Mar 2020
0 votes
Since the original question was written, we introduced datetime. If you're representing your time and date data as a datetime, call week on your datetime with 'weekofyear' as the weekType input.
2 Comments
Rahul Shinde
on 22 Jul 2021
I tried running the code
week(datetime(2016,2,29))
However I am getting ans as 10 in my matlab command window.
Am I missing anything?
Regards,
Erik Johannes Loo
on 25 Oct 2021
I will suggest something that I am not 100% sure it is correct - but I also haven't found satisfactory answers elsewhere:
sum(weekday(dateshift(inputDate, 'start', 'year'):dateshift(inputDate, 'end', 'week')) == 5)
This snippet basically counts the no. of Thursdays up to and including the week of the input date and should satisfy the ISO standard definition that the first week is (as per Wikipedia):
- the week with the starting year's first Thursday in it (the formal ISO definition)
Categories
Find more on Time Series Objects in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!