datenum(ye​ar,month,d​ay,hr) that returns integer

I need a datenum(year,month,day,hr) that returns an integer, where year, month, day, and hr are vectors of integers.
motivation: I am trying to do this for fast lookup of many dates in a large table, where each row contains data for an hourly sample. Therefor the output of datnum will become the indices of a sparse matrix containing the row indices of the original table of data.

 Accepted Answer

Wrong approach.
Instead, convert the table to a timetable; there are direct, builtin functions to return by rowtimes either individual records or those matching a time span, etc., ...

2 Comments

Addendum -- are the table entries complete? If so, then it's simply hours(tWanted-tZero) + 1 where tWanted is the desired hour and tZero is the origin of the table using the datetime class.
Otherwise, I think the other idea is still the better solution.

Sign in to comment.

More Answers (0)

Categories

Tags

Asked:

on 13 May 2022

Commented:

on 14 May 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!