IDL常用语法

学习一个语言最快的方法就是找一个实际能用的程序跑一下,然后简单看一下这个程序中常用的语法,快速上手,快速反馈,
一直看语法细节而不上手,总会觉得毫无反馈,索然无味
单个语法像是原材料,实际要经过一定组合才成做成菜,直接看别人菜谱可最快学会做菜

一些常识

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 执行停止于

posted @ 2020-04-28 21:56  jun_phy  阅读(2302)  评论(0编辑  收藏  举报