Need help with datenum function

1 view (last 30 days)
I'm using Matlab R2015b. I have "date" variable ( 178x1 cell ) inside a struct named "data". It consists of one column with multiple rows that consists of dates in dd/mm/yyyy format. Now I'm trying to convert them into numbers using datenum command,
dates = datenum(data.date, 'dd/mm/yyyy');
but it returns me with error.. What am I doing wrong? I've attached a screenshot of what the data looks like. Thanks in advance.
  1 Comment
Adhi Ariawan
Adhi Ariawan on 29 Nov 2017
Additional note: I noticed I have non-date data on the first row.. How do I treat the first row as NaN data?

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 29 Nov 2017
Note that the first row is the string ‘date’. The datenum function will fail on that, so start with the second row instead.
  4 Comments
Adhi Ariawan
Adhi Ariawan on 29 Nov 2017
Sorry to bother again, your solution was great, but after using (2:end) I'm facing another problem:
Error using horzcat
Dimensions of matrices being concatenated are not consistent.
I got that error when trying to process the new 'date' with the other data inside of struct. So I was wondering if we can keep the first row as NaN or something. Thanks again.
Star Strider
Star Strider on 29 Nov 2017
My pleasure.
You have to use 2:end with every column.
No worries!

Sign in to comment.

More Answers (1)

Peter Perkins
Peter Perkins on 29 Nov 2017
If you have R2015b, you will likely be happioer using datetimes rather than datenums:
dates = datetime(data.date(2:end),'Format','dd/mm/yyyy')
You may also want to use a table, rather than a scalar struct, but hard to say without seeing more.

Tags

Community Treasure Hunt

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

Start Hunting!