IDL 创建数组
1.赋值创建
通过方括号[]赋值创建数组,示例代码如下
IDL> arr=[1,2,3] IDL> help,arr ARR INT = Array[3] IDL> arr=[[1,2,3],[4,5,6]] IDL> help,arr ARR INT = Array[3, 2]
2.函数创建
利用数组创建函数可创建不同类型或维数的数组。
数据类型 | 创建全0数组 | 创建索引数组 |
字节 | bytArr() | bindgen() |
16位有符号整数 | intarr() | indgen() |
32位有符号长整数 | longarr() | lindgen() |
64位有符号整数 | long64arr() | l64indgen() |
16位无符号整数 | uintarr() | uindgen() |
32位无符号长整数 | ulongarr() | ulindgen() |
64位无符号整数 | ulong64arr() | ul64indgen() |
浮点数 | fltarr() | findgen() |
双精度浮点数 | dblarr() | dindgen() |
复数 | complexarr() | cindgen() |
双精度复数 | dcomplexarr() | dcindgen() |
字符串 | strarr() | sindgen() |
指针 | ptrarr | |
对象 | objarr() |
例如创建3x3初始值为零的字节类型数组,输入:
IDL> arr=bytarr(3,3) IDL> help,arr ARR BYTE = Array[3, 3] IDL> print,arr 0 0 0 0 0 0 0 0 0
创建一个含有6个元素的浮点类型数组,初始值为从0到5,代码如下:
IDL> arr=findgen(6) IDL> help,arr ARR FLOAT = Array[6] IDL> print,arr 0.000000 1.00000 2.00000 3.00000 4.00000 5.00000
创建特定类型或数值的数组可以用MAKE_ARRAY()函数,调用格式为
Result=MAKE_ARRAY([D1[,...,D8]],[,/INDEX][,DIMENSION=vector][,/NOZERO][,SIZE=vector][,TYPE=type_code][,VALUE=value])
IDL> arr=make_array(2,2,/integer,/index) IDL> print,arr 0 1 2 3 IDL> arr=make_array(2,2,/integer,value=8) IDL> print,arr 8 8 8 8