我正在根据gui输入定义一些变量,如下所示:
day1name=get(handles.day1name,'String');
day1start = datenum(get(handles.day1start,'String'));
day1end = datenum(get(handles.day1end,'String'));
day1data =Data(day1start:day1end,:);
day1datamodified = day1data*xyz
其中day1datamodified是一个nxn双数组。
基本上我想要这几天,以及几个不同的条目。除了复制粘贴这15天,并制作15个不同的变量。有没有办法让day1start说day2start,有点像一天(i)从i = 1:15开始?然后构建一个更大的结构数组,其中每天都有很少的数据数组,由day1name条目标记,然后我可以操作并绘制到我心中的内容?我可以为此使用一些for循环脚本,但是如何将变量插入到我的变量中?
编辑:数据是我导入的一个更大的excel文件,它有一个时间列,我从当天的开始/结束时间获取数据块。
答案 0 :(得分:0)
在包含每天所有变量的结构中使用动态字段引用怎么样?我们称之为结构Day
。
对于每种类型的数据(名称,开头,结尾......),使用sprintf
创建一个字符串,以提供对handles
结构的正确元素的引用。
例如,当k = 1
:
DayName = day1name
就这样就在您获得String
handles.day1name
属性for k = 1:15
DayName = sprintf('day%iname',k);
Day(k).name=get(handles.(DayName),'String'); %// The () are important here!
DayStart = sprintf('day%istart',k);
Day(k).start = datenum(get(handles.(DayStart),'String'));
DayEnd = sprintf('day%iend',k);
Day(k).end = datenum(get(handles.(DayEnd),'String'));
Day(k).data = Data(Day(k).start:Day(k).end,:);
Day(k).datamodified = Day(k).data*xyz
end
属性之后的那一行,对于每个变量,每天都是如此。
{{1}}
希望我的解释足够清楚!