Základní programové konstrukce

Operátory

Podmínka "IF"

Podmínka "CASE"

Podmínka "SWITCH"

Cyklus "FOR"

Cyklus "WHILE"

Cyklus "REPEAT"

Operace na celých polích

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