




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年自然科學(xué)碩士生入學(xué)考試試題及答案
- 上海工藝美術(shù)職業(yè)學(xué)院《基礎(chǔ)醫(yī)學(xué)概要》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年醫(yī)學(xué)檢驗(yàn)師考試試卷及答案對比
- 應(yīng)用統(tǒng)計(jì)入門2025年考試試題及答案
- 山西省朔州市懷仁市第一中學(xué)2025年高三年級英語試題二模試題含解析
- 2025年職業(yè)技能鑒定考試試卷及答案
- 遼寧省丹東市鳳城市白旗中學(xué)2025年初三期末調(diào)研測試物理試題含解析
- 山西省懷仁一中2025屆高三.十三校聯(lián)考.第一次考試英語試題試卷含解析
- 工業(yè)廢水處理藥劑租賃及環(huán)保監(jiān)管服務(wù)合同
- 工業(yè)級材料扭轉(zhuǎn)試驗(yàn)機(jī)租賃與設(shè)備定期檢修合同
- 2023年浙江大學(xué)強(qiáng)基計(jì)劃招生考試數(shù)學(xué)試題真題(含答案)
- 輕度運(yùn)動損傷的自我處理
- 2023年高中音樂課件春游(合唱)
- 熱焓表飽和蒸汽或過熱蒸汽
- 北師大版數(shù)學(xué)七年級下冊第一單元綜合測試卷(解析版)
- 地下室長螺旋引孔施工方案完整
- GB/T 20019-2005熱噴涂熱噴涂設(shè)備的驗(yàn)收檢查
- 臺海局勢之我見課件
- 不良資產(chǎn)盡職調(diào)查清單
- 國開電大應(yīng)用寫作形考任務(wù)6答案
- 《歐洲西部》課件2
評論
0/150
提交評論