📄 vqlbg.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 vqLBG</title> <meta name="keywords" content="vqLBG"> <meta name="description" content="vqLBG: Vector quantization using LBG method of center splitting"> <meta http-equiv="Content-Type" content="text/html; charset=big5"> <meta name="generator" content="m2html © 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> > <a href="index.html">dcpr</a> > vqLBG.m</div><!--<table width="100%"><tr><td align="left"><a href="../index.html"><img alt="<" border="0" src="../left.png"> Master index</a></td><td align="right"><a href="index.html">Index for dcpr <img alt=">" border="0" src="../right.png"></a></td></tr></table>--><h1>vqLBG</h1><h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong>vqLBG: Vector quantization using LBG method of center splitting</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 [center, U] = vqLBG(data, codeBookSize, dispOpt, kmeansFcn) </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"> vqLBG: Vector quantization using LBG method of center splitting
Usage: [center, U]=vq(data, codeBookSize, dispOpt)
data : dataNum x dataDim.
codeBookSize : codebook size or number of cluster centers (should be the power of 2)
dispOpt: Option for displaying information during computation (Optional, default=0)
kmeansFcn: K-means function employed in the iteration (Optional, default="vqKmeansMex")</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="vqDataPlot.html" class="code" title="function vqDataPlot(data, center)">vqDataPlot</a> vqDataPlot: Plot the result of vector quantization (used in kmeans.m and vqLBG.m)</li></ul>This function is called by:<ul style="list-style-image:url(../matlabicon.gif)"><li><a href="gmmInitParamSet.html" class="code" title="function gmmParam=gmmInitParamSet(data, gaussianNum, covType, gmmTrainParam);">gmmInitParamSet</a> gmmParamSet: Set a set of initial parameters for GMM</li></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 [center, U] = vqLBG(data, codeBookSize, dispOpt, kmeansFcn)</a>0002 <span class="comment">% vqLBG: Vector quantization using LBG method of center splitting</span>0003 <span class="comment">% Usage: [center, U]=vq(data, codeBookSize, dispOpt)</span>0004 <span class="comment">% data : dataNum x dataDim.</span>0005 <span class="comment">% codeBookSize : codebook size or number of cluster centers (should be the power of 2)</span>0006 <span class="comment">% dispOpt: Option for displaying information during computation (Optional, default=0)</span>0007 <span class="comment">% kmeansFcn: K-means function employed in the iteration (Optional, default="vqKmeansMex")</span>0008 0009 <span class="comment">% Roger Jang, 20030330</span>0010 0011 <span class="keyword">if</span> nargin<1, <a href="#_sub1" class="code" title="subfunction selfdemo">selfdemo</a>; <span class="keyword">return</span>; <span class="keyword">end</span>0012 <span class="keyword">if</span> nargin<3, dispOpt=0; <span class="keyword">end</span>0013 <span class="keyword">if</span> nargin<4, kmeansFcn=<span class="string">'vqKmeans'</span>; <span class="keyword">end</span>0014 0015 <span class="comment">% ====== Error checking</span>0016 [dataDim, dataNum] = size(data);0017 0018 <span class="comment">% Initial Centers: mean of all data</span>0019 center= mean(data,2);0020 0021 <span class="keyword">if</span> dispOpt0022 plot(data(1,:), data(2,:), <span class="string">'b.'</span>);0023 centerH=line(center(1,:), center(2,:), <span class="string">'color'</span>, <span class="string">'r'</span>, <span class="string">'marker'</span>, <span class="string">'o'</span>, <span class="string">'linestyle'</span>, <span class="string">'none'</span>, <span class="string">'linewidth'</span>, 2);0024 axis image0025 <span class="keyword">end</span>;0026 0027 <span class="comment">% Do while-loop to increase center number till it is equal to or greater than codebook size.</span>0028 maxLoopCount = 100;0029 centerNum = size(center,2);0030 <span class="keyword">while</span> (centerNum<codeBookSize)0031 <span class="keyword">if</span> dispOpt0032 <span class="comment">% fprintf('Hit return to start center splitting...\n'); pause;</span>0033 pause(1.0);0034 <span class="keyword">end</span>0035 center=[center-eps, center+eps]; <span class="comment">% Center splitting</span>0036 centerNum=size(center,2);0037 [center, U, distortion] = feval(kmeansFcn, data, center, dispOpt); <span class="comment">% VQ using K-means function</span>0038 fprintf(<span class="string">'No. of centers = %g, loop count = %g, distortion = %g\n'</span>, centerNum, length(distortion), distortion(end)); 0039 <span class="keyword">end</span>0040 <span class="keyword">if</span> dispOpt, <a href="vqDataPlot.html" class="code" title="function vqDataPlot(data, center)">vqDataPlot</a>(data, center); <span class="keyword">end</span>0041 0042 <span class="comment">% ====== Self demo</span>0043 <a name="_sub1" href="#_subfunctions" class="code">function selfdemo</a>0044 data = dcdata(2)';0045 codeBookSize=2^5;0046 dispOpt=1;0047 kmeansFcn=<span class="string">'vqKmeans'</span>;0048 codebook = feval(mfilename, data.input, codeBookSize, dispOpt, kmeansFcn);</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> © 2003</address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -