MATLAB Answers


Return index of datetime column in a table

Asked by Sonima
on 26 Aug 2019
Latest activity Edited by Sonima
on 27 Aug 2019
I have a very long table which I want to return index to specific raws.
>> head(HData)
'2019.08.22 12:00:00'
'2019.08.22 12:15:00'
'2019.08.22 12:30:00'
I want to return in dex for the raws
'2019.08.22 12:00:00'

  1 Comment

is the time variable a matlab datetime number, or is it a string? This will use much less data, and be easier to work with if it was a datetime.
it usualy isn't too much work to convert strings to datetime arrays.

Sign in to comment.

1 Answer

Answer by Akira Agata
on 27 Aug 2019
 Accepted Answer

If your HData.Time column is string:
% index of zero seconds
idx_s = cellfun(@(x) ~isempty(x),regexp(HData.Time,'00$','match'));
% index of zero minutes
idx_m = cellfun(@(x) ~isempty(x),regexp(HData.Time,':00:','match'));
Or, if your HData.Time column is datetime, it becomes much simpler, like:
% index of zero seconds
idx_s = HData.Time.Second == 0;
% index of zero minutes
idx_m = HData.Time.Minute == 0;


Sign in to comment.