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