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

问题如文标题:

示例: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

 

posted @ 2024-06-28 13:54  地理遥感生态网平台  阅读(5)  评论(0编辑  收藏  举报