if (x lt 0) then print,'zaporne' if (x lt 0) then begin print,'zaporne' ... endif else begin print,'kladne nebo nula' ... endelse
for i=0,9 do print,i for i=9,0,-1 do begin print,i ... endfor
while not eof(lun) do begin (čtení ze souboru "lun") endwhile
repeat begin ... x++ endrep until (x lt 10)
Při práci s poli v jazyku IDL je namísto užívání cyklu for typicky výhodnější užití operací, které pracují na polích jako celku. Některé základní příklady jsou uvedeny níže.
x = findgen(5) ;pole obsahujici hodnoty "0", "1", "2", "3", "4" x = x^2 ;umocni cele pole na druhou, tj. nove obsahuje hodnoty "0", "1", "4", "9", "16" x = x+1 ;pricte "1" k celemu poli, tj. nove obsahuje hodnoty "1", "2", "5", "10", "17" x++ ;ekvivalentni zkraceny zapis predchoziho prikazu x = [1,2,3,4] y = [5,6,7,8] z = x+y ;obsahuje soucet poli "x" a "y", tj. hodnoty "6", "8", "10", "12" x = indgen(5) ;obsahuje hodnoty "0", "1", "2", "3", "4" y = shift(x,2) ;posune prvky pole, vysledne pole bude obsahovat hodnoty "3", "4", "0", "2", "1" print,sort(a) ;indexy pole a tak, aby hodnoty v prislusnych bunkach byly vzestupne serazene print,a[sort(a)] ;pole a vzestupne serazene a = findgen(3,4) print,total(a) ;suma vsech hodnot v poli a print,total(a,2) ;suma pole a podle druheho indexu (a bylo pole 3x4, vysledek je tedy 3-rozmerne pole) a = fltarr(3,4) a[0,*] = 5. ;ulozi hodnotu "5." do bunek "a[0,0]", "a[0,1]", "a[0,2]" a "a[0,3]" print,n_elements(a) ;pocet prvku pole a print,where(a gt 0) ;indexy tech prvku pole a, ktere jsou > 0 print,a[where(a gt 0,kolik)] ;jen kladne prvky pole a, "kolik" obsahuje jejich pocet a = indgen(40) help,reform(a,4,10) ;zmena rozmeru pole, celkovy pocet prvku zustava zachovan a = indgen(4) print,rotate(a,2) ;otoci pole (jen o nasobky 90ti stupnu), v tomto pripade o 180 => obrati poradi prvku v poli a = findgen(2,2) print,rebin(a,4,4) ;zmeni rozmery pole (pouzije bilinearni interpolaci) print,rebin(a,4,4,/sample) ;zmeni rozmery pole (pouzije nejblizsiho souseda)
L.Přech & F. Němec, poslední úpravy 29.10.2011