MATLAB建模與仿真應(yīng)用教程第3版課件_第1頁
MATLAB建模與仿真應(yīng)用教程第3版課件_第2頁
MATLAB建模與仿真應(yīng)用教程第3版課件_第3頁
MATLAB建模與仿真應(yīng)用教程第3版課件_第4頁
MATLAB建模與仿真應(yīng)用教程第3版課件_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

MATLAB

建模與仿真應(yīng)用教程第3版普通高等教育系列教材劉德勝趙魁陳曉偉等編著MATLAB建模與仿真應(yīng)用教程5.1M文件5.2MATLAB的程序結(jié)構(gòu)5.3圖形用戶界面GUI的設(shè)計5.4MATLAB程序設(shè)計的基本原則5.5

MATLAB程序設(shè)計實例第5章MATLAB的程序設(shè)計MATLAB作為一種計算機高級語言,用戶不但可以方便的在命令窗口中,以命令行的方式完成交互式操作,而且可以像其他計算機高級語言一樣,具有條件選擇語句、循環(huán)控制語句和圖形用戶界面(GUI)設(shè)計的能力,可以用來開發(fā)各種計算機程序。注:MATLAB是一種解釋型語言。第5章MATLAB的程序設(shè)計5.1M文件5.1.1M文件基礎(chǔ)由MATLAB的命令、條件選擇語句、循環(huán)控制語句和函數(shù)構(gòu)成的文本文件,以*.m為擴(kuò)展名。M文件的創(chuàng)建:1)在命令行窗口中直接輸入“edit”

命令;

2)單擊工具欄中的按鈕;

3)主頁新建腳本或函數(shù)命令。2.M文件的打開:1)在命令行窗口中直接輸入“edit+M文件名”;

2)單擊工具欄中的按鈕;3)主頁打開命令。5.1M文件5.1.2命令文件與函數(shù)文件1.命令文件也稱為批處理文件,由一系列的命令或函數(shù)組成,也可以包括條件選擇語句和循環(huán)控制語句。和命令窗口相似,程序?qū)磸纳系较碌捻樞蛑鹦袌?zhí)行,新創(chuàng)建的變量將保存在工作空間中,也可以調(diào)用工作空間中已有的變量。命令文件結(jié)束后,這些變量仍然保存在工作控件中。命令文件不接受輸入?yún)?shù),也沒有輸出參數(shù),只需要在命令窗口中輸入“M文件名”即可運行。編寫完成命令語句之后,點擊工具欄中的“”圖標(biāo),執(zhí)行命令文件。5.1M文件5.1.2命令文件與函數(shù)文件2.函數(shù)文件函數(shù)文件是以function語句開始,以end結(jié)束的M文件,可以接受輸入?yún)?shù)并返回輸出參數(shù),將根據(jù)輸入?yún)?shù)的不同而完成一定的功能。用戶可以根據(jù)需要編制自己的函數(shù)文件,擴(kuò)充MATLAB的功能。函數(shù)文件的定義格式:function[輸出變量矩陣]=函數(shù)名(輸入變量矩陣)%幫助文本的第一行,總體上說明函數(shù)名和函數(shù)的功能%幫助文本,詳細(xì)介紹函數(shù)的功能和用法函數(shù)的程序代碼 %適當(dāng)?shù)淖⑨宔nd5.1M文件5.1.2命令文件與函數(shù)文件2.函數(shù)文件【例5-2】已知一元二次方程

,試編寫程序,分別計算x=1,x=2,x=3時的值。新建一個M函數(shù)文件,函數(shù)名為m5_2,輸入如下的命令語句,以m5_2.m為文件名保存文件。function[y]=m5_2(x)%UNTITLED2Summaryofthisfunctiongoeshere%Detailedexplanationgoesherey=2*x^2+5*x+10;end編寫完成命令語句之后,在命令窗口中調(diào)用m5_2函數(shù)>>x1=1;>>y1=m5_2(x1)>>y1y1=

175.1M文件5.1.2命令文件與函數(shù)文件3.子函數(shù)和其它高級語言一樣,在MATLAB中也可以定義子函數(shù)。所謂子函數(shù),就是在同一個M文件中,第一個function所定義的函數(shù)為主函數(shù),其它的函數(shù)就是子函數(shù)。子函數(shù)只能在所在的M文件中被調(diào)用。局部函數(shù)是指編譯過的M文件存儲在MATLAB下的private目錄下的函數(shù)。與子函數(shù)不同的是,局部函數(shù)可以被private目錄下的任意函數(shù)所調(diào)用。5.2MATLAB的程序結(jié)構(gòu)5.2.1條件選擇語句MATLAB中沒有表示“真和假”的布爾量,系統(tǒng)將根據(jù)邏輯運算式的值是否為零來判斷,如果邏輯運算式的值不為零,則認(rèn)為是“真”,執(zhí)行if的程序代碼;否則將跳過if結(jié)構(gòu)。1.if–end

語句if邏輯運算式

程序代碼end2.if–else–end

語句if邏輯運算式1

程序代碼1else

程序代碼2end5.2MATLAB的程序結(jié)構(gòu)5.2.1條件選擇語句3.if–elseif–end

語句if邏輯運算式1

程序代碼1Elseif邏輯運算式2

程序代碼2……Elseif邏輯運算式n

程序代碼nelse

程序代碼n+1end4.switch–case–end

語句switch開關(guān)表達(dá)式case表達(dá)式1

程序代碼1case表達(dá)式2

程序代碼2……case表達(dá)式n

程序代碼notherwise

程序代碼n+1end5.2MATLAB的程序結(jié)構(gòu)5.2.2循環(huán)控制語句1.for–end循環(huán)for循環(huán)次數(shù)變量=Initial:Increment:FinalValue

程序代碼endfunction[m,sum]=m5_5(n)sum=0;m=1;form=1:n

sum=sum+m;

m=m+1;endm=m-1;end在命令窗口中輸入:>>n=100;>>[n,sum]=m5_5(n)n=100sum=50505.2MATLAB的程序結(jié)構(gòu)5.2.2循環(huán)控制語句2.while–end循環(huán)while條件表達(dá)式

程序代碼段endfunction[sum]=m5_7(n)

sum=0;m=1;whilem<=n

sum=sum+m;

m=m+1;endend在命令窗口中輸入:>>n=100;>>sum=m5_7(n)sum=50505.2MATLAB的程序結(jié)構(gòu)5.2.3錯誤控制與循環(huán)終止1.try–catch語句try

程序代碼1catch

程序代碼2end首先執(zhí)行try下面的程序代碼1,如果沒有錯誤,執(zhí)行完成后跳出結(jié)構(gòu),執(zhí)行end后面的程序;如果執(zhí)行程序代碼1的過程中出現(xiàn)錯誤,系統(tǒng)將捕獲錯誤信息,存放在lasterr變量中,然后執(zhí)行程序代碼2。try-catch語句在調(diào)試程序非常有用。5.2MATLAB的程序結(jié)構(gòu)5.2.3錯誤控制與循環(huán)終止2.continue語句continue語句用在for循環(huán)或while循環(huán)結(jié)構(gòu)中,與if語句相配合,用于跳過本次循環(huán),即跳過continue語句后面的語句,直接進(jìn)行下一次循環(huán)。在多層嵌套的循環(huán)結(jié)構(gòu)中,continue語句僅跳過它所在層次的本次循環(huán)。3.break語句break語句用在for循環(huán)或while循環(huán)結(jié)構(gòu)中,與if語句相配合,用于終止循環(huán),即直接跳出循環(huán)。在多層嵌套的循環(huán)結(jié)構(gòu)中,break語句僅終止它所在層次的循環(huán)。5.2MATLAB的程序結(jié)構(gòu)5.2.3錯誤控制與循環(huán)終止4.return語句return語句用于終止函數(shù)的運行,與if語句相配合,直接返回到調(diào)用它的函數(shù)或MATLAB命令窗口。在MATLAB中,函數(shù)運行結(jié)束后會自動返回到調(diào)用它的函數(shù),而在程序代碼中某處插入return語句,將根據(jù)if條件迫使程序提前結(jié)束,并返回到調(diào)用它的函數(shù)。5.3圖形用戶界面GUI的設(shè)計5.3.1GUI設(shè)計向?qū)Э瞻譍UI(BlankGUI)控制GUI(GUIwithUicontrols)圖像與菜單GUI(GUIwithAxesandMenu)對話框GUI(ModelQuestionDialog)5.3圖形用戶界面GUI的設(shè)計5.3.2GUI控件表5-1MATLAB提供的GUI控件圖標(biāo)對應(yīng)功能圖標(biāo)對應(yīng)功能圖標(biāo)對應(yīng)功能普通按鈕滾動條切換按鈕單選按鈕復(fù)選框ActiveX控件靜態(tài)文本可編輯文本面板列表框彈出式菜單選擇表格坐標(biāo)軸Axes坐標(biāo)軸5.3圖形用戶界面GUI的設(shè)計5.3.3GUI設(shè)計工具1.控件布局編輯器5.3圖形用戶界面GUI的設(shè)計5.3.3GUI設(shè)計工具2.屬性檢查器3.菜單編輯器5.3圖形用戶界面GUI的設(shè)計5.3.3GUI設(shè)計工具4.對齊對象5.對象瀏覽器5.4MATLAB程序設(shè)計的基本原則1.MATLAB程序的基本組成如下:1)%命令行注釋。2)采用clear、close命令清除工作空間的變量。3)定義變量,設(shè)置初始值。4)編寫運算指令、調(diào)用函數(shù)或調(diào)用子程序。5)使用流程控制語句。6)直接在命令窗口中顯示運算結(jié)果或者通過繪圖命令顯示運算結(jié)果。2.一般情況下主程序開頭習(xí)慣使用clear命令清除工作空間變量,然而子程序開頭不要使用clear命令。5.4MATLAB程序設(shè)計的基本原則3.程序命名盡量清晰,便于日后維護(hù)。4.初始值盡量放在程序的前面,便于更改和查看。5.如初始值較長或者較常用,可以通過編寫子程序?qū)⑺械某跏贾颠M(jìn)行存儲,以便調(diào)用。6.對于較大的程序設(shè)計,盡量將程序分解成每個具有獨立功能的子程序,然后采用主程序調(diào)用子程序的方法進(jìn)行編程。7.充分地利用M文件編輯窗口里面的設(shè)置斷點、單步執(zhí)行和連續(xù)執(zhí)行工具對程序進(jìn)行調(diào)試。5.3MATLAB程序設(shè)計實例5.5.1M命令文件設(shè)計實例【例5-9】猩猩吃香蕉問題:有一堆不知數(shù)目的香蕉,猩猩第一天吃掉一半,覺得沒吃夠,又多吃了一個。第二天依舊如此吃香蕉,即吃掉剩下香蕉的一半再加一個。以后天天如此,直至第十天早上發(fā)現(xiàn)只剩下一個香蕉了。問這堆香蕉原來的數(shù)目和每天剩余香蕉的數(shù)目是多少?問題分析:此題初看起來感覺無從下手,其實這是一個典型的遞推問題,即可以先假設(shè)第1天共有x1個香蕉,第2天剩余x2個香蕉,……,第9天剩余x9個,第10天剩余x10個。從題干中可以看出x10=1,而且可以看出

之間存在

,即的關(guān)系,其中。5.3MATLAB程序設(shè)計實例5.5.1M命令文件設(shè)計實例%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%例5-9,猩猩吃香蕉問題%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%x=zeros(1,10);%1行10列的零矩陣,保存每天香蕉的數(shù)目x(10)=1; %給定初值,第10天還剩1個香蕉Total=0; %預(yù)設(shè)香蕉總數(shù)變量i=9;

forn=i:-1:1 %循環(huán)遞推,計算每天的香蕉數(shù)目x(n)=2*(x(n+1)+1);end%endforn

Total=x(1) %輸出這堆香蕉原來的數(shù)目x %輸出每天剩余香蕉的數(shù)目5.3MATLAB程序設(shè)計實例5.5.2M函數(shù)文件設(shè)計實例【例5-10】某商場對商品實行打折促銷,具體標(biāo)準(zhǔn)如表5-3所示,試編寫程序計算顧客的實際消費金額和所享受的折扣。消費額度折扣若總消費小于300元無折扣若總消費大于等于300元,并小于500元1%折扣若總消費大于等于500元,并小于800元3%折扣若總消費大于等于800元,并小于1500元5%折扣若總消費大于等于1500元,并小于3000元7%折扣若總消費大于等于3000元,并小于10000元9

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論