Splitting date in a table into different columns

50 views (last 30 days)
Hi all,
I'm using the 2019b version of Matlab and I'm currently handling a large dataset in a .csv format, which looks like this:
Date Latitude Longitude Period
01/01/1980 23.9 57.3 2.32
01/01/1980 23.9 57.4 2.37
01/01/1980 24 57.3 2.54
01/01/1980 24 57.4 2.77
01/02/1980 23.9 57.3 2.18
01/02/1980 23.9 57.4 2.45
01/02/1980 24 57.3 2.98
01/02/1980 24 57.4 2.66
I've loaded it using readtable, which works just fine:
T=readtable(MyFile);
date=T(:,1);
I need to split the date into separate columns containing the day, month and year respectively, as later I'm planning to do group averaging of the data (i.e. calculate mean values of Period for different months, years and locations). I've tried:
a=datetime(date,'InputFormat','dd/MM/yyyy');
but I get the error message:
Error using datetime (line 659)
Input data must be a numeric array, a string array, a cell array containing character vectors, or a char matrix.
I'm not sure how to resolve it. Any help on this matter would be much appreciated!
Maja
  1 Comment
Stephen23
Stephen23 on 1 Oct 2020
You used the wrong kind of brackets. Instead of parentheses (which returns a table):
date=T(:,1);
you need to use curly braces (which returns whatever data type that column has):
date=T{:,1};

Sign in to comment.

Accepted Answer

Ameer Hamza
Ameer Hamza on 1 Oct 2020
Edited: Ameer Hamza on 1 Oct 2020

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by