matlab - 后续时间序列匹配

标签 matlab machine-learning time-series euclidean-distance

我一直受困于 MATLAB 中时间序列的后续匹配(我是新手)。

我有两个时间序列:A(长度为a)和B(长度为b)。假设a远大于b。任务是找到从 A 到 B 最近的窗口(根据欧几里得度量)。

为了做到这一点,我构造了额外的矩阵 C 来存储 A 中长度为 b 的所有子序列,然后使用 pdist2(C, B)。显然它运行缓慢并且需要太多内存。

所以我有几个问题:

  1. 如何获得没有循环的C(实际上是 reshape A)?

  2. 解决这个问题的常用方法有哪些? (最好在 MATLAB 中,但其他环境也是可能的)

感谢您的帮助!

最佳答案

对于第一个问题,你可以尝试

tmp = repmat(A,1,b);
C = reshape([tmp zeros(1,b)],a,b);
C = C(1:(a-b+1),:);

此外,与这个非常好的解决方案相比,pdist2 非常慢:Efficiently compute pairwise squared Euclidean distance in Matlab

关于matlab - 后续时间序列匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28367743/

相关文章:

python - 概率 SVM、回归

python - Bokeh 中的 TimeSeries 使用带索引的数据框

matlab - 通过调用 Matlab 在 Fortran 循环中创建实时绘图

matlab - MATLAB 教程中的 SIFT 实现

image - 计算图像中圆心的坐标

datetime - HighChart 中具有相同 xAxis 数据的几个系列

python - 如何获取用户 session 的 Pandas TimeSeries(使用 Pandas 或 Numpy)

matlab - 集成一个不直接按元素操作的函数

apache-spark - K-Means 聚类偏向于一个中心

machine-learning - 当损失为均方误差 (MSE) 时,什么函数定义 Keras 中的准确性?