1(下)IDL語言基礎(chǔ)知識_第1頁
1(下)IDL語言基礎(chǔ)知識_第2頁
1(下)IDL語言基礎(chǔ)知識_第3頁
1(下)IDL語言基礎(chǔ)知識_第4頁
1(下)IDL語言基礎(chǔ)知識_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 IDL入門認識IDL工作臺第一個IDL程序IDL語言基礎(chǔ)目錄工作空間創(chuàng)建新的工作空間創(chuàng)建新的工程項目參數(shù)設(shè)置編碼源碼格式顏色 導入文件系統(tǒng)首選項現(xiàn)有項目認識IDL編譯器 使用工程建立新工程工程屬性修改添加文件編譯工程運行工程認識IDL編譯器 文件操作打開文件創(chuàng)建文件保存文件編輯文件編譯和運行認識IDL編譯器 查看器窗口顯示視圖下進行顯示或關(guān)閉設(shè)置認識IDL編譯器 命令行及命令歷史查看認識IDL編譯器源碼格式設(shè)置認識IDL編譯器 獲得幫助懸停幫助選中內(nèi)容幫助聯(lián)機幫助系統(tǒng)認識IDL編譯器DEMO啟動DEMO運行DEMO程序打開源碼文件認識IDL編譯器 編寫IDL程序命令行模式批處理模式文件中只需

2、命令即可文件要保存在搜索路徑下編譯運行模式參考工程、文件章節(jié)認識IDL編譯器第一個IDL程序編寫H熟悉代碼編寫方法運行代碼創(chuàng)建工程程序發(fā)布生成sav生成exe make_rt,helloWorld,c:tempout,savefile = D:trainninghelloWorldhelloworld.sav,/vm編寫IDL程序IDL語言基礎(chǔ) 變量 數(shù)組 字符串 結(jié)構(gòu)體 指針鏈表、哈希表 運算符 其他符號 IDL語言基礎(chǔ) 變量局部變量命名規(guī)則最大長度不超過255個字符,變量的首位只能是字母和下劃線,中后部只能是字母、數(shù)字、下劃線“_”和連接符“$”abc_3$d o

3、k_24_bit IDL_type variable _day_month_year4_line abc.cha相關(guān)函數(shù)變量名是否有效格式 IDL_VALIDNAME ( String , /CONVERT_ALL , /CONVERT_SPACES), IDL語言基礎(chǔ) 局部變量數(shù)據(jù)類型 IDL語言基礎(chǔ)-變量 局部變量類型轉(zhuǎn)換 IDL語言基礎(chǔ)-變量 局部變量特點動態(tài)性隨時修改變量的數(shù)據(jù)類型和組織結(jié)構(gòu)。但下面情況不進行類型轉(zhuǎn)換。注意整型變量的精度 result = 8/5 aspect=!D.X_Size / !D.Y_Size IDL語言基礎(chǔ)-變量 系統(tǒng)變量自定義系統(tǒng)變量創(chuàng)建Defsysv,!

4、變量名,值使用跟局部變量的使用方法一樣,!變量名 IDL語言基礎(chǔ)-變量 運行教材示例 P28 變量 數(shù)組 字符串 結(jié)構(gòu)體 指針鏈表、哈希表 運算符 其他符號 IDL語言基礎(chǔ) 數(shù)組定義程序設(shè)計中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數(shù)據(jù)元素的集合稱為數(shù)組。IDL支持08維數(shù)組數(shù)組的下標是先列后行 IDL語言基礎(chǔ)-數(shù)組 數(shù)組創(chuàng)建賦值創(chuàng)建 IDL語言基礎(chǔ)-數(shù)組IDL arr = 1,2,3IDL help, arrARR INT = Array3IDL arr = 1,2,3BIDL help, arrARR INT = Array3IDL arr = 1

5、,2,3DIDL help, arrARR DOUBLE = Array3 數(shù)組創(chuàng)建函數(shù)創(chuàng)建全零和索引數(shù)組函數(shù) IDL語言基礎(chǔ)-數(shù)組等差數(shù)列:IDL print, indgen(6)*5+11 6 11 16 21 26等比數(shù)列:生成比值為3,1開頭的等比數(shù)列:IDL print, 3indgen(6)1 3 9 27 81 243生成比值為3,2開頭的等比數(shù)列:IDL print, 3indgen(6)*22 6 18 54 162 486 IDL語言基礎(chǔ)-數(shù)組 數(shù)組創(chuàng)建函數(shù)創(chuàng)建全零和索引數(shù)組常規(guī)函數(shù) MAKE_ARRAY() IDL語言基礎(chǔ)-數(shù)組 數(shù)組存儲 數(shù)組按行存儲。一維數(shù)組二維數(shù)組

6、IDL語言基礎(chǔ)-數(shù)組 使用數(shù)組下標方式使用下標來讀取數(shù)組中的元素。向量方式通過向量下標獲得數(shù)組中的系列元素。子數(shù)組選取下標的方式 IDL語言基礎(chǔ)-數(shù)組 數(shù)組運算求大、求小和求余 IDL語言基礎(chǔ)-數(shù)組 數(shù)組運算數(shù)組與數(shù)運算 IDL語言基礎(chǔ)-數(shù)組 數(shù)組運算數(shù)組與數(shù)組運算數(shù)組與數(shù)組的運算結(jié)果的元素個數(shù)與運算的最小數(shù)組個數(shù)一致。 IDL語言基礎(chǔ)-數(shù)組 數(shù)組相關(guān)函數(shù)數(shù)組信息Size() IDL語言基礎(chǔ)-數(shù)組 數(shù)組相關(guān)函數(shù)條件查找Where() IDL語言基礎(chǔ)-數(shù)組 數(shù)組相關(guān)函數(shù)大小調(diào)整Reform-不改變元素個數(shù)改變數(shù)組維數(shù) IDL語言基礎(chǔ)-數(shù)組 數(shù)組相關(guān)函數(shù)大小調(diào)整Rebin修改為不同維數(shù)算法雙線性內(nèi)

7、插Sample關(guān)鍵字使用最近鄰域法 IDL語言基礎(chǔ)-數(shù)組 數(shù)組相關(guān)函數(shù)大小調(diào)整Congrid修改為同維任意大小一維或二維-最鄰近重采樣,或使用INTERP關(guān)鍵字強制使用雙線性內(nèi)插法三維-雙線性內(nèi)插 IDL語言基礎(chǔ)-數(shù)組 數(shù)組相關(guān)函數(shù)數(shù)組反轉(zhuǎn)Reverse()反轉(zhuǎn)的是數(shù)組的維數(shù) IDL語言基礎(chǔ)-數(shù)組 數(shù)組相關(guān)函數(shù)數(shù)組旋轉(zhuǎn)Rotate() IDL語言基礎(chǔ)-數(shù)組 數(shù)組相關(guān)函數(shù)數(shù)組旋轉(zhuǎn)Rot()可以以任意的角度對數(shù)組進行旋轉(zhuǎn)操作并能進行放大、縮小操作。 IDL語言基礎(chǔ)-數(shù)組 數(shù)組相關(guān)函數(shù)數(shù)組排序Sort()函數(shù)返回排序后的數(shù)組索引。 IDL語言基礎(chǔ)-數(shù)組 數(shù)組相關(guān)函數(shù)數(shù)組元素個數(shù)N_Elements(

8、)函數(shù)返回數(shù)組元素的個數(shù) IDL語言基礎(chǔ)-數(shù)組 相關(guān)計算函數(shù)最大值MAX()最小值MIN()和計算Total()乘積計算(所有元素相乘)Product() IDL語言基礎(chǔ)-數(shù)組 運行教材示例 P41 相關(guān)計算函數(shù)階乘Factorial()平均值Mean()方差計算Variance()標準差計算Stddev()平均值、方差、傾斜度Moment() IDL語言基礎(chǔ)-數(shù)組 運行教材示例 P43 矩陣運算矩陣間AMN # BLM AMN # BLM 矩陣函數(shù) IDL語言基礎(chǔ)-數(shù)組 運行教材示例 P43chapter03test_matrix_ 變量 數(shù)組 字符串 結(jié)構(gòu)體 指針鏈表、哈

9、希表 運算符 其他符號 IDL語言基礎(chǔ) 字符創(chuàng)建字符串及字符串數(shù)組直接賦值string, ”stringdf”創(chuàng)建字符串數(shù)組StrArr() IDL語言基礎(chǔ)-字符串 字符特殊字符 IDL語言基礎(chǔ)-字符串 字符字符操作函數(shù)StrTrimStrMidStrPos IDL語言基礎(chǔ)-字符串 運行教材示例 P46 變量 數(shù)組 字符串 結(jié)構(gòu)體 指針鏈表、哈希表 運算符 其他符號 IDL語言基礎(chǔ) 結(jié)構(gòu)體標量、數(shù)組或結(jié)構(gòu)的集合,是符合變量。創(chuàng)建結(jié)構(gòu)體命名結(jié)構(gòu)體匿名結(jié)構(gòu)體訪問結(jié)構(gòu)體StructName.VarNameStructName.(idx) IDL語言基礎(chǔ)-結(jié)構(gòu)體 運行教材示例 P47 結(jié)構(gòu)體相關(guān)操作函

10、數(shù) IDL語言基礎(chǔ)-結(jié)構(gòu)體 結(jié)構(gòu)體繼承IDL str1 = str1name, a:1,b:2IDL str2 = str2name, inherits str1name, c:3動態(tài)擴展IDL a = a:1, b:2IDL a =create_struct(a,c,3) IDL語言基礎(chǔ)-結(jié)構(gòu)體 變量 數(shù)組 字符串 結(jié)構(gòu)體 指針鏈表、哈希表 運算符 其他符號 IDL語言基礎(chǔ) 概述指針時,其數(shù)據(jù)存儲于一個堆變量中。堆變量在程序運行期間是全局變量,而且只有通過指針名才能訪問。堆變量是可以動態(tài)的分配內(nèi)存的全局變量。 創(chuàng)建和訪問與賦值創(chuàng)建Ptr_New()訪問(*)point賦值空指針 IDL語言基

11、礎(chǔ)-指針 內(nèi)存控制內(nèi)存分配pData = Ptr_New(data,/No_Copy)內(nèi)存釋放 Ptr_Free,point IDL語言基礎(chǔ)-指針 運行教材示例 P50 變量 數(shù)組 字符串 結(jié)構(gòu)體 指針鏈表、哈希表 運算符 其他符號 IDL語言基礎(chǔ)鏈表創(chuàng)建: Result = LIST( Value1, Value2, . Valuen , /EXTRACT , LENGTH=value , /NO_COPY) 舉例:list=LIST(one, 2.0, 3, 4l, PTR_NEW(5), n:6, COMPLEX(7,0)鏈表訪問:IDL print, list0One鏈表銷毀Obj_d

12、estroy, listIDL語言基礎(chǔ)鏈表 運行教材示例 P53鏈表方法:Add 添加成員Count 成員個數(shù)查詢IsEmpty 是否為空Remove 移除成員Reverse 逆轉(zhuǎn)順序ToArray 轉(zhuǎn)換為數(shù)組Where 查詢IDL語言基礎(chǔ)鏈表哈希表創(chuàng)建: Result = HASH( Key1, Value1, Key2, Value2, . Keyn, Valuen , /EXTRACT , /NO_COPY )orResult = HASH( Keys, Values , /EXTRACT )orResult = HASH( Keys )orResult = HASH( Structur

13、e , /EXTRACT )舉例:hash = HASH(black, 0, gray, 128, grey, 128, white, 255)hash = HASH(black,gray,grey,white, 0,128,128,255)IDL語言基礎(chǔ)哈希表 運行教材示例 P54哈希表訪問: hash = HASH(black, 0, gray, 128, grey, 128, white, 255)IDL print, hashblack 0成員增加:IDL hashgreen = 50或hash += HASH(green, 50)哈希表銷毀:Obj_destroy, hashIDL語

14、言基礎(chǔ)哈希表哈希表方法: Count 成員個數(shù)HasKey 是否含有成員IsEmpty 是否為空Keys 成員名Remove 移除成員ToStruct 轉(zhuǎn)換為結(jié)構(gòu)體Values 成員值Where 查詢IDL語言基礎(chǔ)哈希表 變量 數(shù)組 字符串 結(jié)構(gòu)體 指針鏈表、哈希表 運算符 其他符號 IDL語言基礎(chǔ) 數(shù)學運算符加(+)增運算(+)減(-)減運算(-)乘(*)除(/)冪()取余(mod)取小() IDL語言基礎(chǔ)-運算符 運行教材示例 P55邏輯運算符與運算(&)或運算(|)非運算()位運算位加(AND)位取反(NOT)位或(OR)位與或(XOR) IDL語言基礎(chǔ)-運算符 運行教材示例 P56關(guān)系

15、運算符EQ等于NE不等于GE大于等于GT大于LE小于等于LT小于數(shù)組運算數(shù)組乘(#)矩陣乘(#) IDL語言基礎(chǔ)-運算符 變量 數(shù)組 字符串 結(jié)構(gòu)體 指針鏈表、哈希表 運算符 其他符號 IDL語言基礎(chǔ) 其他運算符小括號()中括號條件表達式?:對象方法調(diào)用符-指針引用符* IDL語法基礎(chǔ)-運算符 運行教材示例 P59 循環(huán)語句FORWHILEREPEATFOREACH 條件語句IFCASESWITCH 跳轉(zhuǎn)語句BreakContinueGoTo IDL語言基礎(chǔ)-程序控制 運行測試 chapter04test_*.proIDL程序如何傳遞參數(shù)位置參數(shù)關(guān)鍵字參數(shù)地址傳遞與值傳遞IDL語言基礎(chǔ)-參數(shù)傳

16、遞運行教材示例 P65繼承類別:程序繼承 - 允許程序可以非常方便地使用調(diào)用繼承的關(guān)鍵字和參數(shù)。對象繼承 - 在對象繼承中,子類可以選擇繼承超類的方法和屬性。繼承機制:_EXTRA:值傳遞_REF_EXTRA:引用傳遞IDL語言基礎(chǔ)-關(guān)鍵字繼承運行chapter04/Test_EXTRA文件夾內(nèi)的proIDL高效編程時間快算法優(yōu)化程序?qū)懛▋?nèi)存小內(nèi)存控制!NULLDELVARTEMPORARY高效編程IDL a = dist(500,500)IDL a = a+1.0IDL a = dist(500,500)IDL b = temporary(a) + 1.0IDL help,a,bA UNDE

17、FINED = B FLOAT = Array500, 500之前:startTime = system(1)useTime = system(1)-startTime現(xiàn)在(IDL8.2.2開始):TICTOC或者使用Profiler獲取IDL程序的運行時間Test_pro時間程序?qū)懛?12*512圖像反轉(zhuǎn)時間 test_;循環(huán)進行像素交換FUNCTION DO_METHOD_01, img ;列循環(huán) FOR i=0,511 DO BEGIN ;圖像上一半行循環(huán) FOR j=0,255 DO BEGIN ;保存當前點坐標 tmp = imgi,j ;用中間對稱點替換 imgi,j= imgi,511-j ;交換數(shù)據(jù) imgi,511-j = temp ENDFOR ENDFOR ;返回翻轉(zhuǎn)結(jié)果 RETURN, imgEND;利用IDL特點行交換FUNCTION DO_METHOD_02, img ;圖像上一半行循環(huán) FOR j=0,255 DO BEGIN ;保存當前行坐標 tmp = img*,j ;用中間對稱點替換 img*,j= img*,511-j ;交換數(shù)據(jù) img*,511-j = temp ENDFOR

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論