Dynamic time warping for JavaScript. A simple usecase would be Touch signature identification with JavaScript for example.
Several quick start options are available:
- Download the latest release.
- Clone the repo:
git clone https://github.com/GordonLesti/dynamic-time-warping.git
. - Install with npm:
npm install dynamic-time-warping
. - Install with Bower:
bower install dynamic-time-warping
.
Include script (unless you are packaging scripts somehow else):
<script src="/path/to/dynamic-time-warping.js"></script>
The plugin can also be loaded as AMD or Node module.
DynamicTimeWarping
needs two arrays containing objects of the the same type and function that calculates the distance
between two objects and returns a float.
var ser1 = [ 9, 93, 15, 19, 24 ];
var ser2 = [ 31, 97, 81, 82, 39 ];
var distFunc = function( a, b ) {
return Math.abs( a - b );
};
var dtw = new DynamicTimeWarping(ser1, ser2, distFunc);
Will return the distance of the dynamic time warping as float.
// 108
var dist = dtw.getDistance();
Will return the path of the dynamic time warping as array of arrays with two integers.
// [ [ 0, 0 ], [ 1, 1 ], [ 1, 2 ], [ 1, 3 ], [ 2, 4 ], [ 3, 4 ], [ 4, 4 ] ]
var dist = dtw.getPath();
Please see CHANGELOG for more information what has changed recently.
$ grunt
Please see CONTRIBUTING and CONDUCT for details.
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.