目录

1. 变量命名规则

2. 数据类型

3. 基本操作

3.1 数据类型选择

3.2 改变数据类型

3.3 科学计数法


1. 变量命名规则

        与其他编程语言一样,IDL也有自己的变量命名规则:

  • 字符规则:首字母必须是26个英文字母,且只能由字母、数字、下划线、$组成,不区分大小写,不能有空格!!!
  • 长度规则:长度不超过128个字符。
  • 特殊规则:不能是系统内部用于特殊用途的保留字名称

        IDL保留字:And、Begin、Case、Common、Do、Else、End、Endcase、Endelse、Endfor、EndIF、……(注:不用记)

注:IDL除此之外,还有一些事系统变量,其以!开头,例如:

  • !Pi(π,3.14159)
  • !DPi(双精度π,3.1415927)
  • !DTor(角度转化为弧度的系数,π/180)
  • !Radeg(弧度转化为角度的系数,180/π)
  • !Color(系统色彩表找表)

2. 数据类型

        IDL数据类型有17种,包含11种数字数据类型和6中非数字数据类型

类型

数据类型

描述

字节数

范围

Byte

字节形

1

0 ~

int

整型

2

(-2^16/2)-32768 ~ 32767(2^16/2-1)

uint

无符号整型

2

0 ~

long

长整型

4

-2^32/2 ~

ulong

无符号长整型

4

0 ~

long64

64位long

8

-2^64/2 ~

ulong64

64位ulong

8

0 ~

float

浮点型

4

-10^(-38) ~

double

双精度float

8

-10^(-308) ~

complex

复数

8

-10^(-38) ~

dcomplex

双精度complex

16

-10^(-308) ~ 10^(308)

类型

数据类型

描述


string

字符串

struct

结构体

pointer

指针

object

对象

list

链表

hash

哈希表

3. 基本操作

3.1 数据类型选择

        与matlab一样,IDL不需要声明变量类型,自动默认最小的数据存储方式(byte除外),例如,

>>a = 1
>>help,a
A               INT       =        1

        此时,程序默认用最小空间存储方式,选择数据类型 int

>>a = 1.
>>help,a
A               FLOAT     =       1.00000

        此时,由于数字后面有小数点,则默认为是有小数的数据,程序默认用最小空间存储方式,选择数据类型float

>>a = 65536
>>help,a
A               LONG      =        65536

        此时,65536值超过int存储的空间,所以选择能存储这个数的最小空间存储方式,选择数据类型long

>>c
(       1.0000000,       2.0000000)
>>help,c
C               COMPLEX   = (      1.00000,      2.00000)

        此时,c为复数,则默认其数据类型为complex

3.2 改变数据类型

        IDL 数据类型对应的定义或转化方式如下表所示,

数据类型

定义或转化方式

Byte

0B or byte()

int

0 or fix()

uint

0u or uint()

long

0l or long()

ulong

0ul or ulong()

long64

0ll or long64()

ulong64

0ull or ulong64()

float

0.0 or float()

double

0.0d or double()

complex

complex(0,0) or complex(0.0,0.0)

dcomplex

complex(0.0d,0.0d)

string

'' or "" or string()

pointer

ptr_new() or none()

object

obj_new() or none()

注:fix是截断取整函数。

例如:定义、转化为byte

>>a = 1
>>help,a
A               INT       =        1
>>a = 1B
>>help,a
A               BYTE      =    1
>>b = Byte(1)
>>help,b
B               BYTE      =    1

例如:定义、转为为float

>>a = 1.
>>help,a
A               FLOAT     =       1.00000
>>b = Float(1)
>>help,b
B               FLOAT     =       1.00000

例如:定义、转化字符串

>>a = 'hulizhen'
>>help,a
A               STRING    = 'hulizhen'
>>b = "联合遥感接收站"
>>help,b
B               STRING    = '联合遥感接收站'
>>c =  string(1234)
>>help,c
C               STRING    = '    1234'

        注意:为什么数字转化为字符前面有空白,因为数据有默认的类型,即默认的长度,同时默认的是右对齐,所以才会这样显示,记住,那仅仅是显示,不是空格。

3.3 科学计数法

        IDL科学计数法与matlab一样

>>a = 1e-5
>>help,a
A               FLOAT     =  1.00000e-005
>>b = 1e5
>>
>>help,b
B               FLOAT     =       100000.