Remove leading zeros from dates strings

23 ビュー (過去 30 日間)
Santiago Costantino
Santiago Costantino 2020 年 7 月 16 日
Hello
I need to find the number of times a set of dates is included in a large text file. The problem is that the text file does not use leading zeros for months and days.
My code should look something like this:
myText=fileread('largeFile.txt');
dayOne=datetime('06/05/20','InputFormat','MM/dd/yy')
for it=1:10
numberOfTimes(it)=size(regexp(myText, datestr(dayOne+days(it), 'mm/dd/yy')), 2);
end
Thanks
  1 件のコメント
jonas
jonas 2020 年 7 月 16 日
Why not simply count the dates with hist?

サインインしてコメントする。

採用された回答

jonas
jonas 2020 年 7 月 16 日
You can use histogram() to count occurences, either with datetime or categoricals as input.
dates = datetime(2010,1,12) + rand(1000,1)*days(365);
% with categoricals
dates_cell = cellstr(datestr(dates,'mm/dd/yy'));
dates_cat = categorical(dates_cell);
H = histogram(dates_cat)
  3 件のコメント
Santiago Costantino
Santiago Costantino 2020 年 7 月 17 日
That does it. Thank you, Walter.

サインインしてコメントする。

その他の回答 (1 件)

Steven Lord
Steven Lord 2020 年 7 月 16 日
Use M instead of MM and d instead of dd in the input format. According to the description of the Format property on the documentation page (which is referenced in the documentation for 'InputFormat'), M handles "Month, numerical using one or two digits" as opposed to MM which handles "Month, numerical using two digits".
>> datetime('07-16-2020', 'InputFormat', 'M-dd-yyyy')
ans =
datetime
16-Jul-2020
>> datetime('7-16-2020', 'InputFormat', 'M-dd-yyyy')
ans =
datetime
16-Jul-2020
  1 件のコメント
Santiago Costantino
Santiago Costantino 2020 年 7 月 16 日
Sorry, I guess my question was not clear enough.
The dates in the text file are written as '4/7/20' for April 7th 2020. I need to find the number of occurrences of each one of many different and consecutive dates in the text.

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by