freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

idl高級培訓(xùn)基礎(chǔ)篇(已修改)

2024-10-15 20:58 本頁面
 

【正文】 IDL 高級培訓(xùn) 基礎(chǔ)篇 基礎(chǔ)篇 - 語法基礎(chǔ) 1. 變量及其屬性 數(shù)據(jù)類型 字節(jié) 值域 創(chuàng)建 類型函數(shù)字節(jié) 1 0 ~ 255 0B by t e()16 位有符號整型 2 32, 768 ~ 32 , 767 0 f ix ()32 位有符號整型 4 0L long()64 位有符號整型 8 0LL long64()16 位無符號整型 2 0 ~ 65535 0U uint ()32 位無符號整型 4 0 ~ 2^ 321 0U L ulong()64 位無符號整型 8 0 ~ 2^ 641 0U LL ulong64()浮點(diǎn)型 4 177。 1 0 ^ 38 0. 0 f loat ()雙精度浮點(diǎn)型 8 0. 0D double()復(fù)數(shù) 8 c om plex (0. 0, 0 . 0) c om plex ()雙精度復(fù)數(shù) 16 c om plex (0. 0D , 0 . 0D ) dc om plex ()字符串 0 ~ 32767 ‘’或 “” s t ri ng()指針 4 pt r_new () 對象 4 obj_new () ? 整型為短整型,注意使用 L ? 變量的屬性是動態(tài)改變的 var=5 為整型 var=var* 變?yōu)楦↑c(diǎn) ? NaN: !、 ! var=!, 則 finite(var)=1 基礎(chǔ)篇 - 語法基礎(chǔ) 2. 數(shù)組 IDL是面向矩陣的語言,幾乎所有運(yùn)算都可以在數(shù)組上使用。 數(shù)組表達(dá) : array[n,m] 表示 n列 m行(與其他語言有別),按行排列 , 0為下標(biāo)起點(diǎn) 數(shù)組引用: array[subscript], 或( array) [subscript] 下標(biāo)語法: e、 e0:e e:*、 *、 array。 array=make_array(10,10,/integer), sub=indgen(12) 合法的下標(biāo)表示: array[5,5]、 array[2:3,5]、 array[*,4]、 array[*,5:8]、 array[4,4:*]、 array[sub]、 A[[1,3,5],7:9] reform(): array[4,4:*]為 1列 4行(列向量), reform(array[4,4:*])則為 4列 1行(行向量) 常數(shù)的數(shù)組表示: var=5,則 var[0]=5(合法! ) 賦值: array[[2, 4, 6],5]=[4, 16, 36] where(): array[where(array lt 0)]=999 數(shù)學(xué)運(yùn)算: 與普通變量基本相同。 * 和 / :表示兩個(gè)同維數(shù)數(shù)組對應(yīng)元素運(yùn)算 arr1=indgen(5)+1, arr2=arr1。則: arr1*arr2=[1,4,9,16,25], arr1/arr2=[1,1,1,1] 和 : 矩陣運(yùn)算 arr1(n1,m)arr2(m,n2)=arr(n1,n2), arr1(n,m1)arr2(m2,n)=arr(m2,m1) 數(shù)組串連: arr1(5,6), arr2(5,2)。則: arr3=[[arr1],[arr2]]為( 5,8) 注意: arr3=[arr1,arr2]不合法!(一維除外) 數(shù)據(jù)類型 初始化函數(shù) 產(chǎn)生索引值函數(shù)創(chuàng)建字節(jié) by t arr bindgen16 位有符號整型 int arr indgen32 位有符號整型 lonarr lindgen64 位有符號整型 lon64arr l64indgen16 位無符號整型 uint arr uindgen32 位無符號整型 ulonarr ulindgen64 位無符號整型 ulon64arr ul64indgen浮點(diǎn)型 f lt arr f indgen雙精度浮點(diǎn)型 dblarr dindgen復(fù)數(shù) c om plex arr c indgen雙精度復(fù)數(shù) dc om plex arr dc indge n字符串 s t r arr s lindge n指針 pt rarr 對象 objarr 其他常用函數(shù) : array_equal、 rebin()、 congrid()、 expand()、 reverse() 數(shù)組常用函數(shù): 基礎(chǔ)篇 - 語法基礎(chǔ) 基礎(chǔ)篇 - 語法基礎(chǔ) 3. 結(jié)構(gòu) 一種復(fù)合變量,它可以將多種類型的數(shù)據(jù)存儲在一個(gè)變量中,對于表示意義相關(guān)的數(shù)據(jù)、程序間交換數(shù)據(jù)均非常有意義。 ? 類型及定義 命名結(jié)構(gòu): dot={PIXEL ,x:128 ,y:236 ,color:bytarr(3)}, 定義后可使用 FIXEL定義其他結(jié)構(gòu) dot1={PIXEL ,x:58 ,y:46 ,color:[255,0,255]}、 dot2={PIXEL ,58 ,46 ,[255,0,255]}、 dot3= {PIXEL} 匿名結(jié)構(gòu): person={name:’jack’ ,id:123456L}, 定義后無固定結(jié)構(gòu),可任意改變 person={name:’jack’ ,id:123456L ,phone:’1234567’} ? 引用 變量引用: 使用變量名或變量在結(jié)構(gòu)中的位置索引。如: dot.(0) 數(shù)組變量: s={arr:indgen(10)},則 =10將數(shù)組所有元素賦值為 10。 ? 結(jié)構(gòu)數(shù)組 定義: dotarr=replicate({PIXEL} ,10),或 dotarr=replicate(dot ,10) 引用: dotarr[1].x= =10將所有結(jié)構(gòu)的 x賦值為 =indgen(10) ? 結(jié)構(gòu)中的變量的類型和(數(shù)組)大小 結(jié)構(gòu)定義后,各變量的數(shù)據(jù)類型以及數(shù)組變量的維數(shù)均不可改變。當(dāng)使用中出現(xiàn)不一致時(shí)向原類型轉(zhuǎn)換,不能轉(zhuǎn)換時(shí)報(bào)錯(cuò)。 var=*=, 為浮點(diǎn),而 =dot仍為 整型。 =indgen(8)會改變 8個(gè)元素的值,而 =indgen(11)會出錯(cuò)。 ? 結(jié)構(gòu)繼承 dot3d={POINT ,INHERITS PIXEL ,z:0} ? 常用函數(shù) creat_struct()、 n_tags()、 tag_names()、 struct_assign() 基礎(chǔ)篇 - 語法基礎(chǔ) 4. 指針 建立動態(tài)數(shù)據(jù)結(jié)構(gòu)的有效工具,是實(shí)現(xiàn) IDL面向?qū)ο缶幊毯?Widget編程的基本要素之一。 IDL 的指針與其他語言的指針有很大的不同,它不是指向存儲的地址而僅僅是一個(gè)輕型的指向一個(gè)堆變量的引用(指針變量)。堆變量可以動態(tài)分配(數(shù)據(jù)類型和數(shù)組維數(shù)),這意味著傳遞指針變量就相當(dāng)于傳遞動態(tài)數(shù)據(jù)。 Pointer Reference Pointer Data Pointer in Heap Variables 指針基本操作 創(chuàng)建 : ptr=ptr_new( [initexpr] [, /allocate_heap] [, /no_copy] ) 釋放 : ptr_free ,ptr ?標(biāo)量 ?數(shù)組 ?結(jié)構(gòu) 基礎(chǔ)篇 - 語法基礎(chǔ) ? 標(biāo)量指針 創(chuàng)建: v=, p=ptr_new(v) 引用: print , p ,*p; p1=p, *p1=20, print ,*p ? 數(shù)組指針 創(chuàng)建: arr=findgen(10), p=ptr_new(arr) 引用: print ,(*p)[5] ? 結(jié)構(gòu)指針 創(chuàng)建: s={name:’joe’ ,age:40 ,height:180} , p=ptr_new(s) 引用: print , (*p).name ? 結(jié)構(gòu)內(nèi)指針 創(chuàng)建: rec={lon:120 ,lat:20 ,data:ptr_new(findgen(2,10))} , p=ptr_new(rec) 引用: * (*p).data=findgen(2,20) ? 特殊指針 Null指針: nptr=ptr_new(), 僅定義一個(gè)指針,并不指向一個(gè)堆變量。引用時(shí)需重新定義指針。 Empty指針: eptr=ptr_new(/allocate_heap), 定義一個(gè)指向一個(gè)堆變量的指針,但并未定義變量,引用時(shí)可以直接定義變量 ? 指針釋放 ptr_free ,ptr ? 相關(guān)函數(shù) ptr_valid(): ptr_valid(nptr)=0, ptr_valid(eptr)=1 heap_gc: 釋放沒有引用的堆變量 ? 指針數(shù)組 ptrarr( d1, ... , d8 [, /allocate_heap] ) 基礎(chǔ)篇 - 編程基礎(chǔ) IDLDE是 IDL的集成開發(fā)環(huán)境,可以使用 IDL命令進(jìn)行交互式命令運(yùn)行,編寫、調(diào)試、運(yùn)行 IDL程序,使用 GUI Builer開發(fā)用戶界面,使用項(xiàng)目管理器管理工程項(xiàng)目等。 1. IDL程序 批處理 : 由一系列 IDL命令組成,以 IDL@batchfile方式運(yùn)行。批處理文件運(yùn)行時(shí)并不編譯,因此使用控制結(jié)構(gòu)時(shí)必須大量使用續(xù)行符( $) ,給書寫、理解造成困難。 主程序 : 與批處理相似,但以 end結(jié)束,以 IDL.run profile方式運(yùn)行。主程序運(yùn)行時(shí)先編譯,因此可以正常使用控制結(jié)構(gòu)。 過程: 與主程序相似,但以 pro proname開始,以 end結(jié)束。以 IDLproname方式運(yùn)行(也可以先運(yùn)行 IDL.pile proname,編譯但不運(yùn)行)。 函數(shù): 與過程相似,但以 function fnname開始,以 end結(jié)束,并以 return語句返回一個(gè) IDL變量。以 IDLret=fnname(para_list)方式運(yùn)行。 在 IDL系統(tǒng)中,一個(gè)過程或函數(shù)即為一個(gè)新的 IDL命令。 變量作用范圍: 批處理和主程序方式的變量為全局變量,可以在 IDL開發(fā)環(huán)境中使用。過程和函數(shù)的變量為局部變量,只在過程和函數(shù)運(yùn)行過程中有效。 基礎(chǔ)篇 - 編程基礎(chǔ) 2. 參數(shù)傳遞 位置參數(shù) : 在參數(shù)列表中按位置列出參數(shù)名,嚴(yán)格的順序限制。通常用于必選參數(shù)。 定義: pro batch ,para1 ,para2 ,... 調(diào)用: IDLbatch ,para1 ,para2 ,… 關(guān)鍵字參數(shù) : 關(guān)鍵字參數(shù)與位置無關(guān),且可以與位置參數(shù)混合位置。通常放在位置參數(shù)之后,用于可選參數(shù)。 定義: pro batch ,keywordname=keywordsymbol ,... 調(diào)用: IDLbatch ,keywordname=keywordsymbol ,… IDLbatch ,/keywordname 注意: keywordname用于定義, keywordsymbol用于調(diào)用 。 引用傳遞和值傳遞: 所有變量為引用傳遞,其值會被修改。系統(tǒng)變量、下標(biāo)變量、表達(dá)式和常量均為值傳遞,原變量的值不被修改。 參數(shù)傳遞了嗎?傳遞了什么? n_params(): 返回位置參數(shù)的個(gè)數(shù) keyword_set(): 關(guān)鍵字參數(shù)為不為 0常量或已定義的引用傳遞時(shí)返回 1,否則返回 0 arg_present(): 關(guān)鍵字參數(shù)為引用傳遞時(shí)返回 1(無論是否定義),否則返回 0 n_elements(): 關(guān)鍵字參數(shù)未傳遞或未定義返回 0,否則返回非 0數(shù) 基礎(chǔ)篇 - 編程基礎(chǔ) 3. 錯(cuò)誤處理 on_ioerror: 當(dāng)出現(xiàn) I/O錯(cuò)誤時(shí),跳轉(zhuǎn)指定的語句。兩種用途:跳過錯(cuò)誤返回或跳過錯(cuò)誤繼續(xù)。 注意:使用 on_ioerror , null on_error: 當(dāng)程序運(yùn)行出錯(cuò)時(shí),并不執(zhí)行一個(gè)新的語句,而是指明 IDL應(yīng)該怎樣做。 可以設(shè)置 on_error ,1, 或在命令行使用 retall catch: 格式 : catch ,error_var。 當(dāng)程序執(zhí)行到 catch語句時(shí), IDL為改模塊記錄一個(gè)錯(cuò)誤處理語句,并將 error_var賦值為 0。若程序執(zhí)行出錯(cuò),則給 error_var賦值相應(yīng)的錯(cuò)誤碼,然
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1