我将单元格保存为Data
,Date
,Lat
,Lon
和uID
。有1210个细胞,每个细胞有365或366天。 1210个单元格是2008 - 2014年的站点总数(因此有很多重复 - 对于拥有2008 - 2014年数据的站点,它将显示7次)。每个单元格中的365或366行是多年来该位置的一年数据。
如何找到日期匹配的索引,并将所有Data
,uID
,Lat
和Lon
连接到列?现在,Data {i}将拥有一个站点一年的数据,但我希望将一天的数据,lat和lon信息合并到单独的Data
,Lat
和{ {1}}列,然后转到下一个单元格,该单元格将包含第二天的信息。这样,我最终可以通过遍历列来在一天内绘制数据。
几个细胞的样本
Lon
尺寸1x1210
Data
尺寸366x1
小样本:
Data{366}(1:14)
'8'
'10.9'
'9.7'
'8.9'
'10.2'
'8.8'
'13.5'
'6.7'
'10'
'15.8'
'11.6'
'12.9'
'11.8'
'10.2'
与Date{366}(1:14)
相同的尺寸
Data
这将是一个'01-Jan-2011'
'02-Jan-2011'
'03-Jan-2011'
'04-Jan-2011'
'05-Jan-2011'
'06-Jan-2011'
'07-Jan-2011'
'08-Jan-2011'
'09-Jan-2011'
'10-Jan-2011'
'11-Jan-2011'
'12-Jan-2011'
'13-Jan-2011'
'14-Jan-2011'
。所以uID
将是' 06-019-5001'。对于uID{366}
,日期将相同,但uID{367}
值会有所不同。
我想找到所有Data{367}
=' 01-Jan-2011'因为对于每个Date
,会有一个uID
=' 01-Jan-2011'以及其他Date
,Data
和Lat
。然后,我将所有这些连接到当天Lon
的列中(相同的Lat和Lon,但由于它们的大小相同,因此它们将是相同的过程)
答案 0 :(得分:0)
如果所有字符串单元格的单元格数组都具有相同的大小(包括uID),我会将所有内部单元格连接成一个字符串的单元格数组:
Data2 = cat(1,Data{:});
Date2 = cat(1,Date{:});
...
uID2 = cat(1,uID{:});
然后
idx = strcmp(uID2,'06-019-5001') & strcmp(Date2,'01-Jan-2011');
out = Data2(idx);
您还可以创建一个表(在已有的MATLAB版本中),以便更轻松地进行查询。