0

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

2 回答 2

1

为此,您需要使用元胞数组。

Y = cell(7, 2);

在循环中,您可以执行以下操作:

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

请注意,您需要使用花括号来分配元胞数组中的位置。

于 2013-03-27T14:24:37.490 回答
0

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

%# 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)];
于 2013-03-27T14:27:26.563 回答