在matlab中将变化的数字插入变量中?

时间:2015-03-11 17:48:11

标签: arrays matlab

我正在根据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文件,它有一个时间列,我从当天的开始/结束时间获取数据块。

1 个答案:

答案 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}}

希望我的解释足够清楚!