MATLAB Answers

Return index of datetime column in a table

37 views (last 30 days)
Sonima on 26 Aug 2019
Edited: 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
Ted Shultz
Ted Shultz on 26 Aug 2019
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.

Accepted Answer

Akira Agata
Akira Agata on 27 Aug 2019
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;

More Answers (0)

Community Treasure Hunt

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

Start Hunting!