【问题标题】:Compare common value of a timeseries比较时间序列的共同值
【发布时间】:2012-07-28 03:52:40
【问题描述】:

我有不同开始时间的时间序列,我想找出它们的共同部分。

前:

a=[ 0,1,2,3,4,5,6,7]
b=[ 2,3,4,5,6,7,8,9]
c=[-1,0,1,2,3,4,5,6]

result=[2,3,4,5,6]

是否有 matlab 函数可以做到这一点?


编辑:

我找到了一个算法,但它一直在占用我的记忆力来分析 6 个 100000 个点的时间序列。是算法写得不对还是最长公共子串问题是这样的?

【问题讨论】:

  • 我认为您想寻找一种算法来解决“约束最长公共子序列 (LCS) 问题”

标签: matlab time-series intersection


【解决方案1】:

这个问题被称为最长公共子串问题。

http://en.wikipedia.org/wiki/Longest_common_substring_problem

实现起来并不难,你也可以在网上找到 Matlab 代码。重要的是要注意,如果你知道如何求解 2 个时间序列,你就会知道如何求解 N,因为:c(x,y,z) = c(x,c(y,z))

【讨论】:

  • 谢谢你,我找到的唯一的东西是 2 个时间序列。我正在研究比较其中的 6 个。
  • @user1245845 我认为这不是问题,因为 c(x,y,z) = c(x,c(y,z))
  • 我找到了一个算法。但分析 6 个 100000 点的时间序列需要永远,而且我的记忆力已经饱和。算法是否写得不正确,或者是最长常见子串问题的方式?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
  • 2014-10-08
  • 1970-01-01
  • 2022-11-29
  • 1970-01-01
  • 1970-01-01
  • 2020-07-16
相关资源
最近更新 更多