我的时间序列没有相同的开始时间,我想找到它们的共同部分。
前任:
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 点的时间序列。算法是否写得不正确,还是最长常见子串问题的方式?
我的时间序列没有相同的开始时间,我想找到它们的共同部分。
前任:
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 点的时间序列。算法是否写得不正确,还是最长常见子串问题的方式?
该问题称为最长公共子串问题。
http://en.wikipedia.org/wiki/Longest_common_substring_problem
实现起来并不难,你也可以在网上找到 Matlab 代码。重要的是要注意,如果您知道如何求解 2 个时间序列,那么您就知道如何求解 N,因为:c(x,y,z) = c(x,c(y,z))