Cell array of dates in string format to date array
Ältere Kommentare anzeigen
I've pulled some data from a spreadsheet and created a new cell array from the first column, which is dates in the format 'dd/MM/yyyy' (data attached) and then I've tried to convert those to dates:
[~, ~, raw] = xlsread('file.xlsx', 'sheet');
date = {rawFull{2:end,1}}';
date2 = datetime(date, 'InputFormat', 'dd/MM/yyyy');
But I get the following error:
Error using datetime (line 629) Input data must be a numeric or a date/time string or a cell array or char matrix containing date/time character vectors.
I've had a look using a smaller dummy array that works correctly:
dummyOld = {'01/10/2017'; '01/10/2017'};
dummyNew = datetime(dummyOld, 'InputFormat', 'dd/MM/yyyy');
I assume the difference between working and not working is something to do with the quotation marks shown below, but I'm not sure how to overcome that? Any help (with an explanation of what I'm missing) is much appreciated!

3 Kommentare
Lauren Dransfield
am 1 Okt. 2018
Bearbeitet: Lauren Dransfield
am 1 Okt. 2018
No problem, if you want to avoid tables that's fine. One of the advantages with tables is that you can mix different classes, so you do not have to work with "raw data". You can easily transfer the data from a table to a struct or cell array post-import if you prefer to work with such variables.
Akzeptierte Antwort
Weitere Antworten (1)
Peter Perkins
am 1 Okt. 2018
0 Stimmen
Lauren, is there a reason you want to avoid using tables? You really will be much happier using readtable, especially in recent versions, even if just to do the import.
Kategorien
Mehr zu Data Type Identification finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!