MATLAB Answers

Sue MM
0

Issue with loading datetime from table

Asked by Sue MM
on 23 Jul 2019
Latest activity Answered by Eric Sofen on 29 Jul 2019
Hi, I have a simple 3 column CSV file with column 1 = names, column 2= address column = dates. I load the CSV using readtable()
Data= readtable(FileMaker.csv);
C = table2cell(data)
Dates = C(:,3)
DateId = datetime(dates)
However I keep getting the error using datetime(639) input data must be numeric array, string array, cell array containing character vectors, or char matrix.
The cell for dates is showing up as a datetime when I look at the workspace but I’m not sure how to overcome the error message. Any help would be greatly appreciated!

  2 Comments

FYI , the below is not a valid MATLAB syntax
Dates = C(:,)
Typo in the question meant C(:,3)

Sign in to comment.

2 Answers

Answer by Joel Handy on 23 Jul 2019
Edited by Joel Handy on 23 Jul 2019

There appears to be two issues with your code. The first is that datetime doesn't take a cell array of numbers so you need to convert the cell array containing datetimes to a numeric array. The second issue is that datetime needs you to explicitly tell it that you are giving it datenums. I think the following code will work for you.
Dates = [C{:,3}];
% OR
Dates = cell2mat(C(:,3));
DateId = datetime(Dates, 'ConvertFrom', 'datenum')

  0 Comments

Sign in to comment.


Answer by Eric Sofen on 29 Jul 2019

There's no reason to go through cell to pass the datenums into datetime:
Data = readtable(FileMaker.csv);
Dates = datetime(Data.Var3, 'ConvertFrom', 'datenum') % assuming default variable names in the table.

  0 Comments

Sign in to comment.