【227】◀▶ IDL 其他常用函数

参考:Programming and Control Routines —— 编程和控制函数


01 N_ELEMENTS表达式或者变量的元素个数。
02 DEFSYSV定义系统变量。
03 EXIT退出 IDL 返回到系统。
04 SAVE将变量、系统变量和 IDL 函数存储在 *.sav 文件中。
05 RESTORE恢复通过 SAVE 过程存储在 *.sav 文件中的变量、函数等。
06 FUNCTION定义一个 IDL 函数。
07 PRO定义一个 IDL 过程。
08 LIST创建一个新的 list。
09 STOP停止一个正在执行的程序或者批处理文件。
10 TYPENAME获取变量的 IDL 类型名称、类名或者结构名。
11 WAIT将程序暂停指定的时间段。
12 TIC存储开始时候的系统时间。
13 TOC存储结束时候的系统时间。

序号名称 

功能说明

 语法 & 举例
01N_ELEMENTS 

表达式或者变量的元素个数。
----------------------------------------------------------------------------------

Result = N_ELEMENTS(Expression)
----------------------------------------------------------------------------------
Expression:可以是数组,如果未定义,则返回0

 

 

IDL> A = INDGEN(2,3)
IDL> N_ELEMENTS(A)
           6
IDL> N_ELEMENTS(AS)
           0
 02DEFSYSV

 

 

定义系统变量。
----------------------------------------------------------------------------------
DEFSYSV, Name, Value [, Read_Only] [, EXISTS=variable] [, /TEST]
----------------------------------------------------------------------------------
Name:欲创建的系统变量名称,系统变量必须以“!”开头
Value:系统变量的值,可以是数据、数组或者结构体
Read_Only:只读,默认可以修改
EXISTS=variable:判断指定名称的系统变量是否存在,存在变量为 1,不存在变量为 0

 

 

IDL> DEFSYSV, '!NEWVAR', 2.0
IDL> !NEWVAR
       2.0000000
IDL> DEFSYSV, '!PI', EXISTS=i
IDL> i
           1
IDL> DEFSYSV, '!PI2', EXISTS=i
IDL> i
           0
 03EXIT 

退出 IDL 返回到系统。
所有打开的文件会关闭,所有变量的值都会丢失。
----------------------------------------------------------------------------------
EXIT [, /NO_CONFIRM] [, STATUS=code]
----------------------------------------------------------------------------------
NO_CONFIRM:不显示确认对话框

 

 

04SAVE 

将变量、系统变量和 IDL 函数存储在 *.sav 文件中。
之后可以通过 RESTORE 恢复这些数据。
----------------------------------------------------------------------------------
SAVE [, Var1, ..., Varn] [, /ALL] [, /COMM, /VARIABLES] [, /COMPRESS] [, DESCRIPTION=string] [, /EMBEDDED] [, FILENAME=string] [, /IGNORE_NOSAVE] [, /ROUTINES] [, /SYSTEM_VARIABLES] [, /VERBOSE]
----------------------------------------------------------------------------------
NO_CONFIRM:不显示确认对话框

 
IDL> SAVE, /VARIABLES, FILENAME = 'session1.sav'

IDL> RESTORE, 'session1.sav'
05RESTORE 

恢复通过 SAVE 过程存储在 *.sav 文件中的变量、函数等。
----------------------------------------------------------------------------------
RESTORE [[, Filename] | [, FILENAME=name]] [, DESCRIPTION=variable] [, /NO_COMPILE] [, /RELAXED_STRUCTURE_ASSIGNMENT] [, RESTORED_OBJECTS=variable] [, /VERBOSE]
----------------------------------------------------------------------------------
NO_CONFIRM:不显示确认对话框

 06FUNCTION 

定义一个 IDL 函数。
----------------------------------------------------------------------------------

FUNCTION Function_Name, parameter1, ..., parametern
----------------------------------------------------------------------------------
Function_Name:函数的名称
parameter1:第1个参数
parametern:第N个参数


  
07PRO 

定义一个 IDL 过程。
----------------------------------------------------------------------------------
PRO Procedure_Name, argument1, ..., argumentn
   . . .
END
----------------------------------------------------------------------------------
Procedure_Name:过程的名称
argument1:第1个参数
argumentn:第N个参数

 

 

08LIST 

创建一个新的 list。
list 可以包含不同的数据类型,包括数据、数组、结构体、指针、对象以及其他的 list 或者 哈希表。
----------------------------------------------------------------------------------
Result = LIST( [Value1, Value2, ... Valuen] [, /EXTRACT] [, LENGTH=value] [, /NO_COPY])
----------------------------------------------------------------------------------
Valuen:每个元素的值
EXTRACT:默认情况下,数组和 list 都是以单独的元素存在的,设置此关键字,数组和 list 中的元素都会添加到此 list 中
LENGTH=value:指定元素的个数,如果大于参数个数,则循环填充,如果没有元素,则全部为“!NULL”

 

 

IDL> l = LIST(2, 3, INDGEN(3))
IDL> l
[
    2,
    3,
    [0, 1, 2]
]
IDL> l = LIST(2, 3, INDGEN(3), /EXTRACT)
IDL> l
[
    2,
    3,
    0,
    1,
    2
]
IDL> l = LIST(0, 1, LENGTH=5)
IDL> l
[
    0,
    1,
    0,
    1,
    0
]
 

List::Add - 增加一个新的元素
List::Count - 返回元素的个数
List::Filter - Pass the items through a filter function.
List::IsEmpty - 测试是否为空
List::Map - Pass the items through a user-defined function.
List::Move - Move items in the list.
List::NestedMap - Pass the items through a user-defined function using a nested loop.
List::Reduce - Pass each item through a function, accumulating the result.
List::Remove - Remove an item from the list.
List::Reverse - 反转所有元素
List::Sort - 为所有元素排序
List::Swap - Switch the positions of two items in the list.
List::ToArray - 转换为 IDL 数组
List::Where - 找到等于指定值的元素

09STOP 

停止一个正在执行的程序或者批处理文件。
----------------------------------------------------------------------------------
STOP [, Expr1, ..., Exprn]
----------------------------------------------------------------------------------
Angle:顺时针旋转的角度值

 

 

IDL> ;假设你想停止一个过程,并输出 A、B、C 和 NUM,可以在合适的位置输入下面的命令:
IDL> STOP, A, B, C, NUM
IDL> ;为了继续执行程序,可以输入下面的命令:
IDL> .CONT
10TYPENAME 

获取变量的 IDL 类型名称、类名或者结构名。
----------------------------------------------------------------------------------
Result = TYPENAME(Variable)
----------------------------------------------------------------------------------
Variable:变量名称或者表达式

 
IDL> TYPENAME(0.2)
FLOAT
IDL> TYPENAME([3,2])
INT
11WAIT 

将程序暂停指定的时间段。
----------------------------------------------------------------------------------
WAIT, Seconds
----------------------------------------------------------------------------------
Seconds:暂停的秒数

 
IDL> array = [1, 2, 2, 5, 6, 6, 5]
IDL> UNIQ(array)
           0           2           3           5           6
IDL> array[UNIQ(array)]
       1       2       5       6       5
IDL> UNIQ(array, SORT(array))
           0           1           3           4
IDL> array[UNIQ(array, SORT(array))]
       1       2       5       6
 12TIC 

存储开始时候的系统时间。
----------------------------------------------------------------------------------
TIC [, /PROFILER]
----------------------------------------------------------------------------------
ClockName = TIC( [Name] [, /PROFILER] )

 

 

 13TOC 

存储结束时候的系统时间。
----------------------------------------------------------------------------------
TOC [, ClockID] [, LUN=lun] [, REPORT=variable]
----------------------------------------------------------------------------------
Result = TOC( [ClockID] [, REPORT=variable] )

 

 

      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值