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

下載本文檔

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

文檔簡(jiǎn)介

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

2、命令即可文件要保存在搜索路徑下編譯運(yùn)行模式參考工程、文件章節(jié)認(rèn)識(shí)IDL編譯器第一個(gè)IDL程序編寫(xiě)H熟悉代碼編寫(xiě)方法運(yùn)行代碼創(chuàng)建工程程序發(fā)布生成sav生成exe make_rt,helloWorld,c:tempout,savefile = D:trainninghelloWorldhelloworld.sav,/vm編寫(xiě)IDL程序IDL語(yǔ)言基礎(chǔ) 變量 數(shù)組 字符串 結(jié)構(gòu)體 指針鏈表、哈希表 運(yùn)算符 其他符號(hào) IDL語(yǔ)言基礎(chǔ) 變量局部變量命名規(guī)則最大長(zhǎng)度不超過(guò)255個(gè)字符,變量的首位只能是字母和下劃線,中后部只能是字母、數(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語(yǔ)言基礎(chǔ) 局部變量數(shù)據(jù)類(lèi)型 IDL語(yǔ)言基礎(chǔ)-變量 局部變量類(lèi)型轉(zhuǎn)換 IDL語(yǔ)言基礎(chǔ)-變量 局部變量特點(diǎn)動(dòng)態(tài)性隨時(shí)修改變量的數(shù)據(jù)類(lèi)型和組織結(jié)構(gòu)。但下面情況不進(jìn)行類(lèi)型轉(zhuǎn)換。注意整型變量的精度 result = 8/5 aspect=!D.X_Size / !D.Y_Size IDL語(yǔ)言基礎(chǔ)-變量 系統(tǒng)變量自定義系統(tǒng)變量創(chuàng)建Defsysv,!

4、變量名,值使用跟局部變量的使用方法一樣,!變量名 IDL語(yǔ)言基礎(chǔ)-變量 運(yùn)行教材示例 P28 變量 數(shù)組 字符串 結(jié)構(gòu)體 指針鏈表、哈希表 運(yùn)算符 其他符號(hào) IDL語(yǔ)言基礎(chǔ) 數(shù)組定義程序設(shè)計(jì)中,為了處理方便, 把具有相同類(lèi)型的若干變量按有序的形式組織起來(lái)。這些按序排列的同類(lèi)數(shù)據(jù)元素的集合稱為數(shù)組。IDL支持08維數(shù)組數(shù)組的下標(biāo)是先列后行 IDL語(yǔ)言基礎(chǔ)-數(shù)組 數(shù)組創(chuàng)建賦值創(chuàng)建 IDL語(yǔ)言基礎(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語(yǔ)言基礎(chǔ)-數(shù)組等差數(shù)列:IDL print, indgen(6)*5+11 6 11 16 21 26等比數(shù)列:生成比值為3,1開(kāi)頭的等比數(shù)列:IDL print, 3indgen(6)1 3 9 27 81 243生成比值為3,2開(kāi)頭的等比數(shù)列:IDL print, 3indgen(6)*22 6 18 54 162 486 IDL語(yǔ)言基礎(chǔ)-數(shù)組 數(shù)組創(chuàng)建函數(shù)創(chuàng)建全零和索引數(shù)組常規(guī)函數(shù) MAKE_ARRAY() IDL語(yǔ)言基礎(chǔ)-數(shù)組 數(shù)組存儲(chǔ) 數(shù)組按行存儲(chǔ)。一維數(shù)組二維數(shù)組

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

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

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

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

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

11、礎(chǔ)-指針 內(nèi)存控制內(nèi)存分配pData = Ptr_New(data,/No_Copy)內(nèi)存釋放 Ptr_Free,point IDL語(yǔ)言基礎(chǔ)-指針 運(yùn)行教材示例 P50 變量 數(shù)組 字符串 結(jié)構(gòu)體 指針鏈表、哈希表 運(yùn)算符 其他符號(hào) IDL語(yǔ)言基礎(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)鏈表訪問(wèn):IDL print, list0One鏈表銷(xiāo)毀Obj_d

12、estroy, listIDL語(yǔ)言基礎(chǔ)鏈表 運(yùn)行教材示例 P53鏈表方法:Add 添加成員Count 成員個(gè)數(shù)查詢IsEmpty 是否為空Remove 移除成員Reverse 逆轉(zhuǎn)順序ToArray 轉(zhuǎn)換為數(shù)組Where 查詢IDL語(yǔ)言基礎(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語(yǔ)言基礎(chǔ)哈希表 運(yùn)行教材示例 P54哈希表訪問(wèn): hash = HASH(black, 0, gray, 128, grey, 128, white, 255)IDL print, hashblack 0成員增加:IDL hashgreen = 50或hash += HASH(green, 50)哈希表銷(xiāo)毀:Obj_destroy, hashIDL語(yǔ)

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

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

16、遞運(yùn)行教材示例 P65繼承類(lèi)別:程序繼承 - 允許程序可以非常方便地使用調(diào)用繼承的關(guān)鍵字和參數(shù)。對(duì)象繼承 - 在對(duì)象繼承中,子類(lèi)可以選擇繼承超類(lèi)的方法和屬性。繼承機(jī)制:_EXTRA:值傳遞_REF_EXTRA:引用傳遞IDL語(yǔ)言基礎(chǔ)-關(guān)鍵字繼承運(yùn)行chapter04/Test_EXTRA文件夾內(nèi)的proIDL高效編程時(shí)間快算法優(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開(kāi)始):TICTOC或者使用Profiler獲取IDL程序的運(yùn)行時(shí)間Test_pro時(shí)間程序?qū)懛?12*512圖像反轉(zhuǎn)時(shí)間 test_;循環(huán)進(jìn)行像素交換FUNCTION DO_METHOD_01, img ;列循環(huán) FOR i=0,511 DO BEGIN ;圖像上一半行循環(huán) FOR j=0,255 DO BEGIN ;保存當(dāng)前點(diǎn)坐標(biāo) tmp = imgi,j ;用中間對(duì)稱點(diǎn)替換 imgi,j= imgi,511-j ;交換數(shù)據(jù) imgi,511-j = temp ENDFOR ENDFOR ;返回翻轉(zhuǎn)結(jié)果 RETURN, imgEND;利用IDL特點(diǎn)行交換FUNCTION DO_METHOD_02, img ;圖像上一半行循環(huán) FOR j=0,255 DO BEGIN ;保存當(dāng)前行坐標(biāo) tmp = img*,j ;用中間對(duì)稱點(diǎn)替換 img*,j= img*,511-j ;交換數(shù)據(jù) img*,511-j = temp ENDFOR

溫馨提示

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

評(píng)論

0/150

提交評(píng)論