第7周小課 Matlab程序設(shè)計(jì)課件_第1頁(yè)
第7周小課 Matlab程序設(shè)計(jì)課件_第2頁(yè)
第7周小課 Matlab程序設(shè)計(jì)課件_第3頁(yè)
第7周小課 Matlab程序設(shè)計(jì)課件_第4頁(yè)
第7周小課 Matlab程序設(shè)計(jì)課件_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

教學(xué)內(nèi)容Matlab第7周小課Matlab程序設(shè)計(jì)教學(xué)要求熟悉Matlab的基本編程方法熟練掌握Matlab語(yǔ)言M文件,程序控制的三種基本結(jié)構(gòu)

第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)在歐美各高等學(xué)校,Matlab成為線性代數(shù)、自動(dòng)控制理論、數(shù)字信號(hào)處理、時(shí)間序列分析、動(dòng)態(tài)系統(tǒng)仿真、圖像處理等諸多課程的基本教學(xué)工具,成為學(xué)生必須掌握的基本技能。在設(shè)計(jì)研究單位和工業(yè)部門,Matlab已被廣泛地用于研究和解決各種具體的工程問(wèn)題??梢灶A(yù)見(jiàn),Matlab將在我國(guó)科學(xué)研究和工程應(yīng)用中發(fā)揮越來(lái)越大的作用。第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)交互式命令執(zhí)行方式(命令窗口)

逐條輸入,逐條執(zhí)行,操作簡(jiǎn)單、直觀,但速度慢,執(zhí)行過(guò)程不能保留。M文件的程序執(zhí)行方式

將命令編成程序存儲(chǔ)在一個(gè)文件中(M文件),依次運(yùn)行文件中的命令,可以重復(fù)進(jìn)行。Matlab程序設(shè)計(jì)有傳統(tǒng)高級(jí)語(yǔ)言的特征,又有自己獨(dú)特的特點(diǎn),可以利用數(shù)據(jù)結(jié)構(gòu)的特點(diǎn),使程序結(jié)構(gòu)簡(jiǎn)單,編程效率高。第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)用Matlab語(yǔ)言編寫的程序,稱為M文件。

是由若干Matlab命令組合在一起構(gòu)成的,它可以完成某些操作,也可以實(shí)現(xiàn)某種算法。

M文件根據(jù)調(diào)用方式的不同分為兩類:

命令文件(ScriptFile)函數(shù)文件(FunctionFile)

它們的擴(kuò)展名都是.m第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)命令文件沒(méi)有輸入?yún)?shù),也不返回輸出參數(shù);函數(shù)文件可以帶輸入?yún)?shù),也可以返回輸出參數(shù)。命令文件對(duì)工作空間中的變量進(jìn)行操作,文件中所有命令的執(zhí)行結(jié)果也返回工作空間中;函數(shù)文件中定義的變量為局部變量,當(dāng)函數(shù)文件執(zhí)行完畢時(shí),這些變量也被清除。命令文件可以直接運(yùn)行;函數(shù)文件不能直接運(yùn)行,要以函數(shù)調(diào)用的方式來(lái)調(diào)用它。第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(命令文件exch)命令文件:clear;a=1:10;b=[11,12,13,14;15,16,17,18];c=a;a=b;b=c;ab將文件保存為exch,并在命令窗口執(zhí)行。執(zhí)行結(jié)果(將a,b的值互換)a=1112131415161718b=12345678910第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(函數(shù)文件)fexch.mfunction[a,b]=exch(a,b)c=a;a=b;b=c;然后在命令窗口調(diào)用該函數(shù)文件:clear;x=1:10;y=[11,12,13,14;15,16,17,18];[x,y]=fexch(x,y)輸出結(jié)果為:a=1112131415161718b=12345678910函數(shù)參數(shù)a,b,c未保留在工作空間中,x,y保留在工作空間中。第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(M文件)

M文件是一個(gè)文本文件,可以用任何編輯程序來(lái)建立和編輯,一般最常用的是使用Matlab提供的文本編輯器。

該編輯器是一個(gè)集編輯和調(diào)試于一體的工作環(huán)境。第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(程序控制結(jié)構(gòu))順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)

任何復(fù)雜的程序都可以由這3種基本結(jié)構(gòu)構(gòu)成。第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(順序結(jié)構(gòu))順序結(jié)構(gòu)是指按照程序中語(yǔ)句的排列順序依次執(zhí)行,直到程序的最后一個(gè)語(yǔ)句。(最簡(jiǎn)單的一種程序)1、數(shù)據(jù)的輸入從鍵盤輸入數(shù)據(jù),則可以使用input函數(shù)來(lái)進(jìn)行,調(diào)用格式為:

A=input(提示信息,選項(xiàng));其中提示信息為一個(gè)字符串,用于提示用戶輸入數(shù)據(jù)。

例如:從鍵盤輸入A矩陣,可以采用下面的命令來(lái)完成

A=input(‘輸入A矩陣’);

如果在input函數(shù)調(diào)用時(shí)采用’s’選項(xiàng),則允許用戶輸入一個(gè)字符串。例:xm=input(‘What’’syourname?’,’s’);第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(順序結(jié)構(gòu))2、數(shù)據(jù)的輸出

命令窗口輸出函數(shù)主要有disp函數(shù),其調(diào)用格式為:

disp(輸出項(xiàng))其中輸出項(xiàng)既可以為字符串,也可以為矩陣。例如:

A=‘Hello,Tom’;disp(A)

輸出為:Hello,Tom

又如:A=[1,2,3;4,5,6;7,8,9];disp(A)

輸出為:

123456789%disp函數(shù)輸出格式更緊湊第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(順序結(jié)構(gòu))例5.2求一元二次方程的根。由于Matlab能進(jìn)行復(fù)數(shù)運(yùn)算,所以不需要判斷方程的判別式,可直接根據(jù)求根公式求根。程序如下: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))]);程序輸出為:a=?4b=?78c=?54x1=-0.7188,x2=-18.7812第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(順序結(jié)構(gòu))3、程序的暫停程序執(zhí)行過(guò)程中暫停,可用pause函數(shù),其調(diào)用格式為:

pause(延遲描述)

如果省略延遲時(shí)間,直接使用pause,則將暫停程序,直到用戶按任一鍵后程序繼續(xù)執(zhí)行。

若要強(qiáng)行中止程序的運(yùn)行可按Ctrl+C鍵。第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(選擇結(jié)構(gòu))選擇結(jié)構(gòu)是根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語(yǔ)句。Matlab用于實(shí)現(xiàn)選擇結(jié)構(gòu)的語(yǔ)句有if語(yǔ)句,switch語(yǔ)句和try語(yǔ)句。1.if語(yǔ)句在Matlab中,if語(yǔ)句有3種格式。(1)單分支if語(yǔ)句語(yǔ)句格式:if條件語(yǔ)句組end例如:當(dāng)x是整數(shù)矩陣時(shí),輸出x的值iffix(x)==xdisp(x);end第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(選擇結(jié)構(gòu))(2)雙分支if語(yǔ)句語(yǔ)句格式:if條件語(yǔ)句組1else

語(yǔ)句組2end當(dāng)條件成立時(shí),執(zhí)行語(yǔ)句組1,否則執(zhí)行語(yǔ)句組2,然后再執(zhí)行if語(yǔ)句的后續(xù)語(yǔ)句。第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(選擇結(jié)構(gòu))例

計(jì)算分段函數(shù):程序如下:x=input(‘請(qǐng)輸入x的值:');ifx==10y=cos(x+1)+sqrt(x*x+1);elsey=x*sqrt(x+sqrt(x));endy也可以用單分支if語(yǔ)句來(lái)實(shí)現(xiàn):x=input('請(qǐng)輸入x的值:');y=cos(x+1)+sqrt(x*x+1);ifx~=10y=x*sqrt(x+sqrt(x));endy第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(選擇結(jié)構(gòu))(3)多分支if語(yǔ)句語(yǔ)句格式:if條件1

語(yǔ)句組1elseif條件2

語(yǔ)句組2…elseif條件m

語(yǔ)句組melse

語(yǔ)句組nend第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(選擇結(jié)構(gòu))輸入一個(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(chǎn)’)-abs(‘A’)));elseifc>=‘a(chǎn)’&c<=‘z’disp(setstr(abs(c)-abs(‘a(chǎn)’)+abs(‘A’)));elseifc>=‘0’&c<=‘9’disp(abs(c)-abs(‘0’));elsedisp(c);end第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(選擇結(jié)構(gòu))2、switch語(yǔ)句switch語(yǔ)句根據(jù)表達(dá)式的取值不同,分別執(zhí)行不同的語(yǔ)句,其語(yǔ)句格式:switch表達(dá)式case表達(dá)式1

語(yǔ)句組1case表達(dá)式2

語(yǔ)句組2…case表達(dá)式m

語(yǔ)句組motherwise

語(yǔ)句組nend第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(選擇結(jié)構(gòu))某商場(chǎng)對(duì)顧客所購(gòu)買的商品實(shí)行打折銷售,標(biāo)準(zhǔn)如下:price<200沒(méi)有折扣200<=price<5003%折扣500<=price<10005%折扣1000<=price<25008%折扣2500<=price<500010%折扣5000<=price14%折扣輸入所售商品的價(jià)格,求其實(shí)際銷售價(jià)格。請(qǐng)同學(xué)們?cè)囍幊虒?shí)現(xiàn)。第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(選擇結(jié)構(gòu))price=input(‘請(qǐng)輸入商品價(jià)格’);switchfix(price/100)case{0,1}%價(jià)格小于200rate=0;case{2,3,4}rate=3/100;%價(jià)格大于等于200但小于500casenum2cell(5:9)rate=5/100;%價(jià)格大于等于500但小于1000casenum2cell(10:24)rate=8/100;%價(jià)格大于等于1000但小于2500casenum2cell(25:49)rate=10/100;%價(jià)格大于等于2500但小于5000otherwiserate=14/100;%價(jià)格大于等于5000endprice=price*(1-rate)%輸出商品實(shí)際銷售價(jià)格第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(選擇結(jié)構(gòu))3.try語(yǔ)句

try語(yǔ)句是一種試探性執(zhí)行語(yǔ)句,其語(yǔ)句格式為:

try

語(yǔ)句組1catch

語(yǔ)句組2endtry語(yǔ)句先試探性執(zhí)行語(yǔ)句組1,如果在執(zhí)行過(guò)程中出現(xiàn)錯(cuò)誤,則將錯(cuò)誤信息賦給保留的lasterr變量,并轉(zhuǎn)去執(zhí)行語(yǔ)句組2.第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(選擇結(jié)構(gòu))矩陣乘法運(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ò)原因C=71627405572ans=Errorusing==>mtimesInnermatrixdimensionsmustagree.第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(循環(huán)結(jié)構(gòu))循環(huán)是指按照給定的條件,重復(fù)執(zhí)行指定的語(yǔ)句,Matlab提供了兩種實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語(yǔ)句:for語(yǔ)句和while語(yǔ)句。1、for語(yǔ)句for語(yǔ)句的格式為:for循環(huán)變量=表達(dá)式1:表達(dá)式2:表達(dá)式3

循環(huán)體語(yǔ)句end其中表達(dá)式1的值為循環(huán)變量的初值,表達(dá)式2的值為步長(zhǎng),表達(dá)式3的值為循環(huán)變量的終值。步長(zhǎng)為1時(shí),表達(dá)式2可以省略。第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(循環(huán)結(jié)構(gòu))已知,當(dāng)n=100時(shí),求y的值。程序如下:y=0;n=100;fori=1:ny=y+1/i/i;endy輸出結(jié)果為:y=1.6350利用Matlab的特點(diǎn),常用向量運(yùn)算來(lái)代替循環(huán)操作,程序可以如下:n=100;i=1:n;f=1./i.^2;y=sum(f)第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(循環(huán)結(jié)構(gòu))2、while語(yǔ)句while語(yǔ)句的一般格式為:while條件循環(huán)體語(yǔ)句end其執(zhí)行過(guò)程為:若條件成立,則執(zhí)行循環(huán)體語(yǔ)句,執(zhí)行后再判斷條件是否成立,如果不成立則跳出循環(huán)。第7周小課Matlab程序設(shè)計(jì)Matlab程序設(shè)計(jì)(循環(huán)結(jié)構(gòu))從鍵盤輸入若干個(gè)數(shù),當(dāng)輸入0時(shí)結(jié)束輸入,求這些數(shù)的平均值和它們的和。sum=0;n=0;x=input(‘Enteranumber(endin

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論