IDL学习:语法基础-变量

目录

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 ~ 255
int 整型 2 (-2^16/2)-32768 ~ 32767(2^16/2-1)
uint 无符号整型 2 0 ~ 65535(2^16-1)
long 长整型 4 -2^32/2 ~ 2^32/2-1
ulong 无符号长整型 4 0 ~ 2^32-1
long64 64位long 8 -2^64/2 ~ 2^64/2-1
ulong64 64位ulong 8 0 ~ 2^64-1
float 浮点型 4 -10^(-38) ~ 10^(38)
double 双精度float 8 -10^(-308) ~ 10^(308)
complex 复数 8 -10^(-38) ~ 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.

你可能感兴趣的:(IDL,学习,IDL)