![第3講MATLAB程序設(shè)計(jì)_第1頁](http://file4.renrendoc.com/view/879147996b588e49fd085f6abf45c2d6/879147996b588e49fd085f6abf45c2d61.gif)
![第3講MATLAB程序設(shè)計(jì)_第2頁](http://file4.renrendoc.com/view/879147996b588e49fd085f6abf45c2d6/879147996b588e49fd085f6abf45c2d62.gif)
![第3講MATLAB程序設(shè)計(jì)_第3頁](http://file4.renrendoc.com/view/879147996b588e49fd085f6abf45c2d6/879147996b588e49fd085f6abf45c2d63.gif)
![第3講MATLAB程序設(shè)計(jì)_第4頁](http://file4.renrendoc.com/view/879147996b588e49fd085f6abf45c2d6/879147996b588e49fd085f6abf45c2d64.gif)
![第3講MATLAB程序設(shè)計(jì)_第5頁](http://file4.renrendoc.com/view/879147996b588e49fd085f6abf45c2d6/879147996b588e49fd085f6abf45c2d65.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3講MATLAB程序設(shè)計(jì)3.1M文件3.2程序控制結(jié)構(gòu)3.3函數(shù)文件2023/2/4理學(xué)院施三支3.1M文件3.1.1M文件概述
用MATLAB語言編寫的程序,稱為M文件。M文件可以根據(jù)調(diào)用方式的不同分為兩類:命令文件(ScriptFile)和函數(shù)文件(FunctionFile)。2023/2/4理學(xué)院施三支例3.1分別建立命令文件和函數(shù)文件,將華氏溫度f轉(zhuǎn)換為攝氏溫度c。解:程序1,首先建立命令文件并以文件名f2c.m存盤:clear;%清除工作空間中的變量f=input('InputFahrenheittemperature:');c=5*(f-32)/9然后在MATLAB的命令窗口中輸入f2c,將會(huì)執(zhí)行該命令文件,執(zhí)行情況為:InputFahrenheittemperature:73c=22.77782023/2/4理學(xué)院施三支程序2,首先建立函數(shù)文件f2c.m:functionc=f2c(f)c=5*(f-32)/9然后在MATLAB的命令窗口調(diào)用該函數(shù)文件。clear;y=input('InputFahrenheittemperature:');x=f2c(y)輸出情況為:InputFahrenheittemperature:70c=21.1111x=21.11112023/2/4理學(xué)院施三支3.1.2M文件的建立與打開M文件是一個(gè)文本文件,它可以用任何編輯程序來建立和編輯,而一般常用且最為方便的是使用MATLAB提供的文本編輯器。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)容并存盤。2023/2/4理學(xué)院施三支(3)命令按鈕操作。單擊MATLAB主窗口工具欄上的NewM-File命令按鈕,啟動(dòng)MATLAB文本編輯器后,輸入M文件的內(nèi)容并存盤。2.打開已有的M文件打開已有的M文件,也有3種方法:(1)菜單操作。從MATLAB主窗口的File菜單中選擇Open命令,則屏幕出現(xiàn)Open對(duì)話框,在Open對(duì)話框中選中所需打開的M文件。在文檔窗口可以對(duì)打開的M文件進(jìn)行編輯修改,編輯完成后,將M文件存盤。
(2)命令操作。在MATLAB命令窗口輸入命令:edit文件名,則打開指定的M文件。
(3)命令按鈕操作。單擊MATLAB主窗口工具欄上的OpenFile命令按鈕,再從彈出的對(duì)話框中選擇所需打開的M文件。2023/2/4理學(xué)院施三支3.2.1順序結(jié)構(gòu)1.?dāng)?shù)據(jù)的輸入從鍵盤輸入數(shù)據(jù),則可以使用input函數(shù)來進(jìn)行,該函數(shù)的調(diào)用格式為:
A=input(提示信息,選項(xiàng));其中提示信息為一個(gè)字符串,用于提示用戶輸入什么樣的數(shù)據(jù)。如果在input函數(shù)調(diào)用時(shí)采用's'選項(xiàng),則允許用戶輸入一個(gè)字符串。例如,想輸入一個(gè)人的姓名,可采用命令:xm=input('What''syourname?','s');3.2程序控制結(jié)構(gòu)2023/2/4理學(xué)院施三支2.?dāng)?shù)據(jù)的輸出MATLAB提供的命令窗口輸出函數(shù)主要有disp函數(shù),其調(diào)用格式為
disp(輸出項(xiàng))其中輸出項(xiàng)既可以為字符串,也可以為矩陣。2023/2/4理學(xué)院施三支例3.2輸入x,y的值,并將它們的值互換后輸出。解:程序如下
x=input('Inputxplease.');y=input('Inputyplease.');z=x;x=y;y=z;disp(x);disp(y);2023/2/4理學(xué)院施三支例3.3求一元二次方程ax2+bx+c=0的根。解:程序如下a=input('a=');b=input('b=');c=input('c=');d=b*b-4*a*c;x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);2023/2/4理學(xué)院施三支3.程序的暫停暫停程序的執(zhí)行可以使用pause函數(shù),其調(diào)用格式為:
pause(延遲秒數(shù))如果省略延遲時(shí)間,直接使用pause,則將暫停程序,直到用戶按任一鍵后程序繼續(xù)執(zhí)行。若要強(qiáng)行中止程序的運(yùn)行可使用Ctrl+C命令。2023/2/4理學(xué)院施三支3.2.2選擇結(jié)構(gòu)1.if語句
在MATLAB中,if語句有3種格式:
(1)單分支if語句:
if條件語句組
end當(dāng)條件成立時(shí),則執(zhí)行語句組,執(zhí)行完之后繼續(xù)執(zhí)行if語句的后繼語句,若條件不成立,則直接執(zhí)行if語句的后繼語句。2023/2/4理學(xué)院施三支(2)雙分支if語句:
if條件語句組1else
語句組2end當(dāng)條件成立時(shí),執(zhí)行語句組1,否則執(zhí)行語句組2,語句組1或語句組2執(zhí)行后,再執(zhí)行if語句的后繼語句。2023/2/4理學(xué)院施三支
(3)多分支if語句:
if條件1
語句組1elseif條件2
語句組2……elseif條件m
語句組melse
語句組nend語句用于實(shí)現(xiàn)多分支選擇結(jié)構(gòu)。2023/2/4理學(xué)院施三支
例3.4計(jì)算分段函數(shù)的值。解:程序如下:x=input('請(qǐng)輸入x的值:');ifx<=0y=cos(x+1)+sqrt(x*x+1);elsey=x*sqrt(x+sqrt(x));endy2023/2/4理學(xué)院施三支例3.5輸入一個(gè)字符,若為大寫字母,則輸出其對(duì)應(yīng)的小寫字母;若為小寫字母,則輸出其對(duì)應(yīng)的大寫字母;若為數(shù)字字符則輸出其對(duì)應(yīng)的數(shù)值,若為其他字符則原樣輸出。解:c=input('請(qǐng)輸入一個(gè)字符','s');ifc>='A'&c<='Z'disp(setstr(abs(c)+abs('a')-abs('A')));elseifc>='a'&c<='z'disp(setstr(abs(c)-abs('a')+abs('A')));elseifc>='0'&c<='9'disp(abs(c)-abs('0'));elsedisp(c);end2023/2/4理學(xué)院施三支2.switch語句
switch語句根據(jù)表達(dá)式的取值不同,分別執(zhí)行不同的語句,其語句格式為:
switch表達(dá)式
case表達(dá)式1
語句組1case表達(dá)式2
語句組2……case表達(dá)式m
語句組motherwise
語句組nend2023/2/4理學(xué)院施三支當(dāng)表達(dá)式的值等于表達(dá)式1的值時(shí),執(zhí)行語句組1,當(dāng)表達(dá)式的值等于表達(dá)式2的值時(shí),執(zhí)行語句組2,…,當(dāng)表達(dá)式的值等于表達(dá)式m的值時(shí),執(zhí)行語句組m,當(dāng)表達(dá)式的值不等于case所列的表達(dá)式的值時(shí),執(zhí)行語句組n。當(dāng)任意一個(gè)分支的語句執(zhí)行完后,直接執(zhí)行switch語句的下一句。2023/2/4理學(xué)院施三支例3.6某商場(chǎng)對(duì)顧客所購買的商品實(shí)行打折銷售,標(biāo)準(zhǔn)如下(商品價(jià)格用price來表示):
price<200沒有折扣
200≤price<5003%折扣
500≤price<10005%折扣
1000≤price<25008%折扣
2500≤price<500010%折扣
5000≤price14%折扣輸入所售商品的價(jià)格,求其實(shí)際銷售價(jià)格。2023/2/4理學(xué)院施三支解:price=input(‘請(qǐng)輸入商品價(jià)格:');switchfix(price/100)case{0,1}%價(jià)格小于200rate=0;case{2,3,4}%價(jià)格大于等于200但小于500rate=3/100;casenum2cell(5:9)%價(jià)格大于等于500但小于1000rate=5/100;casenum2cell(10:24)%價(jià)格大于等于1000但小于2500rate=8/100;casenum2cell(25:49)%價(jià)格大于等于2500但小于5000rate=10/100;otherwise%價(jià)格大于等于5000rate=14/100;endprice=price*(1-rate)%輸出商品實(shí)際銷售價(jià)格2023/2/4理學(xué)院施三支Ex:1.分別用if語句和switch語句實(shí)現(xiàn)以下計(jì)算,其中a、b、c的值從鍵盤輸入。2.產(chǎn)生20個(gè)兩位隨機(jī)整數(shù),輸出其中小于平均值的偶數(shù)。(提示:平均值可用mean函數(shù))2023/2/4理學(xué)院施三支3.try語句語句格式為:try
語句組1catch
語句組2endtry語句先試探性執(zhí)行語句組1,如果語句組1在執(zhí)行過程中出現(xiàn)錯(cuò)誤,則將錯(cuò)誤信息賦給保留的lasterr變量,并轉(zhuǎn)去執(zhí)行語句組2。2023/2/4理學(xué)院施三支例3.7矩陣乘法運(yùn)算要求兩矩陣的維數(shù)相容,否則會(huì)出錯(cuò)。先求兩矩陣的乘積,若出錯(cuò),則自動(dòng)轉(zhuǎn)去求兩矩陣的點(diǎn)乘。解:程序如下A=[1,2,3;4,5,6];B=[7,8,9;10,11,12];tryC=A*B;catchC=A.*B;endClasterr%顯示出錯(cuò)原因2023/2/4理學(xué)院施三支3.2.3循環(huán)結(jié)構(gòu)1.for語句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可以省略。2023/2/4理學(xué)院施三支例3.8一個(gè)三位整數(shù)各位數(shù)字的立方和等于該數(shù)本身則稱該數(shù)為水仙花數(shù)。輸出全部水仙花數(shù)。解:程序如下form=100:999m1=fix(m/100);%求m的百位數(shù)字
m2=rem(fix(m/10),10);%求m的十位數(shù)字
m3=rem(m,10);%求m的個(gè)位數(shù)字
ifm==m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endend1533703714072023/2/4理學(xué)院施三支例3.9已知,當(dāng)n=100時(shí),求y的值。解:程序如下:y=0;n=100;fori=1:ny=y+1/i/i;endy2023/2/4理學(xué)院施三支
在實(shí)際MATLAB編程中,采用循環(huán)語句會(huì)降低其執(zhí)行速度,所以前面的程序通常由下面的程序來代替:n=100;i=1:n;y=sum(1./i.^2);y2023/2/4理學(xué)院施三支for語句更一般的格式為:
for循環(huán)變量=矩陣表達(dá)式循環(huán)體語句
end執(zhí)行過程是依次將矩陣的各列元素賦給循環(huán)變量,然后執(zhí)行循環(huán)體語句,直至各列元素處理完畢。2023/2/4理學(xué)院施三支
例3.10寫出下列程序的執(zhí)行結(jié)果。
s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];fork=as=s+k;enddisp(s');394857662023/2/4理學(xué)院施三支Ex:1.輸入20個(gè)數(shù),求其中最大數(shù)和最小數(shù)。要求分別用循環(huán)結(jié)構(gòu)和調(diào)用MATLAB的max函數(shù)、min函數(shù)來實(shí)現(xiàn)。2.已知分別用循環(huán)結(jié)構(gòu)和調(diào)用MATLAB的sum函數(shù)求s的值。3.寫出下列程序的輸出結(jié)果。
s=0;
a=[12,13,14;15,16,17;18,19,20;21,22,23];
fork=a
forj=1:4
ifrem(k(j),2)~=0
s=s+k(j);
end
end
end
s2023/2/4理學(xué)院施三支2.while語句while語句的一般格式為:
while(條件)
循環(huán)體語句
end其執(zhí)行過程為:若條件成立,則執(zhí)行循環(huán)體語句,執(zhí)行后再判斷條件是否成立,如果不成立則跳出循環(huán)。2023/2/4理學(xué)院施三支例3.11從鍵盤輸入若干個(gè)數(shù),當(dāng)輸入0時(shí)結(jié)束輸入,求這些數(shù)的平均值和它們之和。程序:sum=0;cnt=0;val=input('Enteranumber(endin0):');while(val~=0)sum=sum+val;cnt=cnt+1;val=input('Enteranumber(endin0):');endif(cnt>0)summean=sum/cntend2023/2/4理學(xué)院施三支3.break語句和continue語句與循環(huán)結(jié)構(gòu)相關(guān)的語句還有break語句和continue語句。它們一般與if語句配合使用。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)。2023/2/4理學(xué)院施三支例3.12求[100,200]之間第一個(gè)能被21整除的整數(shù)。程序:forn=100:200ifrem(n,21)~=0continueendbreakendn2023/2/4理學(xué)院施三支4.循環(huán)的嵌套如果一個(gè)循環(huán)結(jié)構(gòu)的循環(huán)體又包括一個(gè)循環(huán)結(jié)構(gòu),就稱為循環(huán)的嵌套,或稱為多重循環(huán)結(jié)構(gòu)。例3-13若一個(gè)數(shù)等于它的各個(gè)真因子之和,則稱該數(shù)為完數(shù),如6=1+2+3,所以6是完數(shù)。求[1,500]之間的全部完數(shù)。form=1:500s=0;fork=1:m/2ifrem(m,k)==0s=s+k;endendifm==sdisp(m);endend6284962023/2/4理學(xué)院施三支3.3函數(shù)文件
3.3.1函數(shù)文件的基本結(jié)構(gòu)
函數(shù)文件由function語句引導(dǎo),其基本結(jié)構(gòu)為:
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)括起來。2023/2/4理學(xué)院施三支例3.14編寫函數(shù)文件求半徑為r的圓的面積和周長(zhǎng)。函數(shù)文件如下:
function[s,p]=fcircle(r)%CIRCLEcalculatetheareaandperimeterofacircleofradiir%r圓半徑%s圓面積%p圓周長(zhǎng)%2004年7月30日編s=pi*r*r;p=2*pi*r;可以在命令窗口調(diào)用該函數(shù):[s,p]=fcircle(10)2023/2/4理學(xué)院施三支3.3.2函數(shù)調(diào)用函數(shù)調(diào)用的一般格式是:
[輸出實(shí)參表]=函數(shù)名(輸入實(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ù)的功能。2023/2/4理學(xué)院施三支
例3.15利用函數(shù)文件,實(shí)現(xiàn)直角坐標(biāo)(x,y)與極坐標(biāo)(ρ,θ)之間的轉(zhuǎn)換。函數(shù)文件tran.m:function[rho,theta]=tran(x,y)rho=sqrt(x*x+y*y);theta=atan(y/x);
調(diào)用tran.m的命令文件main1.m:x=input('Pleaseinputx=:');y=input('Pleaseinputy=:');[rho,the]=tran(x,y);rhothe
2023/2/4理學(xué)院施三支在MATLAB中,函數(shù)可以嵌套調(diào)用,即一個(gè)函數(shù)可以調(diào)用別的函數(shù),甚至調(diào)用它自身。一個(gè)函數(shù)調(diào)用它自身稱為函數(shù)的遞歸調(diào)用。例3.16利用函數(shù)的遞歸調(diào)用,求n!。
n!本身就是以遞歸的形式定義的:顯然,
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 甲氨蝶呤項(xiàng)目融資渠道探索
- 二零二五年度高層建筑消防系統(tǒng)施工及設(shè)備安裝服務(wù)合同3篇
- 2025版港口碼頭設(shè)施轉(zhuǎn)租及維護(hù)保養(yǎng)協(xié)議
- 二零二五年度私人快遞加盟合同樣本
- 二零二五年度河砂運(yùn)輸合同(含運(yùn)輸線路優(yōu)化)
- 2025版塔吊操作人員勞務(wù)派遣及培訓(xùn)合同
- 2025年度高端美容院品牌連鎖加盟合同范本
- 二零二五年度民辦學(xué)校合作辦學(xué)合同模板
- 2025年度公司法務(wù)團(tuán)隊(duì)聘請(qǐng)法律顧問咨詢合同
- 2025至2030年中國(guó)布邊穿心拉鏈數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025版茅臺(tái)酒出口業(yè)務(wù)代理及銷售合同模板4篇
- 2025年N1叉車司機(jī)考試試題(附答案)
- 《醫(yī)院財(cái)務(wù)分析報(bào)告》課件
- 2024年考研政治試題及答案
- 2024-2025學(xué)年人教版數(shù)學(xué)六年級(jí)上冊(cè) 期末綜合卷(含答案)
- 天津市部分區(qū)2023-2024學(xué)年高二上學(xué)期期末考試 物理 含解析
- 2025年初級(jí)社會(huì)工作者綜合能力全國(guó)考試題庫(含答案)
- vc約起來史上最全180個(gè)知名投資人聯(lián)系方式
- 社會(huì)穩(wěn)定風(fēng)險(xiǎn)評(píng)估報(bào)告風(fēng)險(xiǎn)評(píng)估參考
- GB/T 14343-2008化學(xué)纖維長(zhǎng)絲線密度試驗(yàn)方法
- 制冷操作證培訓(xùn)教材-制冷與空調(diào)設(shè)備運(yùn)行操作作業(yè)培課件
評(píng)論
0/150
提交評(píng)論