Save struct indexed name as a variable

This may sound Weird, Yet I need to save a struct index string as a variable. reason:The struct is formed as a query request for stock values - and in order to draw a valid graph the date is needed - the Date is the name of the struct Struct:
% code
end
stock.TimeSeries_Daily_
% Within
stock.TimeSeries_Daily_
% the struct continues as:
stock.TimeSeries_Daily_.x2017_12_01,
stock.TimeSeries_Daily_.x2017_11_30,
stock.TimeSeries_Daily_.x2017_11_29,
stock.TimeSeries_Daily_.x2017_11_28,
stock.TimeSeries_Daily_.x2017_11_27
and so on
Within final struct I get the needed value
Yet I need a variable to hold:
if true
% code
end
2017_11_30
2017_11_29
2017_11_28
and so on..
meaning I need to save the "name" of the struct into a different varible
How do I do this??
Thank you in Advance

2 个评论

This is rather awkward. Just use indexing, and store the date as data in its own right:
stock.TimeSeries_Daily(1).date = ...
stock.TimeSeries_Daily(2).date = ...
Or put the dates into one array. Why do you need to put the meta-data into the fieldnames?
The Data is sent that way from webread function. The date represent an open market day so I cant "choose" my own dates (due to historical events - holiday weekends and crises)

请先登录,再进行评论。

 采纳的回答

You can use FIELDNAMES:
FN = fieldnames(stock.TimeSeries_Daily_)
% process these names in more common date formats using datenum and datestr
num = datenum(FN,'xyyyy_mm_dd')
str = datestr(num,'yyyymmdd')

更多回答(1 个)

Are you required to store your data in this format? If you're using release R2016b or later I recommend using a timetable array instead. If you do store your data in a timetable named TT, you can access the list of times using:
TT.Properties.RowTimes

类别

帮助中心File Exchange 中查找有关 Calendar 的更多信息

产品

标签

Community Treasure Hunt

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

Start Hunting!

Translated by