假设打算在数组的第二和第三个元素之间添加另外一个元素,数组下标可以帮助完成。数组下标的上界和下界被冒号隔开。例如,指定上述矢量的前三个元素,如下所示:
ENVI>print, vector(0:2)
1 2 3
注意,在IDL中矢量和数组下标的起始值是0,而不是1,并且引用矢量下标时使用圆括弧以示区别。这使得有时很难将一个函数调用和一个数组下标引用区别开来。为了解决这个问题,IDL允许使用方括弧来引用数组下标。也就是说,当运行IDL5.0以上版本时,可以键入:
ENVI>print, vector[0:2]
本文使用方括弧引用下标,以避免同函数调用相混淆。倘若正在使用IDL的IDL4.x版本,要运行此命令就得用圆括弧代替方括弧。
要用数组下标将另一个元素插入第二和第三个元素之间,可键入:
ENVI>vector=[vector[0:1],5,vector[2:3]]
ENVI>print, vector
1 2 5 3 4
矢量也可用上表中讲到的数组来创建函数。例如,建立一个值在0到50之间的6个元素浮点矢量,可键入:
ENVI>vector=FIndGen(6)*10
ENVI>print,vector
0.000000 10.0000 20.0000 30.0000 40.0000 50.0000
数组也可以在IDL命令行中建立。例如,可以建立一个两行三列的数组,如下所示:
ENVI>array=[[1,2,3],[4,5,6]]
ENVI>print, array
1 2 3
4 5 6
注意,这等同于先建立一个矢量,然后用reform命令将此变形为一个三行二列的数组,如下所示:
ENVI>vector=IndGen(6)+1
ENVI>array=reform(vector,3,2)
ENVI>print, array
这表明矢量和数组均是以行的顺序存储在IDL中的。这一点在编写IDL程序的过程中非常重要,因为将经常用到IDL这种数据存储方式的优势。