how to select time which comes in a range from cell array

if i have a time as
cellArr = {'6:25:48'
'7:28:18'
'8:30:20'
'9:32:37'
'10:35:40'};
how to select time which comes in a range? eg: time between 7:00:00 and 9:00:00
7:28:18
8:30:20

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 25 Feb. 2017
Bearbeitet: Walter Roberson am 26 Feb. 2017

1 Stimme

Convert to datetime objects and then use

4 Kommentare

Guillaume
Guillaume am 25 Feb. 2017
Bearbeitet: Guillaume am 25 Feb. 2017
Walter wrote:
Convert to datetime objects and then use isbetween
The first half of the sentence is as important as the second half.
The conversion to datetime would be achieved with
d = datetime(cellArr, 'InputFormat', 'hh:mm:ss', 'Format', 'hh:mm:ss')
sir i did as you said
t = datetime(cellArr);
now as i dont have date the current date is coming in the date column...
'25-Feb-2017 06:25:48'
'25-Feb-2017 07:28:18'
'25-Feb-2017 08:30:20'
'25-Feb-2017 09:32:37'
'25-Feb-2017 10:35:40'
is there any way i can remove the date and keep only the time...
You may have written your comment as I edited mine. Use the 'Format' property of the datetime object to make it display as you want.
t = datetime(cellArr, 'Format', 'hh:mm:ss')
You also might want to consider using duration objects:
cellArr = {'6:25:48'
'7:28:18'
'8:30:20'
'9:32:37'
'10:35:40'};
temp = regexp(cellArr, ':', 'split');
durations = duration(str2double(vertcat(temp{:})));
low = hours(7);
high = hours(9);
durations(durations >= low & durations <= high)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by