Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MatLab cells date format conversion

I have a lot of dates in MatLab (over 2 millions). Al these dates are in a cell array in 'yyyymmdd' format, and I want to convert them to 'yyyy-mm-dd' format and put this result in a cell array (not in a char matrix).

I know that I can use

temp = datestr(datenum(datesArray,'yyyymmdd'),'yyyy-mm-dd'), 

and then use

mat2cell(temp, ones(1,n),10), 

where n is the number of rows of datesArray (in this case approximately 2 millions) in order to get my result, but this approach is very slow.

So, I want to know a different way to do that.

Regards.

like image 268
Transfinito Avatar asked May 02 '26 19:05

Transfinito


1 Answers

You could avoid for loops by using cellfun, let's say your date cell array is

dates = {'20120101', '20120102', '20120103'}

You can then convert them to your format as

cellfun(@(x)[x(1:4),'-',x(5:6),'-',x(7:8)], dates, 'Uniform', false)

Hope that helps.

like image 131
radarhead Avatar answered May 05 '26 10:05

radarhead



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!