DTW代码 Python
时间: 2023-07-10 12:06:47 浏览: 61
Python-softDTW动态时间规整DTW的Python实现
4星 · 用户满意度95%
以下是一个简单的 Python 实现 DTW 的代码:
```python
import numpy as np
def dtw(s, t):
n, m = len(s), len(t)
dtw_matrix = np.zeros((n+1, m+1))
for i in range(n+1):
for j in range(m+1):
dtw_matrix[i, j] = float('inf')
dtw_matrix[0, 0] = 0
for i in range(1, n+1):
for j in range(1, m+1):
cost = abs(s[i-1]-t[j-1])
dtw_matrix[i, j] = cost + min(dtw_matrix[i-1, j], dtw_matrix[i, j-1], dtw_matrix[i-1, j-1])
return dtw_matrix[n, m]
```
这里的 `s` 和 `t` 分别表示两个序列,可以是任何类型的序列,但需要保证它们可以进行减法操作。函数中先初始化一个 $n+1 \times m+1$ 的矩阵,用 $inf$ 填充。然后用动态规划的思想,从左上角开始依次计算每个位置的 DTW 值,并存储到矩阵中。最终返回右下角的 DTW 值。
阅读全文