版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 Matlab程序設(shè)計(jì) Mtatlab程序設(shè)計(jì)既有傳統(tǒng)高級(jí)語言的特征,又有自己獨(dú)特的優(yōu)點(diǎn),在Matlab程序設(shè)計(jì)時(shí),充分利用Matlab數(shù)據(jù)結(jié)構(gòu)的特點(diǎn),可以使程序結(jié)構(gòu)簡(jiǎn)單、編程效率高。本次主要介紹有關(guān)Matlab程序控制結(jié)構(gòu)以及程序設(shè)計(jì)的基本方法。nMatlab在執(zhí)行命令時(shí),一種交互的命令執(zhí)行方式,在命令窗口逐條輸入指令,執(zhí)行時(shí)Matlab逐條解釋執(zhí)行。這種方式雖然簡(jiǎn)單、直觀,但速度慢,執(zhí)行過程不保留,當(dāng)某些操作需要反復(fù)進(jìn)行時(shí),更使人感到不便。n另一種M文件的程序執(zhí)行方式,是將有關(guān)命令變成程序存儲(chǔ)在一個(gè)文件中(M文件)當(dāng)需要運(yùn)行時(shí),直接調(diào)用運(yùn)行,運(yùn)行時(shí)Matlab就自動(dòng)依次執(zhí)行該文件中的命令
2、M文件一、M文件的分類通常,M文件可分為兩大類函數(shù)文件)(腳本文件M2M ) 1 (這里通過一個(gè)例題加以說明 這兩種Matlab程序代碼所編寫的文件通常都是以“.m”為擴(kuò)展名,因此都統(tǒng)稱為M文件。M函數(shù)文件是Matlab的主流。Matalb本身的一系列工具箱的內(nèi)部函數(shù)就是Matlab的開發(fā)者設(shè)計(jì)的一些M函數(shù),提供給我們使用。 我們也可以根據(jù)我們的需要,開發(fā)設(shè)計(jì)我們自己需要M函數(shù)36300sin)(xxxxxxxy在區(qū)間-6,6中的圖形例: 用matlab編寫一M文件和M函數(shù)繪制以下函數(shù)圖形x=-6:0.1:6;leng=length(x);for m=1:leng; if x(m)=0 y(m
3、)=sin(x(m); elseif x(m)=3 y(m)=x(m); else y(m)=-x(m)+6; endendplot(x,y);grid用M文件形式編寫程序36300sin)(xxxxxxxyx=-6:0.1:6;leng=length(x);y=;for m=1:leng; if x(m)=0 y=y,sin(x(m); elseif x(m)=3 y=y,x(m); else y=y,-x(m)+6; endendplot(x,y);grid方法三:運(yùn)用邏輯運(yùn)算符簡(jiǎn)化程序x=-6:0.1:6;y=(x=0&x3).*(-x+6);plot(x,y),grid on M函數(shù)的
4、形式編寫程序function y=f1(x)leng=length(x);for m=1:leng if x(m)=0 y(m)=sin(x(m); elseif x(m)=3 y(m)=x(m); else y(m)=-x(m)+6 endendfunction y=f2(x)y=(x=0&x3).*(-x+6);plot(x,y),gridx=-6:0.1:6;y=f1(x); %自動(dòng)調(diào)用f1.mplot(x,y);grid 編寫好該程序,保存時(shí)Matlab自動(dòng)以f1為函數(shù)名存入內(nèi)存。當(dāng)需要運(yùn)行該程序時(shí)在Matlab命令窗口輸入f1(x)就行 程序控制結(jié)構(gòu)Matlab的程序控制結(jié)構(gòu)有3種:
5、順序結(jié)構(gòu);選擇結(jié)構(gòu);循環(huán)結(jié)構(gòu)。任何復(fù)雜的程序都可以有著3種基本結(jié)構(gòu)構(gòu)成。復(fù)雜的程序可以在循環(huán)結(jié)構(gòu)中采用: 循環(huán)的嵌套一、順序結(jié)構(gòu) 順序結(jié)構(gòu)是指按照程序中語句的排列順序依次執(zhí)行,直到程序的最后一個(gè)語句。這也是最簡(jiǎn)單的一種程序結(jié)構(gòu)。一般涉及數(shù)據(jù)的輸入、數(shù)據(jù)的計(jì)算或處理、數(shù)據(jù)的輸出等內(nèi)容。1、數(shù)據(jù)的輸入從鍵盤輸入數(shù)據(jù),則可使用input函數(shù)來實(shí)現(xiàn),其格式: A=input(提示信息,選項(xiàng));其中:提示信息-為字符串,用于提示用戶 輸入什么樣的數(shù)據(jù) A=input(輸入A矩陣:) %提示輸入A矩陣2、數(shù)據(jù)的輸出 Matlab提供的命令窗口輸出函數(shù)主要有disp函數(shù),其調(diào)用格式為:disp(輸出項(xiàng))其中
6、:輸出項(xiàng)-既可以是字符串、也 可以是矩陣?yán)纾?A=Good afternoon everyone. ; disp(A)輸出結(jié)果:Good afternoon everyone. 例如:A=1 2 3;4 5 6;7 8 9; disp(A)輸出結(jié)果: 1 2 3 4 5 6 7 8 9例:求解一元二次方程02cbxaxa=input(a=);b=input(b=);c=input(c=);d=b2-a*4*c;x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a);disp(x1=,num2str(x(1),x2=,num2str(x(2)a=4b=78c=54x1=-0
7、.7188 x2=-18.7812輸出結(jié)果:a=23b=-6c=51x1=0.13043+1.4834i x2=0.13043-1.4834iMatlab中程序暫停函數(shù)的調(diào)用格式pause(延時(shí)秒數(shù)) 若省去延時(shí)秒數(shù),直到用戶按任意鍵程序繼續(xù)執(zhí)行,按Ctrl+C強(qiáng)行中止程序的執(zhí)行2、選擇結(jié)構(gòu) 選擇結(jié)構(gòu)是根據(jù)給定條件成立或不成立,分別執(zhí)行不同的語句。Matlab中用于選擇結(jié)構(gòu)的語句有if語句;switch語句;try語句。1)if語句Matlab中,if語句有3種格式格式:if 條件 語句組 end 單分支if語句 雙分支if語句格式:if 條件 語句組1 else 語句組2 end 多分支if
8、語句格式:if 條件1 語句組1 elseif 條件2 語句組2 elseif 條件m 語句組m else 語句組n end條件1條件2條件m語句組1語句組2語句組m語句組n成立成立成立不成立不成立不成立多分支if語句的執(zhí)行過程結(jié)構(gòu)框圖例如:計(jì)算分段函數(shù)10 10 1) 1cos(2xxxxxxxy運(yùn)用單分支if語句編程x=input(請(qǐng)輸入X的值:); y=cos(x+1)+sqrt(x*x+1); if x=10 y=x*sqrt(x+sqrt(x);endy運(yùn)用雙分支if語句編程x=input(請(qǐng)輸入X的值:);if x=10 y=cos(x+1)+sqrt(x*x+1); else y
9、=x*sqrt(x+sqrt(x);endyx=input(請(qǐng)輸入X的值:);if x=10 y=x*sqrt(x+sqrt(x);else y=cos(x+1)+sqrt(x*x+1); endy2)switch語句 switch語句是根據(jù)表達(dá)式的取值不同,分別執(zhí)行不同的語句,其語句格式:格式:格式: switch switch 表達(dá)式表達(dá)式 case case 表達(dá)式表達(dá)式1 1 語句組語句組1 1 case case 表達(dá)式表達(dá)式2 2 語句組語句組2 2 case case 表達(dá)式表達(dá)式m m 語句組語句組m m otherwiseotherwise 語句組語句組n n end end
10、 求表達(dá)式的值K=值1K=值2K=值m語句組1語句組2語句組m語句組nswicth語句的下一句否否否是是是Switch語句的執(zhí)行過程例:某商場(chǎng)對(duì)顧客所購(gòu)買的商品實(shí)行打折銷售,標(biāo)準(zhǔn)如下(商品價(jià)格用price)折扣折扣折扣折扣折扣沒有折扣14% price500010% 5000price25008% 2500price10005% 1000price5003% 500price200 200priceprice=input(請(qǐng)輸入商品價(jià)格:)switch fix(price/100) %也可以用floor或ceil case 0,1 %商品價(jià)格小于200 rate=0; case2,3,4 %商
11、品價(jià)格大于200小于500 rate=3/100; case num2cell(5:9) %商品價(jià)格大于500小于1000 rate=5/100; case num2cell(10:24) %商品價(jià)格大于1000小于2500 rate=8/100; case num2cell(25:49) %商品價(jià)格大于2500小于5000 rate=10/100; otherwise %商品價(jià)格大于等于5000 rate=14/100; end price=price*(1-rate) %輸出商品實(shí)際價(jià)格 3)try語句try語句是一種試探性執(zhí)行語句,其語句格式:try 語句組1catch 語句組2end
12、try語句先試探執(zhí)行語句組1,如果語句組1在執(zhí)行多程中出現(xiàn)錯(cuò)誤,則將保留的Lasterr變量,并轉(zhuǎn)去執(zhí)行語句2。例如:矩陣乘法要求兩矩陣的位數(shù)相等,否則出錯(cuò)A=1 2 3;4 5 6; B=7 8 9;10 11 12;try C=A*B; catch C=A.*B;end ClasterrMatlab程序C = 7 16 27 40 55 72ans =Error using = mtimesInner matrix dimensions must agree.輸出結(jié)果2、循環(huán)結(jié)構(gòu) 循環(huán)是指按照給定的條件,重復(fù)執(zhí)行指定的語句,這是十分重要的一種程序結(jié)構(gòu)。Matlab提供了兩種實(shí)現(xiàn)循環(huán)的結(jié)構(gòu)語
13、句 for語句;while語句 For語句(步長(zhǎng)的默認(rèn)值為1)格式: for 循環(huán)變量=循環(huán)初值:步長(zhǎng):終值 循環(huán)體語句 end分別求循環(huán)的初值、步長(zhǎng)、終值將循環(huán)的初值賦給循環(huán)變量ii在是否在初值和終值之間循環(huán)體語句i增加1個(gè)步長(zhǎng)是否例如:一個(gè)3位整數(shù),其各位數(shù)字的立方和等于該數(shù)本身則稱為水仙花數(shù),求出100999之間的全部水仙花數(shù)。for m=100:999; m1=fix(m/100); %求m的百位數(shù)字,fix向零方向取整P30 m2=rem(fix(m/10),10); %求m的十位數(shù)字 m3=rem(m,10); %求m的個(gè)位數(shù)字 if m=m1*m1*m1+m2*m2*m2+m3*
14、m3*m3 disp(m) endendMatlab程序 例:求1+3+5+100的值% 數(shù)組求和sm=0;for n=1:2:100; sm=sm+n;endSm;程序分析:循環(huán)變量為n,n對(duì)應(yīng)為向量1:2:100,循環(huán)次數(shù)為向量1:2:100的列數(shù),每次循環(huán)n取一個(gè)元素%用Matlab函數(shù)求和x=1:2:100s=sum(x)while語句格式:while (條件) 循環(huán)體語句 end條件循環(huán)體語句不成立成立循環(huán)過程圖例如:從鍵盤輸入若干個(gè)數(shù),當(dāng)輸入0時(shí)結(jié)束運(yùn)算,求這些數(shù)的平均值和它們的和Matlab程序 sm=0;n=0;x=input(輸入一個(gè)數(shù)(以0結(jié)束):);while(x=0)
15、sm=sm+x; n=n+1; x=input (輸入一個(gè)數(shù)(以0結(jié)束):);endif (n0) sm mean=sm/nend 例:利用while循環(huán),求1+3+5+100的值% 利用while循環(huán)求1+3+5+100的值 sm=0;n=1;while n=100 sm=sm+n; n=n+2;endMatlab程序程序分析:可見whileend循環(huán)的循環(huán)次數(shù)由表達(dá)式來決定,當(dāng)n=101時(shí)停止循環(huán)3、流程控制語句在程序執(zhí)行中,有一些可以控制程序流程的命令,下面主要介紹 breakbreak continuecontinue return return pause pause keyboar
16、d keyboard input input break語句 break語句用于終止for循環(huán)和while循環(huán)的執(zhí)行。當(dāng)遇到break時(shí),則退出循環(huán)體,繼續(xù)執(zhí)行循環(huán)體外的下一個(gè)語句。在嵌套循環(huán)中,break往往存在于內(nèi)層的循環(huán)中例:用if與break命令結(jié)合,停止while循環(huán),計(jì)算1+3+5+100的值,當(dāng)和大于1000時(shí)終止計(jì)算% 用break終止while循環(huán)sm=0;n=1;while n=100 if sm whos Name Size Bytes Class t 1x201 1608 double array (global)Grand total is 201 elements
17、using 1608 bytes 函數(shù)參數(shù) Matlab的函數(shù)調(diào)用過程實(shí)際上就是參數(shù)傳遞的過程。 1、函數(shù)調(diào)用格式輸出參數(shù)1,輸出參數(shù)2,=函數(shù)名(輸入?yún)?shù)1,輸入?yún)?shù)2,)2、參數(shù)傳遞的規(guī)則 在Matlab中,函數(shù)具有自己的工作空間,函數(shù)內(nèi)變量與外界(包括其他函數(shù)和工作空間)的唯一聯(lián)系就是通過函數(shù)的輸入、輸出參數(shù),輸入?yún)?shù)在函數(shù)中的任何變化,都僅在函數(shù)內(nèi)進(jìn)行,不會(huì)傳遞出去。function E1()% 參數(shù)傳遞繪制二階系統(tǒng)時(shí)域響應(yīng)z1=0.3;t1 y1=E2(z1);plot(t1,y1)hold onz1=0.5;t2 y2=E2(z1);plot(t2,y2)z1=0.707;t3 y3=E2(z1);plot(t3,y3)function t,y=E2(zeta)%子函數(shù),繪制二階系統(tǒng)時(shí)域響應(yīng)曲線t=0:0.1:20;y=1-1/sqrt(1-zeta2)*exp(-zeta*t).*sin(sqrt(1-zeta2)*t+acos(zeta);
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 云計(jì)算發(fā)展趨勢(shì)-洞察分析
- 通盤服務(wù)質(zhì)量保證-洞察分析
- 網(wǎng)絡(luò)社群影響力評(píng)估-洞察分析
- 2025年浙教版九年級(jí)生物上冊(cè)月考試卷
- 遺產(chǎn)稅對(duì)家庭財(cái)富分配的影響-洞察分析
- 2025年滬科版四年級(jí)語文上冊(cè)階段測(cè)試試卷含答案
- 2025年滬教版六年級(jí)語文上冊(cè)階段測(cè)試試卷
- 2025年度存量房屋租賃權(quán)抵押貸款合同范本4篇
- 細(xì)胞分裂極性調(diào)控機(jī)制-洞察分析
- 2025年新世紀(jì)版八年級(jí)語文下冊(cè)階段測(cè)試試卷含答案
- 如何打造頂尖理財(cái)顧問團(tuán)隊(duì)
- 土壤農(nóng)化分析課件
- 小區(qū)大型團(tuán)購(gòu)活動(dòng)策劃
- NEC(新生兒壞死性小腸結(jié)腸炎)92273
- 2023年租賃風(fēng)控主管年度總結(jié)及下一年展望
- 開關(guān)插座必看的七個(gè)安全隱患范文
- 高分子成型加工課件
- 消防救援-低溫雨雪冰凍惡劣天氣條件下災(zāi)害防范及救援行動(dòng)與安全
- 硅石項(xiàng)目建議書范本
- 概率論在金融風(fēng)險(xiǎn)評(píng)估中的應(yīng)用研究
- 住院醫(yī)療互助給付申請(qǐng)書
評(píng)論
0/150
提交評(píng)論