如何将日期和数据附加到数组?

时间:2013-03-27 14:09:42

标签: arrays matlab date append

我有以下代码,并希望逐行将输出附加到数组。每个循环迭代应将第一个日期放在第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  

我想让Y看起来像:

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

2 个答案:

答案 0 :(得分:1)

您需要使用单元格数组。

Y = cell(7, 2);

然后你可以在循环中执行:

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

请注意,您需要使用花括号来指定单元格数组中的位置。

答案 1 :(得分: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)];