⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dtwplot3.html

📁 一个关于数据聚类和模式识别的程序,在生物化学,化学中因该都可以用到.希望对大家有用,谢谢支持
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"                "http://www.w3.org/TR/REC-html40/loose.dtd"><html><head>  <title>Description of dtwPlot3</title>  <meta name="keywords" content="dtwPlot3">  <meta name="description" content="dtwPlot2: Plot the result of DTW of two pitch/MFCC vectors">  <meta http-equiv="Content-Type" content="text/html; charset=big5">  <meta name="generator" content="m2html &copy; 2003 Guillaume Flandin">  <meta name="robots" content="index, follow">  <link type="text/css" rel="stylesheet" href="../m2html.css"></head><body><a name="_top"></a><div><a href="../index.html">Home</a> &gt;  <a href="index.html">dcpr</a> &gt; dtwPlot3.m</div><!--<table width="100%"><tr><td align="left"><a href="../index.html"><img alt="<" border="0" src="../left.png">&nbsp;Master index</a></td><td align="right"><a href="index.html">Index for dcpr&nbsp;<img alt=">" border="0" src="../right.png"></a></td></tr></table>--><h1>dtwPlot3</h1><h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong>dtwPlot2: Plot the result of DTW of two pitch/MFCC vectors</strong></div><h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong>function dtwplot2(vec1, vec2, dtwPath) </strong></div><h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="fragment"><pre class="comment"> dtwPlot2: Plot the result of DTW of two pitch/MFCC vectors
    Usage: dtwplot2(vec1, vec2, DTWpath)

    For example:
        vec1=[71 73 75 80 80 80 78 76 75 73 71 71 71 73 75 76 76 68 76 76 75 73 71 70 70 69 68 68 72 74 78 79 80 80 78];
        vec2=[69 69 73 75 79 80 79 78 76 73 72 71 70 70 69 69 69 71 73 75 76 76 76 76 76 75 73 71 70 70 71 73 75 80 80 80 78];
        [minDist1, dtwPath1, dtwTable1] = dtw1(vec1, vec2);
        [minDist2, dtwPath2, dtwTable2] = dtw2(vec1, vec2);
        subplot(2,1,1); dtwplot3(vec1, vec2, dtwPath1); title('DTW alignment by dtw1'); view(-10, 70);
        subplot(2,1,2); dtwplot3(vec1, vec2, dtwPath2); title('DTW alignment by dtw2'); view(-10, 70);</pre></div><!-- crossreference --><h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>This function calls:<ul style="list-style-image:url(../matlabicon.gif)"><li><a href="dtw1.html" class="code" title="function [minDist, dtwPath, dtwTable] = dtw1(vec1, vec2, beginCorner, endCorner, plotOpt)">dtw1</a>	dtw1: Dynamic time warping with local paths of 27, 45, and 63 degrees</li><li><a href="dtw2.html" class="code" title="function [minDist, dtwPath, dtwTable]=dtw2(vec1, vec2, beginCorner, endCorner, plotOpt)">dtw2</a>	dtw2: Dynamic time warping with local paths of 0, 45, and 90 degrees</li></ul>This function is called by:<ul style="list-style-image:url(../matlabicon.gif)"></ul><!-- crossreference --><h2><a name="_subfunctions"></a>SUBFUNCTIONS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><ul style="list-style-image:url(../matlabicon.gif)"><li><a href="#_sub1" class="code">function selfdemo</a></li></ul><h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function dtwplot2(vec1, vec2, dtwPath) </a>0002 <span class="comment">% dtwPlot2: Plot the result of DTW of two pitch/MFCC vectors</span>0003 <span class="comment">%    Usage: dtwplot2(vec1, vec2, DTWpath)</span>0004 <span class="comment">%</span>0005 <span class="comment">%    For example:</span>0006 <span class="comment">%        vec1=[71 73 75 80 80 80 78 76 75 73 71 71 71 73 75 76 76 68 76 76 75 73 71 70 70 69 68 68 72 74 78 79 80 80 78];</span>0007 <span class="comment">%        vec2=[69 69 73 75 79 80 79 78 76 73 72 71 70 70 69 69 69 71 73 75 76 76 76 76 76 75 73 71 70 70 71 73 75 80 80 80 78];</span>0008 <span class="comment">%        [minDist1, dtwPath1, dtwTable1] = dtw1(vec1, vec2);</span>0009 <span class="comment">%        [minDist2, dtwPath2, dtwTable2] = dtw2(vec1, vec2);</span>0010 <span class="comment">%        subplot(2,1,1); dtwplot3(vec1, vec2, dtwPath1); title('DTW alignment by dtw1'); view(-10, 70);</span>0011 <span class="comment">%        subplot(2,1,2); dtwplot3(vec1, vec2, dtwPath2); title('DTW alignment by dtw2'); view(-10, 70);</span>0012 0013 <span class="comment">%    Roger Jang, 20030521, 20070522</span>0014 0015 <span class="keyword">if</span> nargin&lt;1; <a href="#_sub1" class="code" title="subfunction selfdemo">selfdemo</a>; <span class="keyword">return</span>; <span class="keyword">end</span>0016 0017 <span class="keyword">if</span> size(vec1,1)&gt;1 | size(vec2,1)&gt;1,    <span class="comment">% Inputs are MFCC matrices for ASR</span>0018     vec1=zeros(1, size(vec1,2));0019     vec2=zeros(1, size(vec2,2));0020 <span class="keyword">end</span>0021 0022 initShift=dtwPath(2,1)-dtwPath(1,1);        <span class="comment">% ?Y?D∮q?Y?????A?evec1???A?????????I??</span>0023 plot3((1:length(vec1))+initShift, 0*vec1, vec1, <span class="string">'.-'</span>);0024 gap=(max(vec1)-min(vec1)+max(vec2)-min(vec2))/4;    <span class="comment">% ?W?U?i”????t?Z</span>0025 line(1:length(vec2), 0*vec2+gap, vec2, <span class="string">'marker'</span>, <span class="string">'.'</span>, <span class="string">'color'</span>, <span class="string">'k'</span>);0026 legend(<span class="string">'vec1'</span>, <span class="string">'vec2'</span>);0027 0028 <span class="keyword">for</span> i=1:size(dtwPath, 2)0029     from=[dtwPath(1,i)+initShift, vec1(dtwPath(1,i))];0030     to  =[dtwPath(2,i), vec2(dtwPath(2,i))];0031     line([from(1), to(1)], [0, gap], [from(2), to(2)], <span class="string">'color'</span>, <span class="string">'r'</span>);0032 <span class="keyword">end</span>0033 0034 axis tight0035 box on0036 rotate3d on0037 0038 <span class="comment">%axisLimit=axis;</span>0039 <span class="comment">%line(axisLimit(1:2), min(vec1)*[1 1], 'color', 'k', 'linestyle', ':');</span>0040 <span class="comment">%line(axisLimit(1:2), max(vec1)*[1 1], 'color', 'k', 'linestyle', ':');</span>0041 <span class="comment">%line(axisLimit(1:2), min(vec2)*[1 1], 'color', 'k', 'linestyle', ':');</span>0042 <span class="comment">%line(axisLimit(1:2), max(vec2)*[1 1], 'color', 'k', 'linestyle', ':');</span>0043 <span class="comment">%set(gca, 'xlim', [-inf inf]);</span>0044 0045 <span class="comment">% ====== Self demo</span>0046 <a name="_sub1" href="#_subfunctions" class="code">function selfdemo</a>0047 <span class="comment">% Generate data for DTW</span>0048 dataNum = 101;0049 t = linspace(0,1,dataNum);0050 y = sin(50*t);0051 new_t = smf(t, [0,1]);0052 new_y = interp1(new_t, y, t, <span class="string">'cubic'</span>);    <span class="comment">% Resampling</span>0053 <span class="comment">% ====== Delete some points</span>0054 <span class="comment">%deleteNum = 5;</span>0055 <span class="comment">%y(1:deleteNum)=[];</span>0056 <span class="comment">%y(end-deleteNum+1:end)=[];</span>0057 [minDist, dtwPath]=<a href="dtw1.html" class="code" title="function [minDist, dtwPath, dtwTable] = dtw1(vec1, vec2, beginCorner, endCorner, plotOpt)">dtw1</a>(y, new_y, 1, 1, 0);0058 subplot(2,1,1); feval(mfilename, y, new_y, dtwPath);0059 title(<span class="string">'DTW alignment using dtw1'</span>); view(-5, 60);0060 [minDist, dtwPath]=<a href="dtw2.html" class="code" title="function [minDist, dtwPath, dtwTable]=dtw2(vec1, vec2, beginCorner, endCorner, plotOpt)">dtw2</a>(y, new_y, 1, 1, 0);0061 subplot(2,1,2); feval(mfilename, y, new_y, dtwPath);0062 title(<span class="string">'DTW alignment using dtw2'</span>); view(-5, 60);</pre></div><hr><address>Generated on Thu 30-Oct-2008 12:53:56 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> &copy; 2003</address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -