【IDL】获取n*n数组的对角线元素的方法

问题如文标题:

示例:5*5的原数组,输出如下:

IDL> arr = indgen(5,5)
IDL> print,arr
                          4
                          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)]
               12     18     24

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

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

方法3:仍然一维下标,用法更简洁subarr = arr[0:(n*n-1):(n+1)],原理与方法2一样。

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

posted @ 2022-06-08 12:42  ENVI-IDL技术殿堂  阅读(147)  评论(0)    收藏  举报