Java实现DTW
来源:互联网 发布:大数据时代 调研报告 编辑:程序博客网 时间:2024/05/17 02:29
1、DTW类
Dtw.java
-----------------------------------------------------------------
public class Dtw {
public double getMin(double a, double b, double c) {
double min = a;
if (b > a)
min = a;
else if (c > b) {
min = b;
} else {
min = c;
}
return min;
}
public double getDistance(double[] seqa, double[] seqb) {
double distance = 0;
int lena = seqa.length;
int lenb = seqb.length;
double[][] c = new double[lena][lenb];
for (int i = 0; i < lena; i++) {
for (int j = 0; j < lenb; j++) {
c[i][j] = 1;
}
}
for (int i = 0; i < lena; i++) {
for (int j = 0; j < lenb; j++) {
double tmp = (seqa[i] - seqb[j]) * (seqa[i] - seqb[j]);
if (j == 0 && i == 0)
c[i][j] = tmp;
else if (j > 0)
c[i][j] = c[i][j - 1] + tmp;
if (i > 0) {
if (j == 0)
c[i][j] = tmp + c[i - 1][j];
else
c[i][j] = tmp + getMin(c[i][j - 1], c[i - 1][j - 1], c[i - 1][j]);
}
}
}
distance = c[lena - 1][lenb - 1];
return distance;
}
}
2、测试
Test.java
-----------------------------------------------------------------
public class Test {
public static void main(String[] args) {
Dtw dtw = new Dtw();
double[] x = { 3, 5, 6, 7, 7, 1 };
double[] y = { 3, 6, 6, 7, 8, 1, 1 };
double[] z = { 2, 5, 7, 7, 7, 7, 2 };
System.out.println(dtw.getDistance(x, y));
System.out.println(dtw.getDistance(x, z));
}
}
- DTW的java实现
- Java实现DTW
- DTW算法java版
- DTW
- DTW
- DTW
- DTW
- DTW
- DTW算法的原理实现
- fast-DTW算法 python实现
- DTW算法时序应用与实现
- DTW算法实现及语音模板匹配
- DTW的基本原理及其C语言实现
- 基于DTW算法的语音识别原理与实现
- DTW(Dynamic Time Warping / 动态时间归整) python实现
- DTW(Dynamic Time Warping / 动态时间归整) python实现
- DTW介绍
- DTW 讲解
- C++学习日记8——类对象和类指针的区别
- 中缀表达式转换后缀表达式
- hjr教程-MUD游戏(一):Evennia框架建立一个MUD游戏与游戏基本组成
- u盘在linux系统下文件只读方式的解决方案
- 你让一些人为你工作了七天,你要用一根金条作为报酬。金条被分成七小块,每天给出一块。 如果你只能将金条切割两次,你怎样分给这些工人?
- Java实现DTW
- CMake混合编译C/C++与object-C
- FPGA之特殊管脚
- Array数组对象
- Chrome 键盘快捷键
- 正确编写Designated Initializer的几个原则
- 大数据面试题
- 常用方法和一些快捷键
- 有两个房间,一间房里有三盏灯,另一间房有控制着三盏灯的三个开关, 这两个房间是分割开的,从一间里不能看到另一间的情况。 现在要求受训者分别进这两房间一次,然后判断出这三盏灯分别是由哪个开关控制的。