首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于pdist的MATLAB时间序列聚类处理

基于pdist的MATLAB时间序列聚类处理
EN

Stack Overflow用户
提问于 2015-01-03 07:13:16
回答 1查看 1.6K关注 0票数 0

我在利用MATLAB进行时间序列数据聚类时遇到了一个问题。

我正在尝试使用下面的DTW库作为我的距离测量方法http://www.mathworks.com/matlabcentral/fileexchange/16350-continuous-dynamic-time-warping

代码语言:javascript
复制
TimeData = csvread('testData10.csv',1,0)
Y = pdist(TimeData,@dtw_dist)
Z = linkage(Y,'complete')
dendrogram(Z) 

我制作了一个函数,以适应pdist距离函数的格式。

代码语言:javascript
复制
function d2 = dtw_dist(XI,XJ)
    [dist,D,k,w,rw,tw] = dtw2(XI,XJ,0)
    d2 = dist
end

但是我得到了错误信息

代码语言:javascript
复制
Error using pdist (line 373)
Error evaluating distance function 'dtw_dist'.

Caused by:
    Error using  - 
    Matrix dimensions must agree.

如果有人帮助我,我将受到伤害。

谢谢!

-2015.1.5更新

我将我的功能更改为调用dtw以适应格式,它可以工作。

代码语言:javascript
复制
function d2 = dtw_dist(XI,XJ)
    result =[];
    [m1,n1] = size(XI);
    [m2,n2] = size(XJ);
    for j=1:m2
        result = horzcat(result,dtw(XI,XJ(j,:)));
    end
    d2=result;    
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-03 16:19:56

不知道dtw2是什么是很难判断的。但是,这里有一个可能的原因:当您使用自定义距离函数调用pdist2时,它应该满足以下条件:

距离函数的形式必须是 function D2 = DISTFUN(ZI,ZJ) ,其参数为1×N向量ZI,包含X或Y的单个观测,M2×N矩阵ZJ,包含X或Y的多个观测值,并返回距离D2的M2×1向量,其Jth元素是观测子与ZJ之间的距离(J,:)。

检查dtw2是否实现了这一点,如果没有,则相应地修改它(或者使用一个循环而不是pdist2)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27752637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档