找到值匹配的位置并连接到列向量MATLAB

时间:2014-04-30 17:36:20

标签: matlab concatenation

我将单元格保存为DataDateLatLonuID。有1210个细胞,每个细胞有365或366天。 1210个单元格是2008 - 2014年的站点总数(因此有很多重复 - 对于拥有2008 - 2014年数据的站点,它将显示7次)。每个单元格中的365或366行是多年来该位置的一年数据。

如何找到日期匹配的索引,并将所有DatauIDLatLon连接到列?现在,Data {i}将拥有一个站点一年的数据,但我希望将一天的数据,lat和lon信息合并到单独的DataLat和{ {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'以及其他DateDataLat。然后,我将所有这些连接到当天Lon的列中(相同的Lat和Lon,但由于它们的大小相同,因此它们将是相同的过程)

1 个答案:

答案 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版本中),以便更轻松地进行查询。