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

📄 genbbt.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 genBBT</title>  <meta name="keywords" content="genBBT">  <meta name="description" content="GENBBT Generate BBT (Branch and Bound Tree) for nearest neighbor search">  <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; genBBT.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>genBBT</h1><h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong>GENBBT Generate BBT (Branch and Bound Tree) for nearest neighbor search</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 NODE = genbbt(data, clusterNum, levelNum); </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"> GENBBT Generate BBT (Branch and Bound Tree) for nearest neighbor search
    Usage: NODE = genbbt(data, clusterNum, levelNum)
        data: Data matrix with each row a data vector
        clusterNum: No. of clusters (or children) for each node
        levelNum: No. of level of the BB tree
        NODE: A vector representing the BB tree

    Field of NODE:
        NODE(i).mean: mean vector of a tree node
        NODE(i).radius: radius vector of a tree node
        NODE(i).child: indices of children for a non-terminal node
        NODE(i).data: indices of data for a terminal node
        NODE(i).dist2mean: distance to mean of a terminal node</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="vqKmeans.html" class="code" title="function [center, U, distortion, allCenter] = vqKmeans(data, clusterNum, plotOpt)">vqKmeans</a>	vqKmeans: Vector quantization using K-means clustering (Forgy's batch-mode method)</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 maketree(data, index, clusterNum, parent, level)</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 NODE = genbbt(data, clusterNum, levelNum);</a>0002 <span class="comment">% GENBBT Generate BBT (Branch and Bound Tree) for nearest neighbor search</span>0003 <span class="comment">%    Usage: NODE = genbbt(data, clusterNum, levelNum)</span>0004 <span class="comment">%        data: Data matrix with each row a data vector</span>0005 <span class="comment">%        clusterNum: No. of clusters (or children) for each node</span>0006 <span class="comment">%        levelNum: No. of level of the BB tree</span>0007 <span class="comment">%        NODE: A vector representing the BB tree</span>0008 <span class="comment">%</span>0009 <span class="comment">%    Field of NODE:</span>0010 <span class="comment">%        NODE(i).mean: mean vector of a tree node</span>0011 <span class="comment">%        NODE(i).radius: radius vector of a tree node</span>0012 <span class="comment">%        NODE(i).child: indices of children for a non-terminal node</span>0013 <span class="comment">%        NODE(i).data: indices of data for a terminal node</span>0014 <span class="comment">%        NODE(i).dist2mean: distance to mean of a terminal node</span>0015 0016 <span class="keyword">global</span> NODENUM NODE0017 <span class="keyword">if</span> nargin&lt;3, levelNum = 4; <span class="keyword">end</span>0018 <span class="keyword">if</span> nargin&lt;2, clusterNum = 3; <span class="keyword">end</span>0019 <span class="keyword">if</span> nargin&lt;1, data = rand(1000,2); <span class="keyword">end</span>0020 0021 dataNum = size(data, 1);0022 dimNum = size(data, 2);0023 <span class="keyword">if</span> dimNum==2,0024     plot(data(:,1), data(:,2), <span class="string">'.'</span>);0025 <span class="keyword">end</span>0026 NODENUM = 0;0027 <a href="#_sub1" class="code" title="subfunction maketree(data, index, clusterNum, parent, level)">maketree</a>(data, 1:dataNum, clusterNum, NODENUM, levelNum);0028 <span class="keyword">if</span> dimNum==2, axis equal; <span class="keyword">end</span>0029 0030 <span class="comment">% ====== Sub function</span>0031 <a name="_sub1" href="#_subfunctions" class="code">function maketree(data, index, clusterNum, parent, level)</a>0032 <span class="keyword">global</span> NODENUM NODE0033 NODENUM = NODENUM+1;0034 <span class="keyword">if</span> parent~=00035     NODE(parent).child = [NODE(parent).child NODENUM]; 0036 <span class="keyword">end</span>0037 NODE(NODENUM).mean = mean(data);0038 dist2mean = zeros(size(data,1),1);0039 <span class="keyword">for</span> i=1:size(data,1),0040     dist2mean(i) = norm(data(i,:)-NODE(NODENUM).mean);0041 <span class="keyword">end</span>0042 NODE(NODENUM).radius = max(dist2mean);0043 NODE(NODENUM).child = [];0044 0045 <span class="keyword">if</span> size(data,2)==2,0046     x=data(:,1);0047     y=data(:,2);0048     k=convhull(x,y);0049     color = {<span class="string">'y'</span>, <span class="string">'k'</span>, <span class="string">'m'</span>, <span class="string">'g'</span>, <span class="string">'r'</span>, <span class="string">'c'</span>};0050     line(x(k), y(k), <span class="string">'linestyle'</span>, <span class="string">'-'</span>, <span class="string">'marker'</span>, <span class="string">'o'</span>, <span class="keyword">...</span>0051         <span class="string">'color'</span>, color{rem(level, length(color))+1}, <span class="keyword">...</span>0052         <span class="string">'linewidth'</span>, level);0053 <span class="keyword">end</span>0054 0055 <span class="keyword">if</span> level==1 | size(data,1)==1    <span class="comment">% Terminal node</span>0056     NODE(NODENUM).data = index;0057     <span class="comment">% NODE(NODENUM).dist2mean is the distance of each data to mean</span>0058     NODE(NODENUM).dist2mean = dist2mean;0059     <span class="keyword">return</span>;0060 <span class="keyword">end</span>0061 0062 [center, U, objFcn] = <a href="vqKmeans.html" class="code" title="function [center, U, distortion, allCenter] = vqKmeans(data, clusterNum, plotOpt)">vqKmeans</a>(data', clusterNum, 0); center=center'; 0063 parent = NODENUM;0064 <span class="keyword">for</span> i = 1:clusterNum,0065     index0 = find(U(i, :) == 1);0066     index1 = index(index0);0067     data1 = data(index0, :);0068     <a href="#_sub1" class="code" title="subfunction maketree(data, index, clusterNum, parent, level)">maketree</a>(data1, index1, clusterNum, parent, level-1);0069 <span class="keyword">end</span></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 + -