Need help with datenum function

1 visualizzazione (ultimi 30 giorni)
Adhi Ariawan
Adhi Ariawan il 29 Nov 2017
Commentato: Star Strider il 29 Nov 2017
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 Commento
Adhi Ariawan
Adhi Ariawan il 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?

Accedi per commentare.

Risposta accettata

Star Strider
Star Strider il 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 Commenti
Adhi Ariawan
Adhi Ariawan il 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 il 29 Nov 2017
My pleasure.
You have to use 2:end with every column.
No worries!

Accedi per commentare.

Più risposte (1)

Peter Perkins
Peter Perkins il 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.

Categorie

Scopri di più su Time Series Objects in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by