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

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


发布日期: 1970-01-01 更新日期: 2015-01-27 编辑:giser 浏览次数: 4619

标签:

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

数组简介

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

关注公众号
获取免费资源

随机推荐


Copyright © Since 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org