計(jì)算機(jī)仿真技術(shù)與CAD-基于MATLAB的電氣工程(第2版) 課件 第3章MATLAB程序設(shè)計(jì)_第1頁
計(jì)算機(jī)仿真技術(shù)與CAD-基于MATLAB的電氣工程(第2版) 課件 第3章MATLAB程序設(shè)計(jì)_第2頁
計(jì)算機(jī)仿真技術(shù)與CAD-基于MATLAB的電氣工程(第2版) 課件 第3章MATLAB程序設(shè)計(jì)_第3頁
計(jì)算機(jī)仿真技術(shù)與CAD-基于MATLAB的電氣工程(第2版) 課件 第3章MATLAB程序設(shè)計(jì)_第4頁
計(jì)算機(jī)仿真技術(shù)與CAD-基于MATLAB的電氣工程(第2版) 課件 第3章MATLAB程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1本章內(nèi)容

MATLAB的M文件的建立與使用;

MATLAB的文本文件與函數(shù)文件的區(qū)別與特點(diǎn)

MATLAB的循環(huán)語句;

MATLAB的控制語句;

MATLAB的轉(zhuǎn)移語句。第3章MATLAB程序設(shè)計(jì)2MATLAB語言僅靠一條一條地輸入語句,難以實(shí)現(xiàn)復(fù)雜功能,為了實(shí)現(xiàn)諸如循環(huán)、條件和分支等功能,就要像其他計(jì)算機(jī)語言一樣進(jìn)行程序設(shè)計(jì)。

MATLAB語言的程序設(shè)計(jì),則利用了M文件,而M文件是由一系列的MATLAB語句組成的。3

因?yàn)镸ATLAB本身可以被認(rèn)為是一高效的語言,所以用它可編寫出具有特殊意義的磁盤文件來,這些磁盤文件是由一系列的MATLAB語句組成,它既可能是一系列窗口命令語句,又可以是由各種控制語句和說明語句構(gòu)成的函數(shù)文件。由于它們都是由ASCII碼構(gòu)成的,其擴(kuò)展名均為“.m”,故統(tǒng)稱為m文件。3.1MATLAB的M文件4

由于M文件具有普通的文本格式,因而可以用任何編輯器建立和編輯。但一般最常用、而且最為方便地是使用MATLAB自帶的編輯器,即利用MATLAB操作界面中的菜單命令File

New

M-File或File

Open打開的M文件編輯窗口對M文件進(jìn)行建立和編輯。5

在MATLAB6.x/7.x中,利用其操作界面中的菜單命令File

New

M-File和File

Open,可打開M文件編輯窗口對M文件進(jìn)行建立和編輯。為了進(jìn)一步方便用戶對M文件的建立和編輯,在其窗口中也設(shè)置了快捷工具“”和“”。在MATLAB8.x/9.x中,則利用其主頁(HOME)中新建(New)菜單下的腳本(Script)命令或主頁(HOME)中新建腳本(NewScript)快捷工具“”打開M文本文件編輯窗口。利用其主頁(HOME)中新建(New)菜單下的函數(shù)(function)命令,打開M函數(shù)文件編輯窗口。63.1.1文本文件文本文件(也稱為腳本文件,簡稱為MATLAB的程序)是一系列的MATLAB語句組成,它類似于DOS下的批處理文件,在MATLAB的提示符下直接鍵入文本文件名,便可自動執(zhí)行文件中的一系列命令,直至給出最終結(jié)果。文本文件在工作空間中運(yùn)算的變量為全局變量。7例3-1利用MATLAB的文本文件,求方程在x1=-2,x2=3,x3=1時的值。解①首先在MATLAB的操作界面中,利用菜單命令File

New

M-File,打開M文件編輯器,然后在編輯器中根據(jù)例中所給方程編寫以下文本文件,并以ex3_1_1為文件名進(jìn)行保存%ex3_1_1.mx1=-2;x2=3;x3=1;y1=3*x1+x2+x3y2=3*x1-x2-x389

對于MATLAB8.x/9.x,則利用其主頁(HOME)中新建(New)菜單下的文本(Script)命令或主頁(HOME)中新建文本(NewScript)快捷工具“”打開M文本文件編輯窗口。10②當(dāng)以上文本文件ex3_1_1.m建立后,在MATLAB命令窗口中輸入>>ex3_1_1回車后結(jié)果顯示:y1=-2y2=-1011

由于文本文件中的變量為全局變量,故以上變量x1,x2,x3的值,也可在文本文件外先給定,此時的文本文件為%ex3_1_2.my1=3*x1+x2+x3y2=3*x1-x2-x312當(dāng)以上文本文件ex3_1_2.m建立后,利用以下命令,同樣可以得到以上結(jié)果。

>>x1=-2;x2=3;x3=1;ex3_1_2133.1.2函數(shù)文件函數(shù)文件的功能是建立一個函數(shù),且這個函數(shù)可以同MATLAB的庫函數(shù)一樣使用,它與文本文件不同,在一般情況下不能單獨(dú)鍵入函數(shù)文件的文件名來運(yùn)行一個函數(shù)文件,它必須由其它語句來調(diào)用。

以上兩種方式下,文本文件中變量的值都被保存下來,這與下面的函數(shù)文件是不同的。14

函數(shù)文件允許有多個輸入?yún)?shù)和多個輸出參數(shù)值,其基本格式如下function[f1,f2,f3,…]=fun(x,y,z,…)

注釋說明語句函數(shù)體語句其中x,y,z,…是形式輸入?yún)?shù);而f1,f2,f3,…是返回的形式輸出參數(shù)值;fun是函數(shù)名。15

實(shí)際上,函數(shù)名一般就是這個函數(shù)文件的磁盤文件名,注釋語句段的內(nèi)容同樣可用help命令顯示出來。調(diào)用一個函數(shù)文件只需直接使用與這個函數(shù)一致的格式[y1,y2,y3,…]=fun(i,j,k,…)其中i,j,k,…是相應(yīng)的實(shí)際輸入?yún)?shù),而y1,y2,y3,…是相應(yīng)的實(shí)際輸出參數(shù)值。16例3-2利用MATLAB的函數(shù)文件,求以下方程

在x1=-2,x2=3,x3=1時的值解

①由于函數(shù)文件的建立與文本文件完全一樣,故應(yīng)首先根據(jù)例中所給方程在MATLAB的M文件編輯器下,建立以下函數(shù)文件ex3_2.m%ex3_2.mfunction[b1,b2]=ex3_2(a1,a2,a3)b1=3*a1+a2+a3;b2=3*a1-a2-a3;17對于MATLAB8.x/9.x,則利用其主頁(HOME)中新建(New)菜單下的函數(shù)(function)命令,打開M函數(shù)文件編輯窗口,它與MATLAB的M文本文件編輯窗口略有不同,其區(qū)別在于已經(jīng)設(shè)置其第一行由function開頭,最后一行由end結(jié)尾的標(biāo)準(zhǔn)函數(shù)文件格式(如同MATLAB6.x/7.x一樣,這里的end也可刪除不要)。18②當(dāng)以上函數(shù)文件ex3_2.m建立后,在MATLAB命令窗口中輸入以下命令>>x1=-2;x2=3;x3=1;[y1,y2]=ex3_2(x1,x2,x3)結(jié)果顯示:y1=-2y2=-10

19

函數(shù)文件中定義的變量為局部變量,也就是說它只在函數(shù)內(nèi)有效。即在該函數(shù)返回后,這些變量會自動在MATLAB工作空間中清除掉,這與文本文件是不同的,但可通過命令global<變量>來定義一個全局變量。函數(shù)文件與文本文件另一個區(qū)別在于其第一行是由function開頭的,且有函數(shù)名和輸入形式參數(shù)與輸出形式參數(shù),若是沒有這一行的磁盤文件就是文本文件。20

由于m文件具有普通的文本格式,因而可以用任何編輯程序建立和編輯,但一般最常用、而且最為方便地是使用MATLAB命令窗口的File|New或File|Open菜單項(xiàng)對m文件進(jìn)行建立和編輯。21MATLAB實(shí)際上可以認(rèn)為是一種解釋性語言,用戶可以在MATLAB工作環(huán)境下一條一條地鍵入命令,也可以直接鍵入用MATLAB的語言編寫的M文件名,或它們結(jié)合起來使用,這樣MATLAB軟件對此命令或M文件中各條命令進(jìn)行翻譯,然后在MATLAB環(huán)境下對它進(jìn)行處理,最后返回運(yùn)算結(jié)果。所以說MATLAB語言的一般結(jié)構(gòu)為:MATLAB語言=窗口命令+M文件223.2MATLAB的程序結(jié)構(gòu)MATLAB是一個功能極強(qiáng)的高度集成化程序設(shè)計(jì)語言,它具備一般程序設(shè)計(jì)語言的基本語句結(jié)構(gòu),并且它的功能更強(qiáng),由它編寫出來的程序結(jié)構(gòu)簡單,可讀性強(qiáng)。同其它高級語言一樣,MATLAB也提供了條件轉(zhuǎn)移語句、循環(huán)語句和一些常用的控制語句,從而使得MATLAB語言的編程顯得十分靈活。233.2.1循環(huán)語句MATLAB中可以使用兩種循環(huán)語句:

for語句和while語句。1.for語句的基本格式為for循環(huán)變量=表達(dá)式1:表達(dá)式3:表達(dá)式2

循環(huán)語句組

end24例MABLAB程序

%ex3_3_1.mmysum=0;fori=1:100 mysum=mysum+i;endmysum運(yùn)行結(jié)果mysun=5050252.while語句的基本結(jié)構(gòu)為

while(條件式)

循環(huán)體條件組

end

其執(zhí)行方式為,若條件式中的條件成立,則執(zhí)行循環(huán)體的內(nèi)容,執(zhí)行后再判斷表達(dá)式是否仍然成立,如果表達(dá)式不成立,則跳出循環(huán),向下繼續(xù)執(zhí)行。26例如對于上面的例子,如果改用while循環(huán)語句,則可以寫出下面的程序

%ex3_3_2.msum=0;i=1;while(i<=100) sum=sum+i;i=i+1;endMATLAB提供的循環(huán)語句for和while是允許多級嵌套的,而且它們之間也允許相互嵌套,這和C語言等高級程序設(shè)計(jì)語言是一致的。273.2.2程序流控制語句

在程序設(shè)計(jì)語言中,經(jīng)常會遇到提前終止循環(huán)、跳出子程序、顯示執(zhí)行過程等,此時就要用到以下控制程序流命令。1.echo命令2.break命令3.continue命令4.pause命令5.return命令283.2.3條件轉(zhuǎn)移語句

在程序設(shè)計(jì)中,經(jīng)常要根據(jù)一定的條件來執(zhí)行不同的命令。當(dāng)某些條件滿足時,只執(zhí)行其中的某個命令或某些命令。在MATLAB中,條件轉(zhuǎn)移語句包括:

if-else-end語句

switch-case-otherwise語句。

291.if-else-end語句的基本格式

在MATLAB中,最簡單的條件結(jié)構(gòu):if-end語句命令格式為

ifexpressionstatementsend當(dāng)給出的條件式expression成立時,則執(zhí)行該條件塊結(jié)構(gòu)中的語句內(nèi)容statements,執(zhí)行完之后繼續(xù)向下執(zhí)行,若條件不成立,則跳出條件塊而直接向下執(zhí)行。30例4-4求滿足

的最小m值.

解MABLAB程序%ex3_4.mmysum=0;form=1:1000

mysum=mysum+m;if(mysum>1000)break;endendm

運(yùn)行結(jié)果

m=4531

注意,這里使用了break命令,其作用就是中止上一級的for語句循環(huán)過程,同樣while循環(huán)語句也在條件轉(zhuǎn)移語句中起著相當(dāng)重要的作用,因?yàn)樵贛ATLAB下沒有提供絕對轉(zhuǎn)移的指令。32MATLAB還提供了其他兩種條件結(jié)構(gòu):if-else-end格式和if-elseif-end格式,這兩種格式的調(diào)用方法分別為

ifexpressionstatements1elsestatements2end33和ifexpression1statements1elseifexpression2statements2elseifexpression3statements3┇end34例3-5

如果想對一個變量x自動賦值。當(dāng)從鍵盤輸入y或Y時(表示是),x自動賦為1值;當(dāng)從鍵盤輸入n或N時(表示否),x自動賦為0值;輸入其他字符時終止程序。解可由下列的while循環(huán)程序來執(zhí)行。%ex3_5.mikey=0;while(ikey==0)s1=input('若給x賦值請輸入[y/n]?','s');if(s1=='y'|s1=='Y')ikey=1;x=1elseif(s1=='n'|s1=='N')ikey=1;x=0,endbreakendend352.switch-case-otherwise語句的基本格式

MATLAB中switch-case-otherwise語句的調(diào)用格式為

switchswitch-expressioncasecase-expression1statements1;casecase-expression2statements2;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論