IDL笔记:数组的介绍与创建


发布日期 : 2025-12-23 07:16:14 UTC

访问量: 239 次浏览

数组简介

IDL中数组的特点

在IDL中可以为任何IDL数据类型创建1-8维的数组。紧凑的数组语法能保证数组运行时不使用循环的操作。 另外,数组操作的优点将充分体现在运行速度上。用户可以发现, 将数组作为整体进行数组操作,其速度远远大于对数组元素的循环操作。在IDL中使用数组的两个最大优势体现在:

  1. 数组操作比循环操作快得多。
  2. 数组语法比相对的循环语法更加精练。

创建数组

在IDL中利用方括号“[]”创建数组。 例如, 创建一维数组, 数组的元素被括在方括号内:

IDL>x=[0,1,2,3,4]
IDL>help,x
X INT=Array[5]
IDL>print,x
0 1 2 3 4

创建多位数组是可以使用嵌套的方括号:

IDL>x=[[0,1,2],[3,4,5],[6,7,8]]
IDL>help,x
X INT=Array[3,3]
IDL>print,x
0 1 2
3 4 5
6 7 8

值可以附加到已经存在的数组中:

IDL>arr=[0,1,2,3,4]
IDL>arr=[arr,5,6,78]
IDL>print,arr
0 1 2 34 5 6 78

数组的存储格式

IDL中数组元素的存储是按列进行的, 这种存储方式与Fortran语言相同。 按列存储的方式意味着连续的数组元素也将按顺序被存储, 而且数组的第一维(列)变化的最快。 这表明矢量和数组均是以行的顺序存储在IDL中的。 这一点在编写IDL程序的过程中非常重要, 因为将经常用到IDL这种数据存储方式的优势。

创建数组

X=[0,1,2,3,4]
; 嵌入创建
vector=[vector,4]
; 用函数创建
vector=intarr(6)
vector=IndGen(6)+1
array=Reform(vector,3,2)

使用已有数值创建矢量和数组

在IDL命令行中,可以用一对方括号创建一个矢量或一个数组,如下

vector=[1,2,3]

这是一个整型矢量,因为数据值为整型值。 可以用Help命令,获取关于数据类型和变量结构的信息,如下:

Help,vector
VECTOR INT = Array[3]

如果想增加从第四个元素到矢量中,在IDL中可以很轻松地完成。只需键入:

vector=[vector,4]
IDL> Print,vector
1 2 3 4

数组也可以在IDL命令行中建立。例如,可以建立一个两行三列的数组,如下所示:

array=[[1,2,3],[4,5,6]]
Print, array

输出IDL输出窗口中将会如下所示:

1 2 3
4 5 6

使用命令创建数组

注意,这等同于先建立一个矢量,然后用Reform命令将此变形为一个三列二行的数组,要注意的是,尽管IDL中数组是按列存储的,但是使用函数进行处理的时候,是按 行进行的。如下所示:

vector=IndGen(6)+1
array=Reform(vector,3,2)
Print, array
1 2 3
4 5 6