IDL 有许多奇怪的问题。数组作为下标这一个常见功能,IDL中确有问题,
错误:
a = indgen(10,10)
index = [[1,2],[2,3],[2,4]]
a[index] 这样IDL中无法计算,也不报错,因此很多人容易犯这个错误。
解决方案:
a = indgen(10,10)
data = a[index[0:2,0:2,0],index[0:2,0:2,1]]
print, 'data=',data
对于三维数组 ,同理:
a = indgen(10,10,10)
也不可使用 a[index[0:2,0:2,0],index[0:2,0:2,1],1]
而应该想构造一个3*n 的数组
然后使用a[index[0,*],index[1,*],index[2,*]] 调用。