學習一個語言最快的方法就是找一個實際能用的程序跑一下,然后簡單看一下這個程序中常用的語法,快速上手,快速反饋,
一直看語法細節而不上手,總會覺得毫無反饋,索然無味
單個語法像是原材料,實際要經過一定組合才成做成菜,直接看別人菜譜可最快學會做菜
一些常識
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 執行停止於