• 【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 存储结束时候的系统时间。

    序号 名称  

    功能说明

      语法 & 举例
    01 N_ELEMENTS  

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

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

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

     

     

    定义系统变量。
    ----------------------------------------------------------------------------------
    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
    
     03 EXIT  

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

     

     

    04 SAVE  

    将变量、系统变量和 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'
    
    05 RESTORE  

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

     06 FUNCTION  

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

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


       
    07 PRO  

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

     

     

    08 LIST  

    创建一个新的 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 - 找到等于指定值的元素

    09 STOP  

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

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

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

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

    将程序暂停指定的时间段。
    ----------------------------------------------------------------------------------
    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
    
     12 TIC  

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

     

     

     13 TOC  

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

     

     

               
  • 相关阅读:
    ssh 面试
    通达信实战主力阵地副图指标公式
    巧用主力进出、主力买卖指标进行波段操作——逃顶和抄底
    散户线真的好用
    一位良心发现的交易员自述:我们是怎么玩弄散户的
    Xamrin开发安卓笔记(三)
    Xamrin开发安卓笔记(二)
    Xamrin开发安卓笔记(一)
    【教程】Microsoft Visual Studio 2015 安装Android SDK
    VS2015配置安卓Android和iOS开发环境
  • 原文地址:https://www.cnblogs.com/alex-bn-lee/p/5832347.html
Copyright © 2020-2023  润新知