MATLAB Answers

0

Using Dates (if possible) as structure fields.

Asked by Ajpaezm on 18 Dec 2017
Latest activity Answered by 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

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.
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.
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.

2 Answers

Answer by 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.


Answer by 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.