今天学妹过来问我DTW算法相关的事,然后我就去看了下
DTW算法
本质上是两段数据,要对数据进行拉伸,让两段数据相似程度最高。
作者的代码跑出来:
拉伸后长度变成45,应该就是路径的长度,路径如下:
白色的就是路径。
作者的代码中画像素图部分的代码:
Matlab
figure('Name','DTW - Accumulated distance matrix and optimal path', 'NumberTitle','off');
main1=subplot('position',[0.19 0.19 0.67 0.79]); //subplot('position',[left bottem width height])表示在当前图形的位置(position)上画图,
image(D); //image会改变原来图像的比例
cmap = contrast(D); //函数返回一灰度色图cmap,该色图与当前色图D有相同的维数
colormap(cmap); % 'copper' 'bone', 'gray' imagesc(D); //调整图片灰度
注意:image函数画图范围为0~64,超出范围全为黄色。用实验室数据结果为:
随后在转变为灰度图。
添加柱状说明条
colorb1=subplot('position',[0.88 0.19 0.05 0.79]); // 选定柱状条位置
colorbar(colorb1);
caxis([mn,mx])
注意caxis来限定柱状条的范围,mn最小值,mx最大值。看灰度图柱状条的位置就能看出来
原代码中还有一些用来设置图像属性的(详见set语句)
set(main1, 'FontSize',7, 'XTickLabel','', 'YTickLabel',''); //设置main1图中字体大小为7号,x刻度标签为‘’,y刻度标签为‘’;