IDL——where函式的學習
阿新 • • 發佈:2018-11-05
1.where的基本用法
函式WHERE()能返回陣列中滿足指定條件的元素下標
呼叫格式:
Result=Where(陣列表示式[,count][,Complement=變數1][,/L64][,NCOMPLEMENT=變數2])
其中,關鍵字count返回符合指定條件的元素個數;變數1為不滿足條件的陣列元素下標;變數2為不滿足條件的陣列元素個數
eg:
IDL> a=[[1,2],[3,4]]
IDL> print,a
1 2
3 4
IDL> c=where(a ge 2, count)
IDL> print,count ;count:對應於a中大於等於2的元素個數
3
2.使用where返回對應數值的二維座標
result 返回的是一維的座標
要想返回二維座標,需要使用array_indices函式
eg:
a=[[1,2],[3,4]]
IDL> print,a
1 2
3 4
IDL> pos=where(a eq 3)
IDL> print,pos
2
IDL> qc_dims=size(a,/dimensions)
IDL> pos2=array_indices(qc_dims,pos,/dimensions) ;pos2對應於值為3的二維座標
IDL> print,pos2
0 1
IDL> print,a[pos2[0],pos2[1]]
3
備註:學習的相關內容是從連結:https://www.cnblogs.com/wintertone/p/6596672.html 摘出來的,為了方便整理就寫在自己的部落格園中。