問題如文標題:
示例: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