2013-03-27 75 views
0

我有下面的代码,并希望将输出附加到逐行的数组。每个循环迭代应将第1个日期放置在第1行第1列中,并且第1个R值应放置在第1行第2列中。下一次迭代将在后续行中放置附加信息。列条目的数量将被预先确定,但是行条目的数量将是不确定的。请指教。如何将日期和数据附加到数组?

X = [41334:41340]; 
Y = []; 
exceldate = X; 
date = x2mdate(exceldate); 

for i=1:1:7 
    curDate = datestr(date,26); 
    %Write curDate value to Row i, column 1 of Y 
    R(i) = i+1; 
    %Write R(i) value to Row i, column 2 of Y 
end 

我试图让Ÿ样子:

2013/03/01 2 
2013/03/02 3 
2013/03/03 4 
2013/03/04 5 
2013/03/05 6 
2013/03/06 7 
2013/03/07 8 

回答

1

你需要使用一个单元阵列此。

Y = cell(7, 2); 

在循环中,你可以再做:

Y{i, 1} = curDate; 
Y{i, 2} = R(i); 

请注意,你需要使用大括号分配给单元阵列中的位置。

+0

谢谢您的信息! – Aaron 2013-05-29 01:35:03

+0

不客气。请考虑接受答案,如果它解决了你的问题。 – BjoernH 2013-05-29 09:34:56

0

您需要使用cell array将文本(您的日期字符串)和数值组合到一个数组中。

%# initialize sample date cell array 
dates = cellfun(@datestr,{now,now+1,now+2},'UniformOutput',false)'; 
%# intialize sample data array 
numVals = [1:3]'; 
%# combine 
out = [dates,num2cell(numVals)];