1. 程式人生 > >IDL——where函式的學習

IDL——where函式的學習

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  摘出來的,為了方便整理就寫在自己的部落格園中。