MATLAB Answers

Using Dates (if possible) as structure fields.

16 views (last 30 days)
Ajpaezm
Ajpaezm on 18 Dec 2017
Answered: Peter Perkins on 19 Dec 2017
I'd like to know if there's a way to use dates as struct fields. The data I want to store in the struct comes in a daily basis and I'd like to store it inside a struct. The thing is I cannot have field names such as "12/17/2017", nor "12_17_2017" because none of them begin with a letter and in the 1st case I have special characters such as "/" that are forbidden.
Is there a workaround you could suggest to save the data into a struct closely to the way I describe it?
Thanks for your time!

  3 Comments

Stephen Cobeldick
Stephen Cobeldick on 18 Dec 2017
Note that a much better date order is to use ISO 8601 format yyyy-mm-dd. This has the two major advantages that it is internationally unambiguous and also sorts correctly into chronological order. The format that you are using is neither of these.
Ajpaezm
Ajpaezm on 18 Dec 2017
Thanks for pointing that out Stephen. I can re-arrange the formatting of the dates if required by using the ISO 8601 standard, but some API's I'm using to request data use dates as inputs and have a different format for their request. Sometimes the requirements are not standarized.
Walter Roberson
Walter Roberson on 19 Dec 2017
Using datetime objects helps in those cases, as you can can simply set the Format property to the format you need for the purpose without having to do any explicit conversion of formats.

Sign in to comment.

Answers (2)

Walter Roberson
Walter Roberson on 18 Dec 2017
See https://www.mathworks.com/help/matlab/ref/genvarname.html
Or prefix the date with a character and use strrep or regexprep to change the delimiters. Or use datestr to change the date format or change the Format property of a datetime object.

  0 Comments

Sign in to comment.


Peter Perkins
Peter Perkins on 19 Dec 2017
It's quite possible that you could use a timetable, in which each row is labelled with a datetime. Hard to say without more info about what you are doing.

  0 Comments

Sign in to comment.

Sign in to answer this question.


Translated by