MATLAB Answers

How to extract Jan and feb dates from an array of date strings?

4 views (last 30 days)
JFz
JFz on 27 Jul 2018
Commented: JFz on 3 Aug 2018
Hi,
I have an array of cells of date string. I need to extract all the dates in Jan and Feb. How to do that? Thanks a lot!

  3 Comments

Stephen Cobeldick
Stephen Cobeldick on 27 Jul 2018
@JFz: what date format do the strings use? Please upload the cell array in a .mat file, by clicking the paperclip button.
JFz
JFz on 27 Jul 2018
The format in each sell is: 'mm/dd/yyyy'. some like: '1/1/2018' '2/1/2018' .... Thanks!
JFz
JFz on 27 Jul 2018
Something I created with {'1/1/2018'; '2/1/2018'; ...}

Sign in to comment.

Accepted Answer

Stephen Cobeldick
Stephen Cobeldick on 27 Jul 2018
>> C = {'1/1/2018'; '2/1/2018'; '12/31/2018'};
>> X = cellfun('isempty',regexp(C,'^[12]/','once'));
>> D = C(~X)

  3 Comments

JFz
JFz on 27 Jul 2018
Thanks. But what if I have C = {'1/1/2018'; '2/1/2018'; '3/1/2018'; '4/1/2018'; '5/1/2018';'12/31/2018'}; And I would like to extract 1/2/2018 and 2/1/2018?
Stephen Cobeldick
Stephen Cobeldick on 27 Jul 2018
"C = {'1/1/2018'; '2/1/2018'; '3/1/2018'; '4/1/2018'; '5/1/2018';'12/31/2018'}; And I would like to extract 1/2/2018 and 2/1/2018?"
Your example cell array does not contain '1/2/2018', should that example output actually be '1/1/2018' (which does exist in C) ? In which case my code already does that:
>> C = {'1/1/2018'; '2/1/2018'; '3/1/2018'; '4/1/2018'; '5/1/2018';'12/31/2018'};
>> X = cellfun('isempty',regexp(C,'^[12]/','once'));
>> D = C(~X)
D =
'1/1/2018'
'2/1/2018'

Sign in to comment.

More Answers (1)

Peter Perkins
Peter Perkins on 3 Aug 2018
If possible, don't do this with text. Convert to datetimes:
>> d = datetime(2018,randi(6,10,1),1)
d =
10×1 datetime array
01-Jan-2018
01-Mar-2018
01-Jan-2018
01-Mar-2018
01-Jan-2018
01-May-2018
01-Mar-2018
01-Jan-2018
01-Feb-2018
01-Mar-2018
>> d(d.Month==1 | d.Month==2)
ans =
5×1 datetime array
01-Jan-2018
01-Jan-2018
01-Jan-2018
01-Jan-2018
01-Feb-2018

Tags

Products


Release

R2018a

Translated by