Help Optimize slow Datestr() function performance

3 views (last 30 days)
I have imported a large text file with textual dates in the format m/d/yyyy. The end result that I need is a numeric date (for export to another system) in the format yyyymmdd. Since my text file is rather large (850,000 rows) my current method for conversion is really slow. It's taking about 50 seconds for the single line of code to run and is about 75% of my code's total run time. Since I have to run this code iteratively at times I'm interested in any suggestions to optimize how I'm using datestr, or an alternative.
Here's my code
MyDates = str2num(datestr(MyData{1,2},'yyyymmdd'));
yields - Elapsed time is 49.348078 seconds.
Brian on 17 Jan 2014
850,000 rows of a cell containing date text. It would be a little easier if the month came in the format 'mm', but it does not. For months 1-9, there is just a single number.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 17 Jan 2014
t = datevec(MyData{1,2});
MyDates = t(:,1) * 10000 + t(:,2) * 100 + t(:,3);
Brian on 20 Jan 2014
Ran it three times and now takes between 5.5 and 6.5 seconds. Again, thanks a lot. That's a dramatic improvement.

Sign in to comment.

More Answers (0)


Community Treasure Hunt

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

Start Hunting!

Translated by