【问题标题】:Time series generation matlab时间序列生成matlab
【发布时间】:2013-08-02 10:34:15
【问题描述】:

我有一个包含多个列数据条目的 Excel 工作表。数据成对排列,第一列包含日期,第二列包含与该日期对应的时间序列数据。因此,例如时间序列 1 将位于 A 和 B 列中,其中 is 是日期,B 是数据。在 D 和 E 列包含时间序列 2 的条目之前,C 列是空白的,依此类推…… 如何将这些合并到 Matlab 中日期匹配的单个文件中?具体来说,我希望第一列包含日期,其他列包含数据。我试图用 ftsmerge 函数来做到这一点,但到目前为止失败了..

【问题讨论】:

  • 您是否正在使用xlsread 读取数据?您能否编写一些代码或描述您的导入过程?
  • 是的,xlsread。我可以使用 "[~,~,raw] = xlsread(fileName)" 导入整个工作表

标签: matlab merge time-series


【解决方案1】:

您可以像这样获取日期:dates = [raw{:,1}]' 和像这样的数据 data = reshape([raw{:, 2:3:end}]', size(raw,1), []); 以获得正常的 matlab 矩阵,以防您想在 matlab 中操作它们。

否则,如果您只想将它​​们直接发送回 excel,那么:

data = [raw(:,1) reshape(raw(:, 2:3:end)];
xlswrite(...blablafilename_etc..., data);

但在这种情况下,您应该使用 VBA 宏:/

【讨论】:

  • 谢谢@Dan。那太好了。但是,这是否与相应系列的日期相匹配?由于日期可能并不完全一致——这是我使用“合并”的逻辑。
  • @Mary 合并是什么意思?您可以将您尝试过的代码添加到您的问题中吗?不,如果日期不对齐,这将不起作用。如果你有统计工具箱,你可以使用datasets,然后使用join……否则你可以手动完成。但是你确定你需要matlab吗?
  • 谢谢。合并在金融工具箱中。只有当所有时间序列都包含该特定日期的数据时,它才会自动包含数据。我也有统计工具箱,所以我也欢迎提出建议。不幸的是,我的代码比贡献代码更令人困惑。
  • 听起来很合适,发布您的代码并告诉我们哪里出错了
猜你喜欢
  • 2016-12-01
  • 1970-01-01
  • 2012-12-05
  • 2018-01-13
  • 2017-09-13
  • 2018-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多