source: MML/trunk/at/doc_html/at/lattice/combinelinear45.html @ 4

Last change on this file since 4 was 4, checked in by zhangj, 10 years ago

Initial import--MML version from SOLEIL@2013

File size: 5.6 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2                "http://www.w3.org/TR/REC-html40/loose.dtd">
3<html>
4<head>
5  <title>Description of combinelinear45</title>
6  <meta name="keywords" content="combinelinear45">
7  <meta name="description" content="COMBINELINEAR45 combines adjacent  elements that use 4-by-5 PassMethods">
8  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
9  <meta name="generator" content="m2html &copy; 2003 Guillaume Flandin">
10  <meta name="robots" content="index, follow">
11  <link type="text/css" rel="stylesheet" href="../../m2html.css">
12</head>
13<body>
14<a name="_top"></a>
15<div><a href="../../index.html">Home</a> &gt;  <a href="../index.html">at</a> &gt; <a href="index.html">lattice</a> &gt; combinelinear45.m</div>
16
17<!--<table width="100%"><tr><td align="left"><a href="../../index.html"><img alt="<" border="0" src="../../left.png">&nbsp;Master index</a></td>
18<td align="right"><a href="index.html">Index for at/lattice&nbsp;<img alt=">" border="0" src="../../right.png"></a></td></tr></table>-->
19
20<h1>combinelinear45
21</h1>
22
23<h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../../up.png"></a></h2>
24<div class="box"><strong>COMBINELINEAR45 combines adjacent  elements that use 4-by-5 PassMethods</strong></div>
25
26<h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../../up.png"></a></h2>
27<div class="box"><strong>function [NEWLATTICE, SHIFTEDKEEPINDEX, SHIFTEDREFINDEX] = combinelinear45(LATTICE,KEEPINDEX,REFINDEX) </strong></div>
28
29<h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../../up.png"></a></h2>
30<div class="fragment"><pre class="comment">COMBINELINEAR45 combines adjacent  elements that use 4-by-5 PassMethods
31 [NEWLATTICE, SHIFTEDKEEPINDEX, SHIFTEDREF] = COMBINELINEAR45(LATTICE,KEEPINDEX,REFINDEX)</pre></div>
32
33<!-- crossreference -->
34<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../../up.png"></a></h2>
35This function calls:
36<ul style="list-style-image:url(../../matlabicon.gif)">
37<li><a href="findcells.html" class="code" title="function index = findcells(CELLARRAY, field, varargin)">findcells</a>  FINDCELLS performs a search on MATLAB cell arrays of structures</li></ul>
38This function is called by:
39<ul style="list-style-image:url(../../matlabicon.gif)">
40</ul>
41<!-- crossreference -->
42
43
44<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../../up.png"></a></h2>
45<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function [NEWLATTICE, SHIFTEDKEEPINDEX, SHIFTEDREFINDEX] = combinelinear45(LATTICE,KEEPINDEX,REFINDEX) </a>
460002 <span class="comment">%COMBINELINEAR45 combines adjacent  elements that use 4-by-5 PassMethods</span>
470003 <span class="comment">% [NEWLATTICE, SHIFTEDKEEPINDEX, SHIFTEDREF] = COMBINELINEAR45(LATTICE,KEEPINDEX,REFINDEX)</span>
480004
490005
500006 <span class="comment">% make a new (empty) lattice</span>
510007 OLDN = length(LATTICE);
520008
530009 I45 = <a href="findcells.html" class="code" title="function index = findcells(CELLARRAY, field, varargin)">findcells</a>(LATTICE,<span class="string">'PassMethod'</span>,<span class="string">'Linear45Pass'</span>);
540010
550011 D = diff(I45);
560012
570013 A = 1:length(LATTICE);
580014 A(I45(find(~(D-1))))=0;
590015
600016 A = ~A;
610017
620018 <span class="comment">% A has been constructed such that if</span>
630019 <span class="comment">%  A(i)=1 , LATTICE{i} should be combined with LATTICE{i+1}</span>
640020
650021
660022 <span class="keyword">if</span> ~isempty(KEEPINDEX)
670023     A(KEEPINDEX)=0;
680024     K = KEEPINDEX-1;
690025     <span class="keyword">if</span> K(1)&lt;1
700026         A(K(2:end))=0;
710027     <span class="keyword">else</span>
720028         A(K)=0;
730029     <span class="keyword">end</span>
740030 <span class="keyword">else</span>
750031     SHIFTEDKEEPINDEX = [];
760032 <span class="keyword">end</span>
770033
780034 <span class="keyword">if</span> ~isempty(REFINDEX)
790035     R = REFINDEX-1;
800036     <span class="keyword">if</span> R(1)&lt;1
810037         A(R(2:end))=0;
820038     <span class="keyword">else</span>
830039         A(R)=0;
840040     <span class="keyword">end</span>
850041 <span class="keyword">else</span>
860042     SHIFTEDREFINDEX = [];
870043 <span class="keyword">end</span>
880044
890045 CSA = cumsum(A);
900046
910047 SHIFTEDKEEPINDEX = KEEPINDEX-CSA(KEEPINDEX);
920048
930049 <span class="keyword">if</span> ~isempty(REFINDEX)
940050     <span class="keyword">if</span> REFINDEX(1)&lt;2
950051         SHIFTEDREFINDEX = REFINDEX-[0 CSA(REFINDEX(2:end)-1)];
960052     <span class="keyword">else</span>
970053         SHIFTEDREFINDEX = REFINDEX-CSA(R);
980054     <span class="keyword">end</span>
990055 <span class="keyword">end</span>
1000056
1010057
1020058 SHIFTEDREFINDEX = REFINDEX-CSA(REFINDEX-1) ;
1030059
1040060
1050061 NEWN = CSA(end);
1060062 NEWLATTICE = cell(1,NEWN);
1070063
1080064 NEWLATTICE{1}=LATTICE{1};
1090065 writepos = 1;
1100066 <span class="keyword">for</span> i=2:OLDN
1110067     <span class="keyword">if</span> A(i-1)
1120068         NEWLATTICE{writepos}.M45 = LATTICE{i}.M45(:,1:4)*NEWLATTICE{writepos}.M45;
1130069         NEWLATTICE{writepos}.M45(:,5)=NEWLATTICE{writepos}.M45(:,5)+LATTICE{i}.M45(:,5);
1140070         NEWLATTICE{writepos}.Length = NEWLATTICE{writepos}.Length+LATTICE{i}.Length;
1150071     <span class="keyword">else</span>
1160072         writepos = writepos+1;
1170073         NEWLATTICE{writepos}=LATTICE{i};
1180074     <span class="keyword">end</span>
1190075 <span class="keyword">end</span></pre></div>
120<hr><address>Generated on Mon 21-May-2007 15:26:45 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> &copy; 2003</address>
121</body>
122</html>
Note: See TracBrowser for help on using the repository browser.