Using Dates (if possible) as structure fields.

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

Stephen23
Stephen23 on 18 Dec 2017
Edited: Stephen23 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.
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.

Answers (2)

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

Categories

Products

Asked:

on 18 Dec 2017

Answered:

on 19 Dec 2017

Community Treasure Hunt

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

Start Hunting!