在 MATLAB 中创建时间表数组

Creating array of timetables in MATLAB

我正在尝试对一系列 timetable 对象进行一些分析。每个都有可能不同的日期范围(它们代表时间序列的观察)。我想将这个 timetable 对象数组传递给一个函数。

使用 quandl 插件:

>> conn = quandl(<YOUR_API_KEY_HERE>);
>> z1 = history(conn, 'ZILLOW/M1300_MPPRSF');
>> z2 = history(conn, 'ZILLOW/M1300_MPPRAH');

然后尝试获取这两个时间序列并将它们分组到一个数组中(将它们连接在一起):

>> [z1, z2]
Duplicate table variable name: 'Value'.

有没有一种方法可以做到这一点,这样我就可以将多个 timetables 保存到一个向量中,这样我就可以在不使用函数中的 varargin 的情况下迭代它们?

谢谢。

如果变量名称相同,则不能水平连接两个时间表。 我建议您创建一个时间表元胞数组并改用它。

>> {z1 z2} 

您可能会发现 this 有关数据类型的文档页面很有用。

一种选择是创建时间表的元胞数组,然后使用 cellfun 执行分析。例如,如果您想对时间表执行 lag 计算,您可以执行以下操作:

myData = {z1, z2};
myLags cellfun(@lag, myArray);