Filter löschen
Filter löschen

How to create a new vector with AM/PM labels from vector of times

1 Ansicht (letzte 30 Tage)
Erik J
Erik J am 23 Mär. 2017
Bearbeitet: dpb am 28 Mär. 2017
I have a single column vector with a bunch of times (in military time). The format of these is 12:00.
I need to create a new vector corresponding to this which is just a 1 if the time is PM (>12:00) or a 0 if the time is AM (<12:00).
I cannot seem to figure out a quick and simple way to do this.
Thank you.

Antworten (1)

dpb
dpb am 23 Mär. 2017
Bearbeitet: dpb am 28 Mär. 2017
Still learning way around the datetime object; may be more direct route...
dtm=datetime(num2str([0:23].','%02d:00'),'inputformat','HH:mm','format','a'); % sample vector
isPM=cellfun(@isempty,strfind(cellstr(dtm),'AM')); % check if AM/PM
ADDENDUM
More better--
isPM=(hour(dtm)>=12);
doesn't rely on the formatting nor need costly cell operations.
  2 Kommentare
Peter Perkins
Peter Perkins am 27 Mär. 2017
for AM PM, that'd be the way to go, more generally,
timeofday(dtm) > (hours(14) + minutes(30)) % after 2:30 pm, before midnight
dpb
dpb am 27 Mär. 2017
Bearbeitet: dpb am 28 Mär. 2017
Thanks, Peter, I still find doc dense here per our previous conversation...but I did see a mismatched closing parens above so fixing that is good. :)

Melden Sie sich an, um zu kommentieren.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by