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

📄 grow.html

📁 mri_toolbox是一个工具用来MRI. 来自于SourceForge, 我上传这个软件,希望能结识对医疗软件感兴趣的兄弟.
💻 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 grow</title>  <meta name="keywords" content="grow">  <meta name="description" content="">  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  <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">mri_toolbox</a> &gt; grow.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 mri_toolbox&nbsp;<img alt=">" border="0" src="../right.png"></a></td></tr></table>--><h1>grow</h1><h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong></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 Y = grow(varargin) </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">
 GROW    Expands a matrix.

   Y = GROW(X,[M1 M2 ... Mn]) creates a matrix 'Y' by the expansion
   of the matrix 'x' of Mi elements on directions i e -i. The size 
   of the new matrix 'Y' will be:
       size(Y) = size(x) + 2*[M]

   Example: X = [ 1 2 3; 4 5 6; 7 8 9]
   Y = GROW(X,[1 0])
   Y = [1 2 3; 1 2 3; 4 5 6; 7 8 9; 7 8 9]

   Y = GROW(X,[1 1])
   Y = [1 1 2 3 3; 1 1 2 3 3; 4 4 5 6 6; 7 7 8 9 9; 7 7 8 9 9]

   Y = GROW(X) uses as standard Mi = 1.

    If DIM(X)&gt;1, GROW(X,N) = GROW(X,N*ones(DIM(x)))

   Y = GROW(X,[M], 'a') performs assimetric expansion. If Mi is even
   assimetric expansion is the same as simmetric expansion, execpt that
   the expansion in the assimetric mode will be half of the one in the
   simmetric mode. If Mi is odd, the matrix will be expanded ceil(Mi/2)
   elements in the -i direction and floor(Mi/2) in the i. The size of
   the expanded matrix will be:  
       size(y) = size(X) + [M]

  [M] can contain negative integers. In this case, the outer elements
  of X will be discarded.

    See also ROLL, PAD, PADC, <a href="shrink.html" class="code" title="function [Y, varargout] = shrink(X,E)">SHRINK</a>.</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)"></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 [X,M,assimetric] = parse_inputs(varargin)</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 Y = grow(varargin)</a>0002 <span class="comment">%</span>0003 <span class="comment">% GROW    Expands a matrix.</span>0004 <span class="comment">%</span>0005 <span class="comment">%   Y = GROW(X,[M1 M2 ... Mn]) creates a matrix 'Y' by the expansion</span>0006 <span class="comment">%   of the matrix 'x' of Mi elements on directions i e -i. The size</span>0007 <span class="comment">%   of the new matrix 'Y' will be:</span>0008 <span class="comment">%       size(Y) = size(x) + 2*[M]</span>0009 <span class="comment">%</span>0010 <span class="comment">%   Example: X = [ 1 2 3; 4 5 6; 7 8 9]</span>0011 <span class="comment">%   Y = GROW(X,[1 0])</span>0012 <span class="comment">%   Y = [1 2 3; 1 2 3; 4 5 6; 7 8 9; 7 8 9]</span>0013 <span class="comment">%</span>0014 <span class="comment">%   Y = GROW(X,[1 1])</span>0015 <span class="comment">%   Y = [1 1 2 3 3; 1 1 2 3 3; 4 4 5 6 6; 7 7 8 9 9; 7 7 8 9 9]</span>0016 <span class="comment">%</span>0017 <span class="comment">%   Y = GROW(X) uses as standard Mi = 1.</span>0018 <span class="comment">%</span>0019 <span class="comment">%    If DIM(X)&gt;1, GROW(X,N) = GROW(X,N*ones(DIM(x)))</span>0020 <span class="comment">%</span>0021 <span class="comment">%   Y = GROW(X,[M], 'a') performs assimetric expansion. If Mi is even</span>0022 <span class="comment">%   assimetric expansion is the same as simmetric expansion, execpt that</span>0023 <span class="comment">%   the expansion in the assimetric mode will be half of the one in the</span>0024 <span class="comment">%   simmetric mode. If Mi is odd, the matrix will be expanded ceil(Mi/2)</span>0025 <span class="comment">%   elements in the -i direction and floor(Mi/2) in the i. The size of</span>0026 <span class="comment">%   the expanded matrix will be:</span>0027 <span class="comment">%       size(y) = size(X) + [M]</span>0028 <span class="comment">%</span>0029 <span class="comment">%  [M] can contain negative integers. In this case, the outer elements</span>0030 <span class="comment">%  of X will be discarded.</span>0031 <span class="comment">%</span>0032 <span class="comment">%    See also ROLL, PAD, PADC, SHRINK.</span>0033 <span class="comment">%</span>0034 0035 0036 [X, M, assimetric] = <a href="#_sub1" class="code" title="subfunction [X,M,assimetric] = parse_inputs(varargin)">parse_inputs</a>(varargin{:});0037 0038 ind = cell(length(M),1);0039 0040 <span class="keyword">if</span> assimetric == 00041    <span class="keyword">for</span> i = 1 : length(M)0042       <span class="keyword">if</span> M(i) &gt;= 00043          ind{i} = [repmat(1,[1 M(i)]) 1:size(X,i) repmat(size(X,i),[1 M(i)]) ];0044       <span class="keyword">else</span>0045          ind{i} = 1+(-M(i)) : size(X,i)-(-M(i)); <span class="comment">% using -M(i) to change sign</span>0046       <span class="keyword">end</span>0047    <span class="keyword">end</span>0048 <span class="keyword">else</span> <span class="comment">% if not assimetric</span>0049    <span class="keyword">for</span> i = 1 : length(M)0050       <span class="keyword">if</span> M(i) &gt;= 00051          ind{i} = [repmat(1,[1 ceil(M(i)/2)]) 1:size(X,i) repmat(size(X,i),[1 floor(M(i)/2)]) ];0052       <span class="keyword">else</span>0053          ind{i} = 1+ceil(-M(i)/2) : size(X,i) - floor(-M(i)/2);0054       <span class="keyword">end</span>0055    <span class="keyword">end</span>0056 <span class="keyword">end</span>0057    0058 Y = X(ind{:});0059 0060 0061 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>0062 <a name="_sub1" href="#_subfunctions" class="code">function [X,M,assimetric] = parse_inputs(varargin)</a>0063 assimetric = 0;0064 0065 <span class="keyword">switch</span> nargin0066 <span class="keyword">case</span> 00067    error(<span class="string">'Too few inputs!'</span>)0068    <span class="keyword">return</span>0069    0070 <span class="keyword">case</span> 10071    X = varargin{1};0072    M = ones(1,ndims(X));0073    0074 <span class="keyword">case</span> 20075    X = varargin{1};0076    M = varargin{2};0077    <span class="keyword">if</span> strcmp(M,<span class="string">'a'</span>)0078       M = ones(1,ndims(X));0079       assimetric = 1;0080    <span class="keyword">end</span>0081    0082 <span class="keyword">case</span> 30083    X = varargin{1};0084    M = varargin{2};0085    <span class="keyword">if</span> ~strcmp(<span class="string">'a'</span>, lower(varargin{3}))0086       error(<span class="string">'Unknown parameter.'</span>);0087    <span class="keyword">end</span>0088    assimetric = 1;0089   0090 <span class="keyword">case</span> 40091    error(<span class="string">'Too many inputs!'</span>)0092    <span class="keyword">return</span>0093 <span class="keyword">end</span>0094 0095 <span class="keyword">if</span> length(M)==1 0096    <span class="keyword">if</span> sum(size(X)&gt;1)&gt;10097       M = M*ones(1,ndims(X));0098    <span class="keyword">elseif</span> ndims(X)==2 &amp; size(X,1)==1 &amp; size(X,2)&gt;10099       M = [0 M];0100    <span class="keyword">elseif</span> ndims(X)==2 &amp; size(X,1)&gt;1 &amp; size(X,2)==10101       M = [M 0];0102    <span class="keyword">end</span>0103 <span class="keyword">end</span>0104 0105 <span class="keyword">if</span> length(M)~=ndims(X)0106    error(<span class="string">'Invalid dimensions'</span>)0107 <span class="keyword">end</span>0108</pre></div><hr><address>Generated on Fri 21-May-2004 12:38:21 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 + -