MATLAB編程-講義及實例.ppt_第1頁
MATLAB編程-講義及實例.ppt_第2頁
MATLAB編程-講義及實例.ppt_第3頁
MATLAB編程-講義及實例.ppt_第4頁
MATLAB編程-講義及實例.ppt_第5頁
免費預(yù)覽已結(jié)束,剩余64頁可下載查看

下載本文檔

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

文檔簡介

1、MATLAB語言,機械與汽車工程學(xué)院,2012.03,教學(xué)內(nèi)容: MATLAB程序控制 M腳本文件和M函數(shù)文件 變量的檢測傳遞和限權(quán)使用函數(shù) 函數(shù)句柄 圖形用戶界面編程(GUI),第四章程序設(shè)計,4.1程序流程語句,選擇結(jié)構(gòu) if switch 循環(huán)結(jié)構(gòu) while for,4.1.1 選擇結(jié)構(gòu) 1. if 條件 語句組 end 當條件成立時,則執(zhí)行語句組,執(zhí)行完之后繼續(xù)執(zhí)行語句的后繼語句,若條件不成立,則直接執(zhí)行if語句的后繼語句。,4.1程序流程語句,4.1.1選擇結(jié)構(gòu)語句,4.1.1選擇結(jié)構(gòu)語句,4.1程序流程語句,4.1.1 選擇結(jié)構(gòu) 例.給定兩個實數(shù),按代數(shù)值的大小輸出其中大的 ab

2、 ba 兩次判斷條件,4.1.1 選擇結(jié)構(gòu) 2. if 條件 語句組1 else 語句組2 end 當條件成立時,執(zhí)行語句組1,否則執(zhí)行語 句組2,語句組1或語句組2執(zhí)行后,再執(zhí)行if語句的后繼語句。,4.1程序流程語句,4.1程序流程語句,4.1.1 選擇結(jié)構(gòu) 例.給定兩個實數(shù),按代數(shù)值的大小輸出其中大的,4.1程序流程語句,4.1.1 選擇結(jié)構(gòu) 例.x為磨床冷卻液溫度傳感器得到的溫度值(這里用1828的隨機數(shù)代替),如果溫度在21-25之間,在監(jiān)控器上顯示“溫度正?!?,低于21顯示報警“磨削液溫度過低”,高于25顯示報警“磨削液溫度過高”,溫度25 三次判斷條件,4.1程序流程語句,4.1

3、.1 選擇結(jié)構(gòu) 3. if 條件1 語句組 elseif 條件2 語句組2 elseif 條件m 語句組m else 語句組n end 語句用于實現(xiàn)多分支選擇結(jié)構(gòu)。,4.1程序流程語句,3.2.1 選擇結(jié)構(gòu) 例.x為磨床冷卻液溫度傳感器得到的溫度值(這里用1828的隨機數(shù)代替),如果溫度在21-25之間,在監(jiān)控器上顯示“溫度正?!?,低于21顯示報警“磨削液溫度過低”,高于25顯示報警“磨削液溫度過高”,4.1程序流程語句,4.1.1 選擇結(jié)構(gòu) 思考:計算分段函數(shù)的值 X X=2,2,2,2,4.1程序流程語句,4.1程序流程語句,4.1.1 選擇結(jié)構(gòu) 4. switch 表達式 case 表達

4、式1 語句組1; case 表達式2 語句組2; case 表達式m 語句組m; otherwise 語句組n; end,4.1程序流程語句,4.1.1 選擇結(jié)構(gòu) 例.某商場對顧客所購買的商品實行打折銷售,標準如下(商品價格用price來表示): price200 沒有折扣 200price500 3%折扣 500price1000 5%折扣 1000price2500 8%折扣 2500price5000 10%折扣 5000price 14%折扣 輸入所售商品的價格,求其實際銷售價格,4.1程序流程語句,4.1程序流程語句,4.1.1 選擇結(jié)構(gòu) 思考: 給出學(xué)生的百分制成績,要求轉(zhuǎn)化成成績

5、等級輸出,等級分為優(yōu)秀,良好,中等,及格90分以上的為優(yōu)秀,80-89的為良好,70-79的為中等,60-69的為及格,其他為不及格.,4.1程序流程語句,4.1程序流程語句,4.1.2 循環(huán)結(jié)構(gòu) 1while語句 while語句的一般格式為: while (條件) 循環(huán)體語句 end 其執(zhí)行過程為:若條件成立,則執(zhí)行循環(huán)體語句,執(zhí)行后再判斷條件是否成立,如果不成立則跳出循環(huán)。,4.1程序流程語句,4.1.2 循環(huán)結(jié)構(gòu) 例.求1+2+3+100的和,4.1程序流程語句,4.1程序流程語句,4.12 循環(huán)結(jié)構(gòu) 2for語句 for語句的格式為: for 循環(huán)變量=表達式1:表達式2:表達式3 循

6、環(huán)體語句 end 其中表達式1的值為循環(huán)變量的初值,表達式2的值為步長,表達式3的值為循環(huán)變量的終值。步長為1時,表達式2可以省略。,4.1程序流程語句,4.1.2 循環(huán)結(jié)構(gòu) 例.求1+2+2+100的和,4.1程序流程語句,4.1.2 循環(huán)結(jié)構(gòu) 例.寫出下列程序的執(zhí)行結(jié)果。 s=0; a=12,13,14;15,16,17;18,19,20;21,22,23; for k=a s=s+k; end disp(s);,4.1程序流程語句,4.1程序流程語句,4.1.2 循環(huán)結(jié)構(gòu) 3循環(huán)的嵌套 如果一個循環(huán)結(jié)構(gòu)的循環(huán)體又包括一個循環(huán)結(jié)構(gòu),就稱為循環(huán)的嵌套,或稱為多重循環(huán)結(jié)構(gòu)。 例:有一數(shù): 1+

7、1+1+1+2+2+2+2+3+3+3+3,1,2,3,10,1,2,3,10,1,2,3,10,4.1程序流程語句,4.1程序流程語句,4.1.2 循環(huán)結(jié)構(gòu) 思考.一個三位整數(shù)各位數(shù)字的立方和等于該數(shù)本身則稱該數(shù)為水仙花數(shù),輸出全部水仙花數(shù)。,4.1程序流程語句,4.1程序流程語句,4.1.3 其他流程控制語句 1break語句和continue語句 break語句用于終止循環(huán)的執(zhí)行。當在循環(huán)體內(nèi)執(zhí)行到該語句時,程序?qū)⑻鲅h(huán),繼續(xù)執(zhí)行循環(huán)語句的下一語句。 continue語句控制跳過循環(huán)體中的某些語句。當在循環(huán)體內(nèi)執(zhí)行到該語句時,程序?qū)⑻^循環(huán)體中所有剩下的語句,繼續(xù)下一次循環(huán)。,4.1程

8、序流程語句,例:求100,200之間第一個能被21整除的整數(shù)。,4.1.3 其他流程控制語句 2try語句 語句格式為: try 語句組1 catch 語句組2 end try語句先試探性執(zhí)行語句組1,如果語句組1在執(zhí)行過程中出現(xiàn)錯誤,則將錯誤信息賦給保留的lasterr變量,并轉(zhuǎn)去執(zhí)行語句組2。,4.1程序流程語句,4.1程序流程語句,4.1程序流程語句,小作業(yè):猜數(shù)游戲。 首先由計算機產(chǎn)生1,100之間的隨機整數(shù),然后由用戶猜測所產(chǎn)生的隨機數(shù)。根據(jù)用戶猜測的情況給出不同提示,如猜測的數(shù)大于產(chǎn)生的數(shù),則顯示“High”,小于則顯示“Low”,等于則顯示“You won”,同時退出游戲,用戶最

9、多可以猜7次。,4.1程序流程語句,M命令文件: M文件是一個文本文件,它可以用任何編輯程序來建立和編輯,而一般常用且最為方便的是使用MATLAB提供的文本編輯器。,4.2 M命令文件和M函數(shù)文件,4.2.1 M命令文件,1建立新的M文件 為建立新的M文件,啟動MATLAB文本編輯器有3種方法: (1) 菜單操作。從MATLAB主窗口的File菜單中選擇New菜單項,再選擇M-file命令,屏幕上將出現(xiàn)MATLAB 文本編輯器窗口。 (2) 命令操作。在MATLAB命令窗口輸入命令edit,啟動MATLAB文本編輯器后,輸入M文件的內(nèi)容并存盤。 (3) 命令按鈕操作。單擊MATLAB主窗口工具

10、欄上的New M-File命令按鈕,啟動MATLAB文本編輯器后,輸入M文件的內(nèi)容并存盤。,4.2.1 M命令文件,4.2 M命令文件和M函數(shù)文件,2打開已有的M文件 打開已有的M文件,也有3種方法: (1) 菜單操作。從MATLAB主窗口的File菜單中選擇Open命令,則屏幕出現(xiàn)Open對話框,在Open對話框中選中所需打開的M文件。在文檔窗口可以對打開的M文件進行編輯修改,編輯完成后,將M文件存盤。 (2) 命令操作。在MATLAB命令窗口輸入命令:edit 文件名,則打開指定的M文件。 (3) 命令按鈕操作。單擊MATLAB主窗口工具欄上的Open File命令按鈕,再從彈出的對話框中

11、選擇所需打開的M文件。,4.2.1 M命令文件,4.2 M命令文件和M函數(shù)文件,3程序調(diào)試,Debug菜單項 該菜單項用于程序調(diào)試,需要與Breakpoints菜單項配合使用。 Breakpoints菜單項 該菜單項共有6個菜單命令,前兩個是用于在程序中設(shè)置和清除斷點的,后4個是設(shè)置停止條件的,用于臨時停止M文件的執(zhí)行,并給用戶一個檢查局部變量的機會,相當于在M文件指定的行號前加入了一個keyboard命令。,4.2.1 M命令文件,4.2 M命令文件和M函數(shù)文件,4.2.2 函數(shù)文件 functions 數(shù)學(xué)中的一種對應(yīng)關(guān)系,是從非空集合A到實數(shù)集B的對應(yīng)。精確地說,設(shè)X是一個非空集合,Y是

12、非空數(shù)集 ,f是個對應(yīng)法則 , 若對X中的每個x,按對應(yīng)法則f,使Y中存在唯一的一個元素y與之對應(yīng) , 就稱對應(yīng)法則f是X上的一個函數(shù),記作yf(x),稱X為函數(shù)f(x)的定義域,集合y|y=f(x),xX為其值域(值域是Y的子集),x叫做自變量,y叫做因變量,習(xí)慣上也說y是x的函數(shù)。,4.2 M命令文件和M函數(shù)文件,4.2.2 函數(shù)文件 M文件可以根據(jù)調(diào)用方式的不同分為兩類:命令文件(Script File)和函數(shù)文件(Function File)。,4.2 M命令文件和M函數(shù)文件,例:分別建立命令文件和函數(shù)文件,將華氏溫度f轉(zhuǎn)換為攝氏溫度c。 程序1: 首先建立命令文件并以文件名f2c.m

13、存盤。 f=input(Input Fahrenheit temperature:); c=5*(f-32)/9 然后在MATLAB的命令窗口中輸入f2c,將會執(zhí)行該命令文件,執(zhí)行情況為: Input Fahrenheit temperature:73 c = 22.7778,程序2: 首先建立函數(shù)文件f2c.m。 function c=f2c(f) c=5*(f-32)/9 然后在MATLAB的命令窗口調(diào)用該函數(shù)文件。 y=input(Input Fahrenheit temperature:); x=f2c(y) 輸出情況為: Input Fahrenheit temperature:70

14、 c = 21.1111 x = 21.1111,4.2.2 函數(shù)文件結(jié)構(gòu) 函數(shù)文件由function語句引導(dǎo),其基本結(jié)構(gòu)為: function 輸出形參表=函數(shù)名(輸入形參表) 注釋說明部分 函數(shù)體語句 其中以function開頭的一行為引導(dǎo)行,表示該M文件是一個函數(shù)文件。函數(shù)名的命名規(guī)則與變量名相同。輸入形參為函數(shù)的輸入?yún)?shù),輸出形參為函數(shù)的輸出參數(shù)。當輸出形參多于一個時,則應(yīng)該用方括號括起來。,4.2 M命令文件和M函數(shù)文件,例 編寫函數(shù)文件求半徑為r的圓的面積和周長。 函數(shù)文件如下: function s,p=fcircle(r) %CIRCLE calculate the area

15、and perimeter of a circle of radii r %r 圓半徑 %s 圓面積 %p 圓周長 %2004年7月30日編 s=pi*r*r; p=2*pi*r;,4.2 M命令文件和M函數(shù)文件,函數(shù)M文件 一般由5個部分組成: (1)函數(shù)定義行; (2)H1行; (3)函數(shù)幫助文本; (4)函數(shù)體; (5)注釋。,4.2 M命令文件和M函數(shù)文件,4.2.2 函數(shù)調(diào)用 函數(shù)文件編制好后,就可以調(diào)用函數(shù)進行計算 輸出形參表=函數(shù)名(輸入形參表) 要注意的是,函數(shù)調(diào)用時各實參出現(xiàn)的順序、個數(shù),應(yīng)與函數(shù)定義時形參的順序、個數(shù)一致,否則會出錯。函數(shù)調(diào)用時,先將實參傳遞給相應(yīng)的形參,從

16、而實現(xiàn)參數(shù)傳遞,然后再執(zhí)行函數(shù)的功能。,4.2 M命令文件和M函數(shù)文件,例:利用函數(shù),求n!,4.2 M命令文件和M函數(shù)文件,例:利用函數(shù),求1!+2!+3!+n!,4.2 M命令文件和M函數(shù)文件,在MATLAB中,函數(shù)可以嵌套調(diào)用,即一個函數(shù)可以調(diào)用別的函數(shù),甚至調(diào)用它自身。一個函數(shù)調(diào)用它自身稱為函數(shù)的遞歸調(diào)用。,4.2 M命令文件和M函數(shù)文件,例:利用函數(shù)的遞歸調(diào)用,求n!。 顯然,求n!需要求(n-1)!,這時可采用遞歸調(diào)用。遞歸調(diào)用函數(shù)文件factor.m如下:,4.2 M命令文件和M函數(shù)文件,例 nargin用法示例。 x=1:3; y=1;2;3; charray(x) charr

17、ay(x,y) charray(x,y,3),4.2 M命令文件和M函數(shù)文件,給定兩個實數(shù)a、b,一個自然數(shù)n,求解當n=1,10時所有的(a+b)n和(a-b)n。,首先建立函數(shù)文件addsub.m functionout1,out2=addsub(a,b,n) %計算(a+b)n和(a-b)n out1= (a+b)n; out2= (a-b)n; 建立調(diào)用上述子函數(shù)的函數(shù)文件ex.m a=input(a=); b=input(b=); addresult=(1:10); subresult=(1:10); for n=1:10 addresult(n), subresult(n)= ad

18、dsub(a,b,n) ; end addresult subresult,M函數(shù)文件的特點,從形式上看,與腳本文件不同,函數(shù)文件的笫一行總是以 “function”引導(dǎo)的“函數(shù)申明行”。,從運行上看 ,與腳本文件運行不同 ,每當函數(shù)文件運行, MATLAB就會專門為它開辟一個臨時工作空間,稱為函數(shù)工作空間( Function workspace)。當執(zhí)行文件最后一條指令時 ,就結(jié)束該函數(shù)文件的運行,同時該臨時函數(shù)空間及其所有的中間變量就立即被清除。, MATLAB允許使用比 “標稱數(shù)目 ”較少的輸入、輸出參量,實現(xiàn)對函數(shù)的調(diào)用。,function 輸出參量 1,輸出參量 2,=函數(shù)名(輸出參

19、量 1,輸出參量 2,),柯雷茨(collatz)猜想 對于任意的正整數(shù)n,如果n是偶數(shù)則除以2,如果還是偶數(shù)再除以2,直至成為奇數(shù)。把這個奇數(shù)乘以3加1再除以2,如果是偶數(shù)繼續(xù)除以2,直至成為一個新的奇數(shù)。然后再將這個奇數(shù)乘以3加1,按照同樣的辦法計算下去。經(jīng)過若干次計算之后,最后的得數(shù)是1.,4.2 M命令文件和M函數(shù)文件,4.2.3 全局變量與局部變量 全局變量用global命令定義,格式為: global 變量名 例:全局變量應(yīng)用示例。 先建立函數(shù)文件wadd.m,該函數(shù)將輸入的參數(shù)加權(quán)相加 function f=wadd(x,y) global ALPHA BETA f=ALPHA*x+BETA*y; 在命令窗口中輸入: global ALPHA BETA ALPHA=1; BETA=2; s=wadd(1,2),4.2 M命令文件和M函數(shù)文件,4.3.1 函數(shù)所傳遞參數(shù)的可調(diào)性 在調(diào)用函數(shù)時,MATLAB用兩個永久變量nargin和nargout分別記錄調(diào)用該函數(shù)時的輸入實參和輸出實參的個數(shù)。只要在函數(shù)文件中包含這兩個變量,就可以準確地知道該函數(shù)文件被調(diào)用時的輸入輸出參數(shù)個數(shù),從而決定函數(shù)如何進行處理。,4.3 變量的檢測傳遞和限權(quán)使用函數(shù),例 nargin用法示例。 函數(shù)文件charray.m:,4.3 變量的檢測傳遞和限權(quán)使用函

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論