2

我的时间序列没有相同的开始时间,我想找到它们的共同部分。

前任:

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 点的时间序列。算法是否写得不正确,还是最长常见子串问题的方式?

4

1 回答 1

1

该问题称为最长公共子串问题。

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

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

于 2012-07-28T04:01:37.790 回答