学习一个语言最快的方法就是找一个实际能用的程序跑一下,然后简单看一下这个程序中常用的语法,快速上手,快速反馈,
一直看语法细节而不上手,总会觉得毫无反馈,索然无味
单个语法像是原材料,实际要经过一定组合才成做成菜,直接看别人菜谱可最快学会做菜
一些常识
1. 不区分大小写
2. 注释使用分号(;) 分号右边的任何字符都会被注释
3. 变量无需事先申明,也就是可以通过赋值语句来进行变量、数组定义
4. 数组下标默认从0开始,访问数组元素既可以用方括号[],也可以用小括号()
5. 使用方括号可以更好地区别是访问数组还是函数
6. $符号为续行符
7. !感叹号后面加变量名称,为系统预定义的变量,比如圆周率为!pi
8. Pro中的变量为局部变量,在控制台无法看到,也无法被其他pro使用
创建浮点数组
IDL> X = FLTARR(2)
IDL> print,x
0.000000 0.000000
数组截取
PRO TEST_ARRAY
;创建数组
arr = INDGEN(10)
;获取数组
PRINT, '数组为', arr
PRINT, '第3个元素为: ', arr[2]
PRINT, '第3~7个元素为: ', arr[2:6]
PRINT, '第1、3、6、7个元素为:', arr[[0,2,5,6]]
PRINT, '第5到最后一个元素为: ', arr[4:*]
END
创建字符串
IDL> ss = 'abcdef'
IDL> print,s
abcdef
截取字符串
strmid
Syntax :Result = strmid(Expression, First_Character [, Length] [, /REVERSE_OFFSET])
从字符串的First_Character位置开始;Length为取出的子字符串长度,若省略Length,则读到字符串的末尾;/REVERSE_OFFSET指从尾部算起。
从n1个位置开始,其实n1个数是不算的,后一个值才开始。也可以理解为字符是从0开始算起
示例
IDL> s='abcdefghijklmn'
IDL> s1=STRMID(s,3,4)
IDL> print,s1
defg
;从s的第三个字符开始,不包括第三个字符,取出长度为4的子字符串
IDL> s2=STRMID(s,0,4)
IDL> print,s2
abcd
;从0开始
切换路径
;filepath为存放路径的字符串变量
cd ,filepath
循环控制之for循环
FOR i=0,5 DO BEGIN
PRINT,i
ENDFOR
;
FOR i=0,10,2 DO BEGIN
print,i
ENDFOR
Dotcommand
该系列命令即可在命令行中进行源代码(pro 文件)的编辑、编译、调试及运行等工作,且仅能在命令行下执行。
.edit filename 编辑
.compile filename 编译
.run filename 编译并立即执行
代码辅助
Alt+/可以在编辑器中进行代码补全和提示
可以在命令行中设置同样的快捷键进行代码提示
Plot背景设置为白色
在调用plot函数之前加入如下代码,
DEVICE,DECOMPOSED=1
!P.BACKGROUND='FFFFFF'xl
!P.COLOR='000000'xl
错误信息
Execution halted at 执行停止于