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 執行停止於


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM