




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.,1,MATLAB語言,機(jī)械與汽車工程學(xué)院,2012.03,.,2,.,3,教學(xué)內(nèi)容: MATLAB程序控制 M腳本文件和M函數(shù)文件 變量的檢測(cè)傳遞和限權(quán)使用函數(shù) 函數(shù)句柄 圖形用戶界面編程(GUI),第四章程序設(shè)計(jì),.,4,4.1程序流程語句,選擇結(jié)構(gòu) if switch 循環(huán)結(jié)構(gòu) while for,.,5,4.1.1 選擇結(jié)構(gòu) 1. if 條件 語句組 end 當(dāng)條件成立時(shí),則執(zhí)行語句組,執(zhí)行完之后繼續(xù)執(zhí)行語句的后繼語句,若條件不成立,則直接執(zhí)行if語句的后繼語句。,4.1程序流程語句,.,6,4.1.1選擇結(jié)構(gòu)語句,.,7,4.1.1選擇結(jié)構(gòu)語句,.,8,4.1程序流程語句,4.1.
2、1 選擇結(jié)構(gòu) 例.給定兩個(gè)實(shí)數(shù),按代數(shù)值的大小輸出其中大的 ab ba 兩次判斷條件,.,9,4.1.1 選擇結(jié)構(gòu) 2. if 條件 語句組1 else 語句組2 end 當(dāng)條件成立時(shí),執(zhí)行語句組1,否則執(zhí)行語 句組2,語句組1或語句組2執(zhí)行后,再執(zhí)行if語句的后繼語句。,4.1程序流程語句,.,10,4.1程序流程語句,4.1.1 選擇結(jié)構(gòu) 例.給定兩個(gè)實(shí)數(shù),按代數(shù)值的大小輸出其中大的,.,11,4.1程序流程語句,4.1.1 選擇結(jié)構(gòu) 例.x為磨床冷卻液溫度傳感器得到的溫度值(這里用1828的隨機(jī)數(shù)代替),如果溫度在21-25之間,在監(jiān)控器上顯示“溫度正?!保陀?1顯示報(bào)警“磨削液溫度過
3、低”,高于25顯示報(bào)警“磨削液溫度過高”,溫度25 三次判斷條件,.,12,4.1程序流程語句,4.1.1 選擇結(jié)構(gòu) 3. if 條件1 語句組 elseif 條件2 語句組2 elseif 條件m 語句組m else 語句組n end 語句用于實(shí)現(xiàn)多分支選擇結(jié)構(gòu)。,.,13,4.1程序流程語句,3.2.1 選擇結(jié)構(gòu) 例.x為磨床冷卻液溫度傳感器得到的溫度值(這里用1828的隨機(jī)數(shù)代替),如果溫度在21-25之間,在監(jiān)控器上顯示“溫度正?!保陀?1顯示報(bào)警“磨削液溫度過低”,高于25顯示報(bào)警“磨削液溫度過高”,.,14,4.1程序流程語句,4.1.1 選擇結(jié)構(gòu) 思考:計(jì)算分段函數(shù)的值 X X
4、=2,2,2,2,.,15,4.1程序流程語句,.,16,4.1程序流程語句,4.1.1 選擇結(jié)構(gòu) 4. switch 表達(dá)式 case 表達(dá)式1 語句組1; case 表達(dá)式2 語句組2; case 表達(dá)式m 語句組m; otherwise 語句組n; end,.,17,4.1程序流程語句,4.1.1 選擇結(jié)構(gòu) 例.某商場(chǎng)對(duì)顧客所購(gòu)買的商品實(shí)行打折銷售,標(biāo)準(zhǔn)如下(商品價(jià)格用price來表示): price200 沒有折扣 200price500 3%折扣 500price1000 5%折扣 1000price2500 8%折扣 2500price5000 10%折扣 5000price 14
5、%折扣 輸入所售商品的價(jià)格,求其實(shí)際銷售價(jià)格,.,18,4.1程序流程語句,.,19,4.1程序流程語句,4.1.1 選擇結(jié)構(gòu) 思考: 給出學(xué)生的百分制成績(jī),要求轉(zhuǎn)化成成績(jī)等級(jí)輸出,等級(jí)分為優(yōu)秀,良好,中等,及格90分以上的為優(yōu)秀,80-89的為良好,70-79的為中等,60-69的為及格,其他為不及格.,.,20,4.1程序流程語句,.,21,4.1程序流程語句,4.1.2 循環(huán)結(jié)構(gòu) 1while語句 while語句的一般格式為: while (條件) 循環(huán)體語句 end 其執(zhí)行過程為:若條件成立,則執(zhí)行循環(huán)體語句,執(zhí)行后再判斷條件是否成立,如果不成立則跳出循環(huán)。,.,22,4.1程序流程語
6、句,4.1.2 循環(huán)結(jié)構(gòu) 例.求1+2+3+100的和,.,23,4.1程序流程語句,.,24,4.1程序流程語句,4.12 循環(huán)結(jié)構(gòu) 2for語句 for語句的格式為: for 循環(huán)變量=表達(dá)式1:表達(dá)式2:表達(dá)式3 循環(huán)體語句 end 其中表達(dá)式1的值為循環(huán)變量的初值,表達(dá)式2的值為步長(zhǎng),表達(dá)式3的值為循環(huán)變量的終值。步長(zhǎng)為1時(shí),表達(dá)式2可以省略。,.,25,4.1程序流程語句,4.1.2 循環(huán)結(jié)構(gòu) 例.求1+2+2+100的和,.,26,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,
7、23; for k=a s=s+k; end disp(s);,.,27,4.1程序流程語句,.,28,.,29,.,30,4.1程序流程語句,4.1.2 循環(huán)結(jié)構(gòu) 3循環(huán)的嵌套 如果一個(gè)循環(huán)結(jié)構(gòu)的循環(huán)體又包括一個(gè)循環(huán)結(jié)構(gòu),就稱為循環(huán)的嵌套,或稱為多重循環(huán)結(jié)構(gòu)。 例:有一數(shù): 1+1+1+1+2+2+2+2+3+3+3+3,1,2,3,10,1,2,3,10,1,2,3,10,.,31,4.1程序流程語句,.,32,4.1程序流程語句,4.1.2 循環(huán)結(jié)構(gòu) 思考.一個(gè)三位整數(shù)各位數(shù)字的立方和等于該數(shù)本身則稱該數(shù)為水仙花數(shù),輸出全部水仙花數(shù)。,.,33,4.1程序流程語句,.,34,4.1程序流
8、程語句,4.1.3 其他流程控制語句 1break語句和continue語句 break語句用于終止循環(huán)的執(zhí)行。當(dāng)在循環(huán)體內(nèi)執(zhí)行到該語句時(shí),程序?qū)⑻鲅h(huán),繼續(xù)執(zhí)行循環(huán)語句的下一語句。 continue語句控制跳過循環(huán)體中的某些語句。當(dāng)在循環(huán)體內(nèi)執(zhí)行到該語句時(shí),程序?qū)⑻^循環(huán)體中所有剩下的語句,繼續(xù)下一次循環(huán)。,.,35,4.1程序流程語句,例:求100,200之間第一個(gè)能被21整除的整數(shù)。,.,36,4.1.3 其他流程控制語句 2try語句 語句格式為: try 語句組1 catch 語句組2 end try語句先試探性執(zhí)行語句組1,如果語句組1在執(zhí)行過程中出現(xiàn)錯(cuò)誤,則將錯(cuò)誤信息賦給保留的
9、lasterr變量,并轉(zhuǎn)去執(zhí)行語句組2。,4.1程序流程語句,.,37,4.1程序流程語句,.,38,4.1程序流程語句,小作業(yè):猜數(shù)游戲。 首先由計(jì)算機(jī)產(chǎn)生1,100之間的隨機(jī)整數(shù),然后由用戶猜測(cè)所產(chǎn)生的隨機(jī)數(shù)。根據(jù)用戶猜測(cè)的情況給出不同提示,如猜測(cè)的數(shù)大于產(chǎn)生的數(shù),則顯示“High”,小于則顯示“Low”,等于則顯示“You won”,同時(shí)退出游戲,用戶最多可以猜7次。,.,39,4.1程序流程語句,.,40,M命令文件: M文件是一個(gè)文本文件,它可以用任何編輯程序來建立和編輯,而一般常用且最為方便的是使用MATLAB提供的文本編輯器。,4.2 M命令文件和M函數(shù)文件,4.2.1 M命令文
10、件,.,41,1建立新的M文件 為建立新的M文件,啟動(dòng)MATLAB文本編輯器有3種方法: (1) 菜單操作。從MATLAB主窗口的File菜單中選擇New菜單項(xiàng),再選擇M-file命令,屏幕上將出現(xiàn)MATLAB 文本編輯器窗口。 (2) 命令操作。在MATLAB命令窗口輸入命令edit,啟動(dòng)MATLAB文本編輯器后,輸入M文件的內(nèi)容并存盤。 (3) 命令按鈕操作。單擊MATLAB主窗口工具欄上的New M-File命令按鈕,啟動(dòng)MATLAB文本編輯器后,輸入M文件的內(nèi)容并存盤。,4.2.1 M命令文件,4.2 M命令文件和M函數(shù)文件,.,42,2打開已有的M文件 打開已有的M文件,也有3種方法
11、: (1) 菜單操作。從MATLAB主窗口的File菜單中選擇Open命令,則屏幕出現(xiàn)Open對(duì)話框,在Open對(duì)話框中選中所需打開的M文件。在文檔窗口可以對(duì)打開的M文件進(jìn)行編輯修改,編輯完成后,將M文件存盤。 (2) 命令操作。在MATLAB命令窗口輸入命令:edit 文件名,則打開指定的M文件。 (3) 命令按鈕操作。單擊MATLAB主窗口工具欄上的Open File命令按鈕,再?gòu)膹棾龅膶?duì)話框中選擇所需打開的M文件。,4.2.1 M命令文件,4.2 M命令文件和M函數(shù)文件,.,43,.,44,3程序調(diào)試,Debug菜單項(xiàng) 該菜單項(xiàng)用于程序調(diào)試,需要與Breakpoints菜單項(xiàng)配合使用。
12、Breakpoints菜單項(xiàng) 該菜單項(xiàng)共有6個(gè)菜單命令,前兩個(gè)是用于在程序中設(shè)置和清除斷點(diǎn)的,后4個(gè)是設(shè)置停止條件的,用于臨時(shí)停止M文件的執(zhí)行,并給用戶一個(gè)檢查局部變量的機(jī)會(huì),相當(dāng)于在M文件指定的行號(hào)前加入了一個(gè)keyboard命令。,4.2.1 M命令文件,4.2 M命令文件和M函數(shù)文件,.,45,4.2.2 函數(shù)文件 functions 數(shù)學(xué)中的一種對(duì)應(yīng)關(guān)系,是從非空集合A到實(shí)數(shù)集B的對(duì)應(yīng)。精確地說,設(shè)X是一個(gè)非空集合,Y是非空數(shù)集 ,f是個(gè)對(duì)應(yīng)法則 , 若對(duì)X中的每個(gè)x,按對(duì)應(yīng)法則f,使Y中存在唯一的一個(gè)元素y與之對(duì)應(yīng) , 就稱對(duì)應(yīng)法則f是X上的一個(gè)函數(shù),記作yf(x),稱X為函數(shù)f(x
13、)的定義域,集合y|y=f(x),xX為其值域(值域是Y的子集),x叫做自變量,y叫做因變量,習(xí)慣上也說y是x的函數(shù)。,4.2 M命令文件和M函數(shù)文件,.,46,4.2.2 函數(shù)文件 M文件可以根據(jù)調(diào)用方式的不同分為兩類:命令文件(Script File)和函數(shù)文件(Function File)。,4.2 M命令文件和M函數(shù)文件,.,47,例:分別建立命令文件和函數(shù)文件,將華氏溫度f轉(zhuǎn)換為攝氏溫度c。 程序1: 首先建立命令文件并以文件名f2c.m存盤。 f=input(Input Fahrenheit temperature:); c=5*(f-32)/9 然后在MATLAB的命令窗口中輸入
14、f2c,將會(huì)執(zhí)行該命令文件,執(zhí)行情況為: Input Fahrenheit temperature:73 c = 22.7778,.,48,程序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 c = 21.1111 x = 21.1111,.,49,4.2.2 函數(shù)文件結(jié)構(gòu) 函數(shù)文件由function語句引導(dǎo),其基本結(jié)構(gòu)為:
15、function 輸出形參表=函數(shù)名(輸入形參表) 注釋說明部分 函數(shù)體語句 其中以function開頭的一行為引導(dǎo)行,表示該M文件是一個(gè)函數(shù)文件。函數(shù)名的命名規(guī)則與變量名相同。輸入形參為函數(shù)的輸入?yún)?shù),輸出形參為函數(shù)的輸出參數(shù)。當(dāng)輸出形參多于一個(gè)時(shí),則應(yīng)該用方括號(hào)括起來。,4.2 M命令文件和M函數(shù)文件,.,50,例 編寫函數(shù)文件求半徑為r的圓的面積和周長(zhǎng)。 函數(shù)文件如下: function s,p=fcircle(r) %CIRCLE calculate the area and perimeter of a circle of radii r %r 圓半徑 %s 圓面積 %p 圓周長(zhǎng) %
16、2004年7月30日編 s=pi*r*r; p=2*pi*r;,4.2 M命令文件和M函數(shù)文件,函數(shù)M文件 一般由5個(gè)部分組成: (1)函數(shù)定義行; (2)H1行; (3)函數(shù)幫助文本; (4)函數(shù)體; (5)注釋。,.,51,4.2 M命令文件和M函數(shù)文件,.,52,4.2.2 函數(shù)調(diào)用 函數(shù)文件編制好后,就可以調(diào)用函數(shù)進(jìn)行計(jì)算 輸出形參表=函數(shù)名(輸入形參表) 要注意的是,函數(shù)調(diào)用時(shí)各實(shí)參出現(xiàn)的順序、個(gè)數(shù),應(yīng)與函數(shù)定義時(shí)形參的順序、個(gè)數(shù)一致,否則會(huì)出錯(cuò)。函數(shù)調(diào)用時(shí),先將實(shí)參傳遞給相應(yīng)的形參,從而實(shí)現(xiàn)參數(shù)傳遞,然后再執(zhí)行函數(shù)的功能。,4.2 M命令文件和M函數(shù)文件,.,53,例:利用函數(shù),求
17、n!,4.2 M命令文件和M函數(shù)文件,.,54,例:利用函數(shù),求1!+2!+3!+n!,4.2 M命令文件和M函數(shù)文件,.,55,在MATLAB中,函數(shù)可以嵌套調(diào)用,即一個(gè)函數(shù)可以調(diào)用別的函數(shù),甚至調(diào)用它自身。一個(gè)函數(shù)調(diào)用它自身稱為函數(shù)的遞歸調(diào)用。,4.2 M命令文件和M函數(shù)文件,.,56,例:利用函數(shù)的遞歸調(diào)用,求n!。 顯然,求n!需要求(n-1)!,這時(shí)可采用遞歸調(diào)用。遞歸調(diào)用函數(shù)文件factor.m如下:,4.2 M命令文件和M函數(shù)文件,.,57,例 nargin用法示例。 x=1:3; y=1;2;3; charray(x) charray(x,y) charray(x,y,3),4
18、.2 M命令文件和M函數(shù)文件,.,58,給定兩個(gè)實(shí)數(shù)a、b,一個(gè)自然數(shù)n,求解當(dāng)n=1,10時(shí)所有的(a+b)n和(a-b)n。,.,59,首先建立函數(shù)文件addsub.m functionout1,out2=addsub(a,b,n) %計(jì)算(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)= addsub(a,b,n) ;
19、end addresult subresult,.,60,M函數(shù)文件的特點(diǎn),從形式上看,與腳本文件不同,函數(shù)文件的笫一行總是以 “function”引導(dǎo)的“函數(shù)申明行”。,從運(yùn)行上看 ,與腳本文件運(yùn)行不同 ,每當(dāng)函數(shù)文件運(yùn)行, MATLAB就會(huì)專門為它開辟一個(gè)臨時(shí)工作空間,稱為函數(shù)工作空間( Function workspace)。當(dāng)執(zhí)行文件最后一條指令時(shí) ,就結(jié)束該函數(shù)文件的運(yùn)行,同時(shí)該臨時(shí)函數(shù)空間及其所有的中間變量就立即被清除。, MATLAB允許使用比 “標(biāo)稱數(shù)目 ”較少的輸入、輸出參量,實(shí)現(xiàn)對(duì)函數(shù)的調(diào)用。,function 輸出參量 1,輸出參量 2,=函數(shù)名(輸出參量 1,輸出參量
20、2,),.,61,柯雷茨(collatz)猜想 對(duì)于任意的正整數(shù)n,如果n是偶數(shù)則除以2,如果還是偶數(shù)再除以2,直至成為奇數(shù)。把這個(gè)奇數(shù)乘以3加1再除以2,如果是偶數(shù)繼續(xù)除以2,直至成為一個(gè)新的奇數(shù)。然后再將這個(gè)奇數(shù)乘以3加1,按照同樣的辦法計(jì)算下去。經(jīng)過若干次計(jì)算之后,最后的得數(shù)是1.,4.2 M命令文件和M函數(shù)文件,.,62,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ù)文件,.,63,4.3.1 函數(shù)所傳遞參數(shù)的可調(diào)性 在調(diào)用函數(shù)時(shí),MATLAB用兩個(gè)永久變量nargin和nargout分別記錄調(diào)用該函數(shù)時(shí)的輸入實(shí)參和輸出實(shí)參的個(gè)數(shù)。只要在函數(shù)文件中包含這兩個(gè)變量,就可以準(zhǔn)確地知道該函數(shù)文件被調(diào)用時(shí)的輸入輸出參數(shù)個(gè)數(shù),從而決定函數(shù)如何進(jìn)行處理。,4.3 變量的檢測(cè)傳遞和限權(quán)使用函數(shù),.,64,例 nargin用法示例。 函數(shù)文件charray.m:,4.3 變量的檢
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 初一記敘文寫作教學(xué)課件
- 少兒鋼琴教學(xué)課件
- 教學(xué)課件怎么講課
- 如何教學(xué)一年級(jí)數(shù)學(xué)課件
- 敬英雄班會(huì)課件
- 定做美術(shù)教學(xué)課件
- 中國(guó)公司治理案例分析-國(guó)美
- 教育課件模板
- 讀思達(dá)教學(xué)法語文課件
- 湖南婁底雙峰縣2025年事業(yè)單位公開招聘工作人員筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 輔導(dǎo)員素質(zhì)能力大賽基礎(chǔ)知識(shí)試題題庫(kù)
- 裝飾裝修工程主要質(zhì)量通病防治措施
- 深圳航空公司招聘筆試真題
- 離婚協(xié)議書(完整版)WORDx(二篇)
- 巖棉外墻保溫系統(tǒng)
- 波譜分析復(fù)習(xí)資料
- 個(gè)人勞務(wù)清包工簡(jiǎn)單合同
- 換電柜計(jì)劃書
- 投標(biāo)機(jī)械設(shè)備租賃服務(wù)方案
- 蔬菜、副食品配送服務(wù)投標(biāo)方案(技術(shù)方案)
- 《能力陷阱》讀書分享
評(píng)論
0/150
提交評(píng)論