資源簡介
以前上傳的代碼估計下載的人多, 被設置成了50個積分, 這里重新上傳個. 經過測試的, 能夠放心使用!
代碼片段和文件信息
function?[distpath]?=?dtw(abr)
%%?This?function?is?to?compute?the?two?time?series?distance?using?DTW
%?input:??a--?a?time?serise
%?????????b--?a?time?serise
%?????????r--?warping?window
%?output:?dist--?the?distance?of?a?and?b
%?????????path--?the?warping?path?matrix?which?align?points
%%?initializing
a????????????????????=?zscore(a);
b????????????????????=?zscore(b);
n????????????????????=?length(a);
m????????????????????=?length(b);
r????????????????????=?ceil(min([nm])*r);
Dist(1:n1:m)????????=?inf;
%%?construct?the?distance?matrix
for?i?=?1?:?n
????for?j?=?1?:?m?%max([1i-r]):min([mi+r])%這里是為了減少計算,但是我做的實驗幾乎都是要使用r=1的。(并且發現一個問題,當兩條時間序列長度差別特別大的時候,這里的r限制不起作用,計算都得inf,說明會導致過度彎曲)
%?????????????Dist(ij)=sqrt((a(i)-b(j))^2);?
????????Dist(ij)?=?(a(i)-b(j))^2;
????end
end
%%?construct?the?accumulative?matrix
for?i?=?1?:?n
????for?j?=?max([1i-r])?:?min([mi+r])
????????if?i?==?1?&&?j?==?1
????????????continue;
????????end
????????if?i?==?1???%第一行的累積距離
??????????
- 上一篇:matlab讀取avi的程序
- 下一篇:matlab實現DTW算法
評論
共有 條評論