访问量: 193 次浏览
在诸如 C 和 Fortran 等高级语言中,程序源代码中的数据类型说明(如 C 中的“int” 以及 Fortran 中的 integer)提示用户怎样在程序中定义变量。在程序运行时,变量的类型保持不变。而 IDL 则提供了更为灵活的数据类型的定义方法,它允许用户在交互式或编 译模式下均可以创建新的变量。 在任何时候,IDL 都允许用户创建新的变量,或重新定义已有的变量。
var = 3.1 help, var var = 100 help, var 在 IDL 中创建新变量的灵活性也给其程序带来了很大的灵活性。但这种灵活性也意味着,用户需要在程序中密切跟踪所有变量的类型。 IDL 是面向矩阵的语言,因此任何有效的 IDL 变量(包括数组类数据类型和非数字 类数据类型)都可以作为多维数组的元素。 不管是在的 IDL 的命令行中,还是在 IDL 的程序中,使用“help”命令始终是帮助跟踪变量类型和大小的有效途径。对于标量类变量,“help”命令将显视自变量的名称、类型和值。 IDL 自身提供了变量转换的函数,可以将变量从一种类型转换到另外一种类型,而保持其值不变(除非在整型转换过程中变量被截断)。
var = 255 var = byte(var) help, var var += 1 var = byte(var) help, var 上面发生了截断。 当“fix”函数使用于浮点型变量向整型变量转换时,将会发生截断现象。
arr = [1.1, 2.2, 3.3, 6.6, 7.7, 8.8] tmp = fix(arr) print, tmp 使用 round、floor 和 ceil 函数可以更好的控制浮点型变量向整型变量的转换。
tmp1 = round(arr) tmp2 = floor(arr) tmp3 = ceil(arr) print, tmp1 print, tmp2 print, tmp3 字符串变量 (string) 可以被转换成数字类型:
vara = '3.2' varb = '123ABC' print, float(vara) print, float(varb) IDL 是一个擅长于处理矢量或数组数据的软件,所以有大量的IDL 命令用于创建不同数据类型的矢量和数组。
arr = bytarr(5,5) print,arr vect = findgen(10) print,vect 经常见到的整形变量的除法的问题。
result=12/5 print, result result = 12.0 / 5 print, result