【发布时间】:2013-12-17 19:49:58
【问题描述】:
我有两组时间序列数据,按第一列中的日期索引;值在第二个。日期以 yyyymmdd 格式表示(例如珍珠港日是 19411207) 两个时间序列重叠,但两者都不是另一个的子集,即使在重叠中,也可能缺少日期,并且由于格式的原因,存在间隙在数字序列中。由于这些日期最终只是整数,为了便于阅读,我将在下面替换为小数字。
我想把这两个矩阵(一个 26622x2 和一个 38067x2)变成一个单一的三列矩阵(结果是 38103x3。)
我要的合并是这样的:
Index AVal Index BVal Index AVal BVal
1 2.5 3 6.5 1 2.5
2 3.4 + 5 8.9 = 2 3.4
4 5.6 7 9.1 3 6.5
5 7.8 8 7.1 4 5.6
7 8.00 5 7.8 8.9
7 8.00 9.1
8 7.1
在 Excel 中,我会使用 VLookup 来执行此操作。我可以想象在 Matlab 中使用大量条件、循环和存储索引的方法,但我想知道是否可能没有一组非常简单的连接/相交类型命令可以完成同样的事情。
有什么想法吗?
【问题讨论】:
-
您真的使用表格(这是 Matlab 2013b 的新功能)还是矩阵?
-
是否有重复的日期(在一个源表中,不重叠)?您的示例在任一表中均未显示重复。
-
Daniel - 我的意思是矩阵 - 我还在使用 Matlab 2010,不知道新的表格。很抱歉造成混乱。
标签: matlab time-series