




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Matlab and Engineering Calculation第3章 MATLAB程序設(shè)計(jì)程序設(shè)計(jì)3.1 M文件文件3.2 程序控制結(jié)構(gòu)3.3 函數(shù)及函數(shù)文件3.4 Matlab的文件操作的文件操作3.5 程序調(diào)試Xiamen UniversityMatlab and Engineering Calculation3.1 M文件文件3.1.1 M文件概述文件概述用MATLAB語(yǔ)言編寫的程序,稱為M文件。M文件可以根據(jù)調(diào)用方式的不同分為兩類:文件可以根據(jù)調(diào)用方式的不同分為兩類:命令文件(Script File)函數(shù)文件(Function File)Xiamen UniversityMatl
2、ab and Engineering Calculation例3-1 分別建立命令文件和函數(shù)文件,將華氏溫度f(wàn)轉(zhuǎn)換為攝氏溫度c。程序1:首先建立命令文件并以文件名f2c.m存盤。clear;%清除工作空間中的變量清除工作空間中的變量f=input(Input Fahrenheit temperature:);c=5*(f-32)/9然后在MATLAB的命令窗口中輸入f2c,將會(huì)執(zhí)行該命令文件,執(zhí)行情況為:Input Fahrenheit temperature:73c=22.7778Xiamen UniversityMatlab and Engineering Calculation程序2:首
3、先建立函數(shù)文件ftoc.m。function c=ftoc(f)y=input(Input Fahrenheit temperature:);c=5*(f-32)/9;然后在MATLAB的命令窗口調(diào)用該函數(shù)文件。clear;y=input(Input Fahrenheit temperature:);x=ftoc(y)輸出情況為:Input Fahrenheit temperature:70c=21.1111x=21.1111Xiamen UniversityMatlab and Engineering Calculation3.1.2 M文件的建立與打開(kāi)文件的建立與打開(kāi)M文件是一個(gè)文本文件,
4、它可以用任何編輯程序來(lái)建立和文件是一個(gè)文本文件,它可以用任何編輯程序來(lái)建立和編輯,而一般常用且最為方便的是使用MATLAB提供的文本編輯器。1建立新的建立新的M文件文件2. 打開(kāi)已有的M文件菜單工具按鈕下面兩條命令可直接在命令行中輸入edit/edit filenameopen filenameXiamen UniversityMatlab and Engineering Calculation3.2 程序控制結(jié)構(gòu)3.2.1 順序結(jié)構(gòu)1數(shù)據(jù)的鍵盤輸入數(shù)據(jù)的鍵盤輸入reply=input(string);reply=input(string,s);2數(shù)據(jù)的輸出數(shù)據(jù)的輸出disp(expressi
5、on)%從鍵盤鍵入數(shù)值、已存在的變量或表達(dá)式,從鍵盤鍵入數(shù)值、已存在的變量或表達(dá)式,賦值給變量reply鍵入的內(nèi)容作為字符串顯示表達(dá)式的值4. 格式化輸入和輸出數(shù)據(jù)sscanf 和fprintf 函數(shù)textread 函數(shù)5程序的暫停程序的暫停pause(延遲秒數(shù)延遲秒數(shù))pause程序的終止Ctrl+C命令命令Xiamen UniversityMatlab and Engineering Calculation例3-2 輸入x,y的值,并將它們的值互換后輸出。程序如下:str= Input x please.;x=input(str);y=input(Input y please.);z=x
6、;x=y;y=z;disp(x);disp(y);Xiamen UniversityMatlab and Engineering Calculation例3-3 求一元二次方程a*x2 +b*x+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);Xiamen UniversityMatlab and Engineering Calculation3.2.2 選擇結(jié)
7、構(gòu)1if語(yǔ)句語(yǔ)句在MATLAB中,if語(yǔ)句有3種格式。(1) 單分支if語(yǔ)句:if 條件語(yǔ)句組end(2) 雙分支if語(yǔ)句:if 條件語(yǔ)句組1else語(yǔ)句組2(3) 多分支if語(yǔ)句:if 條件1語(yǔ)句組1elseif 條件2語(yǔ)句組2elseif 條件m語(yǔ)句組melse語(yǔ)句組nendendXiamen UniversityMatlab and Engineering Calculation例3-4 計(jì)算分段函數(shù)的值。程序如下:x=input(請(qǐng)輸入x的值:);if x=A & c=a& c=0& c=9disp(abs(c)-abs(0);elsedisp(c);endXiamen Univers
8、ityMatlab and Engineering Calculation2switch語(yǔ)句語(yǔ)句switch語(yǔ)句根據(jù)表達(dá)式的取值不同,分別執(zhí)行不同的語(yǔ)語(yǔ)句根據(jù)表達(dá)式的取值不同,分別執(zhí)行不同的語(yǔ)句,其語(yǔ)句格式為:switch switch_exprcase case_exprstatement,.,statementcase case_expr1,case_expr2,case_expr3,.statement,.,statement.otherwisestatement,.,statementend(1) switch_expr is a scalar(標(biāo)量標(biāo)量) or a string(2)
9、 case_expr is a scalar, a stringor a cell arrayXiamen UniversityMatlab and Engineering Calculation例3-6 某商場(chǎng)對(duì)顧客所購(gòu)買的商品實(shí)行打折銷售,標(biāo)準(zhǔn)如下(商品價(jià)格用price來(lái)表示):price100沒(méi)有折扣100price500 3%折扣折扣500price1000 5%折扣折扣1000price2500 8%折扣折扣2500price 0)summean=sum/cntendXiamen UniversityMatlab and Engineering Calculation3break語(yǔ)句
10、和語(yǔ)句和continue語(yǔ)句語(yǔ)句與循環(huán)結(jié)構(gòu)相關(guān)的語(yǔ)句還有break語(yǔ)句和continue語(yǔ)句。它們一般與if語(yǔ)句配合使用。break 語(yǔ)句用于終止循環(huán)的執(zhí)行。當(dāng)在循環(huán)體內(nèi)執(zhí)行到該語(yǔ)句時(shí),程序?qū)⑻鲅h(huán),繼續(xù)執(zhí)行循環(huán)語(yǔ)句的下一語(yǔ)句。continue 語(yǔ)句控制跳過(guò)循環(huán)體中的某些語(yǔ)句。當(dāng)在循環(huán)體內(nèi)執(zhí)行到該語(yǔ)句時(shí),程序?qū)⑻^(guò)循環(huán)體中所有剩下的語(yǔ)句,繼續(xù)下一次循環(huán)。Xiamen UniversityMatlab and Engineering Calculation例3-12 求100,200之間第一個(gè)能被21整除的整數(shù)。程序如下:for n=100:200if rem(n,21)=0continuee
11、ndbreakendnXiamen UniversityMatlab and Engineering Calculation4循環(huán)的嵌套循環(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ù)。求是完數(shù)。求1,500之間的全部完數(shù)。之間的全部完數(shù)。for m=1:500s=0;for k=1:m/2if rem(m,k)=0s=s+k;endendif m=sdisp(m);endendXiamen UniversityMatlab and Engineering
12、 Calculation錯(cuò)誤處理lasterr/lasterror 最后一個(gè)錯(cuò)誤信息 Lastwarn 最后一個(gè)警告信息 error 顯示錯(cuò)誤信息warning 顯示警告信息errordlg-Error Dialogwarndlg-Warning DialogXiamen UniversityMatlab and Engineering Calculation3.3 函數(shù)文件函數(shù)的類型: built-in functions 內(nèi)建函數(shù),如sinM-file functionsSubfunctions 子函數(shù)inline function object 內(nèi)聯(lián)函數(shù)對(duì)象Private Functio
13、ns 私人函數(shù)Xiamen UniversityMatlab and Engineering Calculation3.3.1 函數(shù)文件的基本結(jié)構(gòu)函數(shù)文件由function語(yǔ)句引導(dǎo),其基本結(jié)構(gòu)為:function 輸出形參表=函數(shù)名(輸入形參表)注釋說(shuō)明部分函數(shù)體語(yǔ)句其中以function開(kāi)頭的一行為引導(dǎo)行,表示該M文件是一個(gè)函數(shù)文件。函數(shù)名的命名規(guī)則與變量名相同。輸入形參為函數(shù)的輸入?yún)?shù),輸出形參為函數(shù)的輸出參數(shù)。當(dāng)輸出形參多于一個(gè)時(shí),則應(yīng)該用方括號(hào)括起來(lái)。Xiamen UniversityMatlab and Engineering Calculation例3-14 編寫函數(shù)文件求半徑為r
14、的圓的面積和周長(zhǎng)。函數(shù)文件如下:function s,p=fcircle(r)%FCIRCLE calculate the area and perimeter of a circle of radii r%r%s%p圓半徑圓面積圓周長(zhǎng)%2004年7月30日編r=input(input the circles radius:);s=pi*r*rp=2*pi*rXiamen UniversityMatlab and Engineering Calculation3.3.2 函數(shù)調(diào)用函數(shù)調(diào)用的一般格式是:輸出實(shí)參表輸出實(shí)參表=函數(shù)名函數(shù)名(輸入實(shí)參表輸入實(shí)參表)要注意的是,函數(shù)調(diào)用時(shí)各實(shí)參出現(xiàn)的順
15、序、個(gè)數(shù),應(yīng)與函數(shù)定義時(shí)形參的順序、個(gè)數(shù)一致,否則會(huì)出錯(cuò)。函數(shù)調(diào)用時(shí),先將實(shí)參傳遞給相應(yīng)的形參,從而實(shí)現(xiàn)參數(shù)傳遞,然后再執(zhí)行函數(shù)的功能。Xiamen UniversityMatlab and Engineering Calculation例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(Please input x=:);y=input(Please input y
16、=:);rho,theta=tran(x,y);rhothetaXiamen UniversityMatlab and Engineering Calculation在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!本身就是以遞歸的形式定義的:本身就是以遞歸的形式定義的:顯然,求n!需要求(n-1)!,這時(shí)可采用遞歸調(diào)用。遞歸調(diào)用函數(shù)文件factor.m如下:function f=factor(n)if n如輸入factor(5)Xiamen UniversityMatlab and
17、 Engineering Calculation3.3.3 全局變量與局部變量每個(gè)函數(shù)都有自己的工作區(qū),它的內(nèi)部變量對(duì)外是不可見(jiàn)的,它也不能使用外部變量,除非定義全局變量。全局變量用global命令定義,格式為:global 變量名1 變量名2 例3-18 全局變量應(yīng)用示例。先建立函數(shù)文件wadd.m,該函數(shù)將輸入的參數(shù)加權(quán)相加。function f=wadd(x,y)global ALPHA BETAf=ALPHA*x+BETA*y;在命令窗口中輸入:global ALPHA BETAALPHA=1;BETA=2;s=wadd(1,2)Xiamen UniversityMatlab and
18、Engineering Calculation3.3.4 函數(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)行處理。Xiamen UniversityMatlab and Engineering Calculation例3-17 nargin用法示例。用法示例。函數(shù)文件examp.m:function fout=charray(a,b,c)if nargin=1fout=a;elseif nargin=2fout=a+b;elseif nargin=3fout=(a*b*c)/2;end命令文件mydemo.m: ?x=1:3;y=1;2;3;examp(x)examp(x,y)examp(x,y,3)see varargin,varargoutXiamen UniversityMatlab and Engineering Calculationfunction x0, y0 = myplot(x, y
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZZB 3683-2024 水松紙卷筒料圓壓圓燙金機(jī)
- 二零二五年度房屋租賃合同(含瑜伽館)
- 2025年度肥料產(chǎn)品包裝設(shè)計(jì)及印刷合同
- 2025年度綠色生態(tài)果園轉(zhuǎn)讓協(xié)議書
- 二零二五年度智慧城市建設(shè)項(xiàng)目業(yè)績(jī)提成合同
- 天津市2025年度勞動(dòng)合同解除經(jīng)濟(jì)補(bǔ)償金支付與發(fā)放合同
- 二零二五年度科研機(jī)構(gòu)與高校人才合作就業(yè)協(xié)議書范本
- 二零二五年度臨時(shí)協(xié)議書:智慧社區(qū)建設(shè)與物業(yè)管理合作
- 2025年度智能車庫(kù)租賃與智慧城市建設(shè)項(xiàng)目合同
- 2025年度裝配行業(yè)人才培養(yǎng)終止合同協(xié)議
- 客源國(guó)概況-韓國(guó)課件
- 船塢的施工方法與流程
- 保密風(fēng)險(xiǎn)評(píng)估報(bào)告
- 道路建筑材料電子教案(全)
- 《尹定邦設(shè)計(jì)學(xué)概論》試題及答案
- 黃河流域生態(tài)保護(hù)和高質(zhì)量發(fā)展知識(shí)競(jìng)賽試題及答案(共52題)
- 1、1~36號(hào)元素電子排布式、排布圖
- 國(guó)網(wǎng)新聞宣傳與企業(yè)文化管理專責(zé)題庫(kù)匯總-下(判斷、簡(jiǎn)答題)
- 職業(yè)衛(wèi)生調(diào)查表
- 某安裝公司績(jī)效考核標(biāo)準(zhǔn)表
- 免疫學(xué)檢測(cè)技術(shù)的基本原理優(yōu)秀課件
評(píng)論
0/150
提交評(píng)論