菜鸟速成记-IDL语法基础

IDL语法基础

基本数据类型
  • 字节型 var x=0B
  • 16位有符号整型 var x=0
  • 32有符号长整型 var x=0L
  • 64有符号整型 var x=0LL
  • 16位无符号整型 var x=0U
  • 32… var x=0UL
  • 64… var x=0ULL
  • 浮点型 var x=0.0
  • 双精度 var x=0.0D
  • 复数 complex(a,b)
  • 字符串 var x=” or x=”“
  • 指针 var x=ptr_New()
  • 对象 var x=Obj_New()
类型的转换

主要用到的:
- 字节型 BYTE(1.2)
- 整型 FIX(2.5)
- 浮点型 FLOAT([])
- 双精度浮点型 DOUBLE([A,B])

系统变量
  • !D.NAME 当前图形设备的名称
  • !D.X_SIZE 当前图形窗口的宽度
  • !D.Y_SIZE 当前窗口的高度
  • help,!cpu,/str 获取当前CPU
  • !DIR 获取当前路径
  • !DLM_PATH,/STR
数组
需要注意
  • 先列后行从0开始
创建数组
  • 创建0数组
    • 定义:初始值是0的字节型数组
    • bytArr()
    • intarr()
    • lonarr()
    • lon64arr()
    • uintarr()
    • ulongarr()
    • fltarr()
    • dblarr()
    • strarr()
  • 创建索引数组
    • bindgen()
    • indgen()
    • lindgen()
    • l64indgen()
    • uindgen()
    • sindgen()字符串

其它的感觉不是那么常用。。所以没写。
- 常规函数创建
- make_array(col,row,/dt,value=v)
- 创建特殊数组
- randomu()函数 返回均匀分布浮点型数组
- randomn()函数 返回正态分布浮点型函数

子数组的提取

arr[1:3:2,1: *]跳跃取点a:b:c代表a从a开始到b终止 ;c是步长
arr[-1]是意味反向索引

相关主要函数
  • size(arr[,/keywords]) 返回结构信息
  • where()
  • reverse() 矩阵反转
  • Transpose() 数组转置
  • Rotate() 函数
  • Rot() 任意角度旋转
  • Sort() 数组排序
  • N_ELEMENTS() 返回元素的个数
  • MIN() 求最小值
  • TOTAL() 元素关键字求和
  • MEAN() 平均值计算
  • VARIANCE() 方差计算
  • STDDEV() 计算数组元素方差

Markdown

字符串

之所以要写这次基础,大半原因是为了数组和字符串,它们是图像处理和文件批处理的灵魂。
- 特殊字符串
- Bell 7B
- 后退 8B
- 水平TAB 9B
- 换行 10B
- 回车 13B
- ESC 27B

PRO DEMO_LABEL
VALUE=300
STRING='HELLO WORLD!'
WTLB=WIDGET_BASE(/BASE_ALIGN_CENTER,/COLUMN,DISPLAY_NAME=string)
LABEL=WIDGET_LABEL(WTLB,VALUE='THIS IS THE FIRST ROW.'+STRING(13B)+'AND THIS IS THE SECOND ROW.',YSIZE=400,XSIZE=400)
WIDGET_CONTROL,WTLB,/REALIZE
END
- 效果展示:这是一个简单的窗口机制

![Markdown](http://i4.buimg.com/1949/d07e439ba757e5c3.png)

-部分函数操作
- STRCOMPRESS(STR) 删除字符串中空格
- STRJOIN() 字符串连接 和+差不多
- STRLEN() 返回字符串长度
- STRLOWCASE() 将所有的大写转换小写
- STRUPCASE() …大写

结构体还是比较简单的

由于有语法基础,这儿就不说了。

链表和哈希表
  • 链表LIST
    Markdown
  • 哈希表HASH
    Markdown
关系符运算
  • EQ
  • NE
  • GE
  • GT
  • LT
  • LE
    写where语句表达式时特别有用!
程序控制
  • FOR i=a,a2 do begin
  • FOEREACH ele,arr,DO …
  • WHILE … DO…ENDWHILE
  • REPEAT UNTIL
  • IF…THEN BEGIN…ENDIF
  • SWITCH … CASE EXP OF A:STH B:STH2 ELSE: EXCUTE STH ENDCASE
  • BREAK
  • CONTINUE
  • GOTO
调用执行方式
  • EXCUTE() 通过调用字符串中的命令来实现命令执行的功能。
com='PLOT,[0,1]'
VOID=EXECUTE(COM)

就两行代码,就出现了这样的效果:
Markdown

  • CALL_FUNCTION()函数 通过调用函数字符串来实现函数的执行功能
CALL_FUNCTION('SQRT',4)
;RETURN THE VALUE 2.
总结

总的来说,IDL调用方便,就是面向对象的语言用多了,突然这种像MATLAB又像VB的语言,用起来不是那么顺手~

Markdown

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值