Matlab與控制系統(tǒng)設(shè)計(jì) 2_第1頁(yè)
Matlab與控制系統(tǒng)設(shè)計(jì) 2_第2頁(yè)
Matlab與控制系統(tǒng)設(shè)計(jì) 2_第3頁(yè)
Matlab與控制系統(tǒng)設(shè)計(jì) 2_第4頁(yè)
Matlab與控制系統(tǒng)設(shè)計(jì) 2_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二部分MATLAB的程序設(shè)計(jì)

2.1腳本文件和函數(shù)文件2.2函數(shù)調(diào)用和參數(shù)傳遞2.3MATLAB的程序結(jié)構(gòu)和控制流2.4M文件的調(diào)試12.1腳本文件和函數(shù)文件2.1.1M腳本文件對(duì)于一些比較簡(jiǎn)單的問(wèn)題,在指令窗中直接輸入指令計(jì)算。對(duì)于復(fù)雜計(jì)算,采用腳本文件(Scriptfile)最為合適。MATLAB只是按文件所寫(xiě)的指令執(zhí)行。M腳本文件的特點(diǎn)是:腳本文件的構(gòu)成比較簡(jiǎn)單,只是一串按用戶(hù)意圖排列而成的(包括控制流向指令在內(nèi)的)MATLAB指令集合。腳本文件運(yùn)行后,所產(chǎn)生的所有變量都駐留在MATLAB基本工作空間(Baseworkspace)中。只要用戶(hù)不使用清除指令(clear),MATLAB指令窗不關(guān)閉,這些變量將一直保存在基本工作空間中。M文件有兩種形式:腳本文件(ScriptFile)和函數(shù)文件(FunctionFile)。這兩種文件的擴(kuò)展名,均為“.m”。22.1腳本文件和函數(shù)文件(續(xù)1)2.1.2M函數(shù)文件與腳本文件不同,函數(shù)文件猶如一個(gè)“黑箱”,把一些數(shù)據(jù)送進(jìn)并經(jīng)加工處理,再把結(jié)果送出來(lái)。MATLAB提供的函數(shù)指令大部分都是由函數(shù)文件定義的。M函數(shù)文件的特點(diǎn)是:從形式上看,與腳本文件不同,函數(shù)文件的笫一行總是以“function”引導(dǎo)的“函數(shù)申明行”。從運(yùn)行上看,與腳本文件運(yùn)行不同,每當(dāng)函數(shù)文件運(yùn)行,MATLAB就會(huì)專(zhuān)門(mén)為它開(kāi)辟一個(gè)臨時(shí)工作空間,稱(chēng)為函數(shù)工作空間(Functionworkspace)

。當(dāng)執(zhí)行文件最后一條指令時(shí),就結(jié)束該函數(shù)文件的運(yùn)行,同時(shí)該臨時(shí)函數(shù)空間及其所有的中間變量就立即被清除。MATLAB允許使用比“標(biāo)稱(chēng)數(shù)目”較少的輸入輸出宗量,實(shí)現(xiàn)對(duì)函數(shù)的調(diào)用。32.1腳本文件和函數(shù)文件(續(xù)2)2.1.3M文件的一般結(jié)構(gòu)由于從結(jié)構(gòu)上看,腳本文件只是比函數(shù)文件少一個(gè)“函數(shù)申明行”,所以只須描述清楚函數(shù)文件的結(jié)構(gòu)。典型M函數(shù)文件的結(jié)構(gòu)如下:函數(shù)申明行:位于函數(shù)文件的首行,以關(guān)鍵字function開(kāi)頭,函數(shù)名以及函數(shù)的輸入輸出宗量都在這一行被定義。笫一注釋行:緊隨函數(shù)申明行之后以%開(kāi)頭笫一注釋行。該行供lookfor關(guān)鍵詞查詢(xún)和help在線幫助使用。在線幫助文本區(qū):笫一注釋行及其之后的連續(xù)以%開(kāi)頭的所有注釋行構(gòu)成整個(gè)在線幫助文本。編寫(xiě)和修改記錄:與在線幫助文本區(qū)相隔一個(gè)“空”行,也以%開(kāi)頭,標(biāo)志編寫(xiě)及修改該M文件的作者和日期等。函數(shù)體:為清晰起見(jiàn),它與前面的注釋以“空”行相隔。例2_2_1:M函數(shù)文件示例。42.2函數(shù)調(diào)用和參數(shù)傳遞2.2.1局部變量和全局變量局部(Local)變量:它存在于函數(shù)空間內(nèi)部的中間變量,產(chǎn)生于該函數(shù)的運(yùn)行過(guò)程中,其影響范圍也僅限于該函數(shù)本身。全局(Global)變量:通過(guò)global指令,MATLAB也允許幾個(gè)不同的函數(shù)空間以及基本工作空間共享同一個(gè)變量,這種被共享的變量稱(chēng)為全局變量。2.2.2函數(shù)調(diào)用在MATLAB中,調(diào)用函數(shù)的常用形式是:[輸出參數(shù)1,輸出參數(shù)2,…]=函數(shù)名(輸入?yún)?shù)1,輸入?yún)?shù)2,…)函數(shù)調(diào)用可以嵌套,一個(gè)函數(shù)可以調(diào)用別的函數(shù),甚至調(diào)用它自己(遞歸調(diào)用)。52.2函數(shù)調(diào)用和參數(shù)傳遞(續(xù))2.2.3參數(shù)傳遞MATLAB在函數(shù)調(diào)用上有一個(gè)與眾不同之處:函數(shù)所傳遞的參數(shù)具有可調(diào)性。傳遞參數(shù)數(shù)目的可調(diào)性來(lái)源于如下兩個(gè)MATLAB永久變量:函數(shù)體內(nèi)的nargin

給出調(diào)用該函數(shù)時(shí)的輸入?yún)?shù)數(shù)目。函數(shù)體內(nèi)的nargout

給出調(diào)用該函數(shù)時(shí)的輸出參數(shù)數(shù)目。只要在函數(shù)文件中包括這兩個(gè)變量,就可以知道該函數(shù)文件調(diào)用時(shí)的輸入?yún)?shù)和輸出參數(shù)數(shù)目。值得注意:nargin、nargout

本身都是函數(shù),不是變量,所以用戶(hù)不能賦值,也不能顯示。(參考:circle.m,am1.m)62.3MATLAB的程序結(jié)構(gòu)和控制流2.3.1程序結(jié)構(gòu)循環(huán)結(jié)構(gòu):MATLAB提供兩種循環(huán)方式。順序結(jié)構(gòu)分支結(jié)構(gòu):if—else—end。for—end循環(huán)和while---end循環(huán)。2.3.2程序流控制常用指令:return,echo,input,pause,keyboard,break。switch---case結(jié)構(gòu)。try---catch結(jié)構(gòu)。腳本文件(ScriptFile)警示指令:error,warning。72.3MATLAB的程序結(jié)構(gòu)和控制流(續(xù))2.3.3圖形用戶(hù)界面(GUI)編程現(xiàn)代的主流應(yīng)用程序已經(jīng)從命令行的交互方式轉(zhuǎn)變?yōu)橐詧D形界面為主的交互方式,這主要是由于它給用戶(hù)帶來(lái)了操作和控制的方便與靈活性。(面向?qū)ο缶幊蹋㎝ATLAB能夠以比較簡(jiǎn)單的方式實(shí)現(xiàn)一系列的圖形界面功能。通過(guò)對(duì)控件、菜單屬性的設(shè)置和

Callback的編寫(xiě),就能夠滿足大多數(shù)用戶(hù)的需求。

控件的Callback屬性:Callback屬性的取值是字符串,可以是某個(gè)M文件名或一小段MATLAB語(yǔ)句。當(dāng)用戶(hù)激活控件對(duì)象(例如:在控件對(duì)象圖標(biāo)上單擊鼠標(biāo)左鍵)時(shí),應(yīng)用程序就運(yùn)行Callback屬性定義的子程序。

菜單的Callback屬性:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論