Clustering Time Series with DTW

Technical Source
2 min readMar 23, 2023

--

Hi everyone.

I have ~161 time series of heart rates taken during a vocalization. I would like to sort these using the DTW algorithm. I have tried using the following to do this:

[idx,c,sumd,d] = kmedoids(dat,nclust,'Distance',@dtw);

But I end up with the following errors. I have done this before… with the exact same code. Does anyone know what I could be doing wrong?

Error using pdist (line 371)
Error evaluating distance function 'dtw'.
Error in internal.stats.kmedoidsDistObj/pdist (line 65)
out = pdist(X,distObj.distance);
Error in kmedoids>precalcDistance (line 575)
distVec = distObj.pdist(X);
Error in kmedoids>loopBody (line 546)
xDist = precalcDistance(X,distObj);
Error in kmedoids (line 362)
oneRun = loopBody(algorithm,initialize,X,k,distObj,pneighbors,numsamples,options,display,usePool,onlinePhase);
Error in dtwclassifier (line 9)
[idx,c,sumd,d] = kmedoids(dat,nclust,'Distance',@dtw);
Caused by:
Error using dtw (line 115)
The number of rows between X and Y must be equal when X and Y are matrices

Would it be correct to compute my own distance matrix using DTW, and perform K-Means clustering on that?

NOTE:-

Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help , Finance Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.

I think the error is due the reason that dtw function operates on 2 signals only and the output is always a scalar.

As per the description of ‘Distance’ Name Value Pair Argument of the kmedoids function:

“See pdist for the definition of each distance metric. kmedoids supports all distance metrics supported by pdist.”

And as per the description of Distance input argument of the pdist function for custom distance:

“@distfun

Custom distance function handle. A distance function has the form

function D2 = distfun(ZI,ZJ)
% calculation of distance
...

where

SEE COMPLETE ANSWER CLICK THE LINK

--

--

Technical Source
Technical Source

Written by Technical Source

Simple! That is me, a simple person. I am passionate about knowledge and reading. That’s why I have decided to write and share a bit of my life and thoughts to.

No responses yet