【IDL】獲取n*n陣列的對角線元素的方法

地理遥感生态网平台發表於2024-06-28

問題如文標題:

示例:5*5的原陣列,輸出如下:

IDL> arr = indgen(5,5)
IDL> print,arr
0 1 2 3 4
5 6 7 8 9
10 11 12 13 14
15 16 17 18 19
20 21 22 23 24

對角線元素為:0,6,12,18,24;

方法1:雙子陣列下標,即subarr = arr[indgen(n),indgen(n)]

IDL> print,arr[indgen(5),indgen(5)]
0 6 12 18 24

方法2:一維下標,即subarr = arr[indgen(n)*(n+1)]

IDL> print,arr[indgen(5)*(5+1)]
0 6 12 18 24

方法3:仍然一維下標,用法更簡潔subarr = arr[0:(n*n-1):(n+1)],原理與方法2一樣。

IDL> print,arr[0:(5*5-1):(5+1)]
0 6 12 18 24

相關文章