function NEWLATTICE = insertelem0(LATTICE, DRIFTPOS, SPLITLENGTH, ELEMDATA) %INSERTELEM0 - quick and dirty: % inserts element(s) of zero length into a drift space % % NEWLATTICE = INSERTELEM0(LATTICE, DRIFTINDEX, SPLITLENGTH, ELEMDATA) DRIFT1 = LATTICE{SPLITPOS}; DRIFT1.Length = LATTICE{SPLITPOS}.Length*SPLITLENGTH; DRIFT2 = LATTICE{SPLITPOS}; DRIFT2.Length = LATTICE{SPLITPOS}.Length*(1-SPLITLENGTH); if DRIFTPOS==1 NEWLATTICE = [{DRIFT1,ELEMDATA,DRIFT2},LATTICE(2:end)]; elseif DRIFTPOS == length(LATTICE); NEWLATTICE = [LATTICE(1:end-1),{DRIFT1, ELEMDATA,DRIFT2 }]; else NEWLATTICE = [LATTICE(1:DRIFTPOS-1), {DRIFT1,ELEMDATA,DRIFT2},LATTICE(DRIFTPOS+1)]; end