版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1第第5講講 matlab程序設(shè)計(jì)程序設(shè)計(jì)尚濤,電子信息工程學(xué)院尚濤,電子信息工程學(xué)院tel:010-823172222本講目標(biāo)l 掌握matlab的幾種基本控制轉(zhuǎn)移語句l學(xué)會(huì)使用m文件進(jìn)行編程l具備對(duì)復(fù)雜問題的編程求解能力3主要內(nèi)容l程序設(shè)計(jì)概述程序設(shè)計(jì)概述lmatlab程序結(jié)構(gòu)程序結(jié)構(gòu)lm文件文件l調(diào)試調(diào)試4.1 程序設(shè)計(jì)概述lmatlab是第四代編程語言是第四代編程語言l程序簡潔l可讀性很強(qiáng)l調(diào)試容易l編程效率高l易移植和維護(hù) l通過編程可求解復(fù)雜性更高或特殊的計(jì)算問題通過編程可求解復(fù)雜性更高或特殊的計(jì)算問題第一代 機(jī)器語言 特征:面向機(jī)器。 第二代 匯編語言 特征:用指令符號(hào)代替二進(jìn)制
2、代碼 第三代 c、c+、pascal等 特征:面向過程 第四代 java,c#等 特征:面向?qū)ο?l與其他高級(jí)語言相比與其他高級(jí)語言相比具有語法相對(duì)簡單、使用方便、容易調(diào)試等優(yōu)具有語法相對(duì)簡單、使用方便、容易調(diào)試等優(yōu)點(diǎn)點(diǎn)l在編程工作方式下,要求具有在編程工作方式下,要求具有l(wèi)數(shù)據(jù)結(jié)構(gòu)l控制流l輸入輸出l面向?qū)ο?l編制一種擴(kuò)展名為編制一種擴(kuò)展名為.m的的matlab程序程序(簡稱簡稱m文件文件)l編輯環(huán)境編輯環(huán)境7.2 matlab程序結(jié)構(gòu)l按照程序設(shè)計(jì)的觀點(diǎn)按照程序設(shè)計(jì)的觀點(diǎn), 任何算法功能都可以通過任何算法功能都可以通過由程序模塊組成的三種基本流程控制結(jié)構(gòu)的組由程序模塊組成的三種基本流程控
3、制結(jié)構(gòu)的組合來實(shí)現(xiàn)合來實(shí)現(xiàn): l順序結(jié)構(gòu):程序按程序語句或模塊在執(zhí)行流中的順序逐個(gè)執(zhí)行。 l分支結(jié)構(gòu):程序按設(shè)定的條件實(shí)現(xiàn)程序執(zhí)行流的多路分支。 l循環(huán)結(jié)構(gòu):程序按給定的條件重復(fù)地執(zhí)行指定的程序段或模塊。85.2.1順序結(jié)構(gòu)程序程序模塊模塊1 1程序模塊程序模塊2 2lmatlab中實(shí)現(xiàn)順序結(jié)構(gòu)的方法非常簡單:中實(shí)現(xiàn)順序結(jié)構(gòu)的方法非常簡單:l只需將程序語句順序排列即可 9example.m文件文件theta=-pi:0.01:pi;rho(1,:)=2*sin(5*theta).2;polar(theta,rho(1,:)執(zhí)行執(zhí)行example105.2.2 分支結(jié)構(gòu)l在在matlab中,選擇
4、結(jié)構(gòu)由中,選擇結(jié)構(gòu)由兩種語句結(jié)構(gòu)實(shí)現(xiàn):兩種語句結(jié)構(gòu)實(shí)現(xiàn):lif語句lswitch語句條件條件程序模塊程序模塊1成立成立不成立不成立程序模塊程序模塊23.2.2 選擇結(jié)構(gòu)11if語句if表達(dá)式表達(dá)式 程序模塊程序模塊1 else 程序模塊程序模塊2end12if語句的兩種變形l(1) 單分支單分支if語句:只有一個(gè)分支的選擇結(jié)構(gòu)語句:只有一個(gè)分支的選擇結(jié)構(gòu) if表達(dá)式 程序模塊endl(2) 多分支多分支if語句:超過語句:超過2個(gè)的選擇個(gè)的選擇if表達(dá)式1 程序模塊1 elseif 表達(dá)式2 程序模塊2 elseif 表達(dá)式n 程序模塊n else 程序模塊n+1end13例:將百分制的學(xué)生成
5、績轉(zhuǎn)換為五級(jí)制的成績輸出clearn=input(輸入輸入n= ); if n=90 r=aelseif n=80 r=belseif n=70 r=celseif n=60 r=delse r=eend運(yùn)行結(jié)果:運(yùn)行結(jié)果:輸入n= 87r =b14switch語句 switch 表達(dá)式表達(dá)式 case 數(shù)值數(shù)值1 程序模塊程序模塊1; case 數(shù)值數(shù)值2 程序模塊程序模塊2;otherwise 程序模塊程序模塊n end15例:將百分制的學(xué)生成績轉(zhuǎn)換為五級(jí)制的成績輸出使用switch語句 clearn=input(輸入輸入n= ); switch fix(n/10) %fix 取整取整 c
6、ase 10,9 r=a case 8 r=b case 7 r=c case 6 r=d otherwise r=eend運(yùn)行結(jié)果:運(yùn)行結(jié)果:輸入n= 65r =d165.2.3 循環(huán)結(jié)構(gòu)l在在matlab中,循環(huán)結(jié)構(gòu)可中,循環(huán)結(jié)構(gòu)可以由兩種語句結(jié)構(gòu)實(shí)現(xiàn):以由兩種語句結(jié)構(gòu)實(shí)現(xiàn):lfor語句循環(huán)結(jié)構(gòu)lwhile語句循環(huán)結(jié)構(gòu)程序模塊程序模塊不成立不成立成立成立條件條件3.2.2 選擇結(jié)構(gòu)17for語句循環(huán)結(jié)構(gòu)語句循環(huán)結(jié)構(gòu)for循環(huán)變量起始值:步長:終止值循環(huán)變量起始值:步長:終止值循環(huán)體循環(huán)體end18例:使用for結(jié)構(gòu)計(jì)算1+2+3+100clearsum=0;for i=1:100 sum=
7、sum+i;endsum運(yùn)行結(jié)果:運(yùn)行結(jié)果:sum = 505019while語句循環(huán)結(jié)構(gòu)語句循環(huán)結(jié)構(gòu) while表達(dá)式表達(dá)式 循環(huán)體循環(huán)體end20例:使用while結(jié)構(gòu)計(jì)算1+2+3+100clearsum=0; i=0;while i100i=i+1;sum=sum+i;endsum運(yùn)行結(jié)果:運(yùn)行結(jié)果:sum = 5050215.3 m文件文件m文件兩種形式文件兩種形式l命令文件(命令文件(script)l命令和函數(shù)的結(jié)合l文件運(yùn)行不需要輸入?yún)?shù)和輸出參數(shù)l按順序自動(dòng)執(zhí)行命令l函數(shù)文件(函數(shù)文件(function)l用function聲明l可以包含輸入?yún)?shù)和輸出參數(shù)l文件運(yùn)行須給出輸入?yún)?/p>
8、數(shù)自動(dòng)化模塊化225.3.1基本組成結(jié)構(gòu)說明定義變量 %包括全局變量的聲明及參數(shù)值的設(shè)定包括全局變量的聲明及參數(shù)值的設(shè)定逐行執(zhí)行命令 %指指matlab提供的運(yùn)算指令或工具箱提供的專用命令提供的運(yùn)算指令或工具箱提供的專用命令 /分支/循環(huán) %包含包含for,if then,switch,while等語句等語句 逐行執(zhí)行命令 end %表示結(jié)束表示結(jié)束,可以沒有可以沒有 235.3.2 m文件的編輯及工作路徑的設(shè)置l進(jìn)入進(jìn)入matlab的的editor/debugger窗口來編輯程序窗口來編輯程序l在編輯環(huán)境中,文字的不同顏色顯示表明不同屬性在編輯環(huán)境中,文字的不同顏色顯示表明不同屬性 綠色:注
9、解; 黑色:程序主體; 紅色:屬性值的設(shè)定; 藍(lán)色:控制流程。l在運(yùn)行程序之前,必須設(shè)置好在運(yùn)行程序之前,必須設(shè)置好matlab的工作路徑。的工作路徑。通過通過cd指令在命令窗口中可以更改、顯示當(dāng)前工作路徑。指令在命令窗口中可以更改、顯示當(dāng)前工作路徑。l通過路徑瀏覽器(通過路徑瀏覽器(path browser)可以進(jìn)行設(shè)置)可以進(jìn)行設(shè)置24255.3.3命令文件命令文件l又稱為腳本文件,是一串指令的集合。又稱為腳本文件,是一串指令的集合。l用戶只需鍵入該命令文件的文件名,系統(tǒng)就會(huì)用戶只需鍵入該命令文件的文件名,系統(tǒng)就會(huì)自動(dòng)逐行執(zhí)行該文件中的各條語句。自動(dòng)逐行執(zhí)行該文件中的各條語句。l適用于小規(guī)
10、模運(yùn)算。適用于小規(guī)模運(yùn)算。265.3.4函數(shù)文件函數(shù)文件l函數(shù)文件基本格式:函數(shù)文件基本格式:function 輸出形參列表=函數(shù)名(輸入形參列表) 注釋說明語句段 程序語句段end27函數(shù)內(nèi)容:(1)第一行幫助行,即)第一行幫助行,即h1行行 以(以(%)開頭,作為)開頭,作為lookfor指令搜索的行指令搜索的行(2)函數(shù)體說明及有關(guān)注解)函數(shù)體說明及有關(guān)注解 以(以(%)開頭,用以說明函數(shù)的作用及有關(guān)內(nèi)容。)開頭,用以說明函數(shù)的作用及有關(guān)內(nèi)容。如果不希望顯示某段信息,可在它的前面加空行如果不希望顯示某段信息,可在它的前面加空行(3)函數(shù)體語句)函數(shù)體語句 函數(shù)體內(nèi)使用的除返回和輸入變量這
11、些在函數(shù)體內(nèi)使用的除返回和輸入變量這些在function語句中直接引用的變量以外的所有變量都是語句中直接引用的變量以外的所有變量都是局部局部變量變量,即在該函數(shù)返回之后,這些變量會(huì)自動(dòng)在,即在該函數(shù)返回之后,這些變量會(huì)自動(dòng)在matlab的工作空間中清除掉。的工作空間中清除掉。28函數(shù)文件29函數(shù)程序使用的變量 函數(shù)程序與主程序之間的數(shù)據(jù)是通過參數(shù)進(jìn)行傳遞的,函數(shù)程序應(yīng)用主程序傳遞來的參數(shù)進(jìn)行計(jì)算后,將結(jié)果返回主程序。30%主程序exp2_9.ma=input(please input value of a=);b=input(please input value of b=);c=sumhe(
12、a,b)% 在此例中,主程序exp2_9.m設(shè)定了兩個(gè)參數(shù)a和b來調(diào)用% 子程序sumhe.m(為一個(gè)函數(shù)文件),% 所以執(zhí)行主程序時(shí),子程序就會(huì)調(diào)用主程序傳遞過來的% a和b值進(jìn)行計(jì)算,再將結(jié)果返回主程序。%子程序sumhe.m%sumhe(a,b) sum the serial of numbers from a tob function result=sumhe(a,b)result=a+b;end315.4局部變量和全局變量 如果一個(gè)函數(shù)內(nèi)的變量沒有特別聲明,那么這如果一個(gè)函數(shù)內(nèi)的變量沒有特別聲明,那么這個(gè)變量只在函數(shù)內(nèi)部使用,即為個(gè)變量只在函數(shù)內(nèi)部使用,即為局部變量局部變量。如果兩個(gè)
13、或多個(gè)函數(shù)共用一個(gè)變量(或者說在如果兩個(gè)或多個(gè)函數(shù)共用一個(gè)變量(或者說在函數(shù)程序中也要用到主程序中的變量,注意不函數(shù)程序中也要用到主程序中的變量,注意不是參數(shù)),那么可以用是參數(shù)),那么可以用global來將它聲明為來將它聲明為全局全局變量變量。 全局變量的使用可以減少參數(shù)傳遞,合理利用全局變量的使用可以減少參數(shù)傳遞,合理利用全局變量可以提高程序執(zhí)行的效率。全局變量可以提高程序執(zhí)行的效率。32%主程序exp2_10.mglobal a %聲明變量a為全局變量x=1:100;a=3;c=prods(x) %調(diào)用子程序prods.m%子程序prods.mfunction result=prods(
14、x)global a result=a*sum(x);%聲明了與主程序一樣的全局變量a,以便在子程序中可以%使用主程序中定義的變量335. 5 人機(jī)交互l人機(jī)交互命令人機(jī)交互命令echo on(off) 執(zhí)行命令前先顯示其內(nèi)容執(zhí)行命令前先顯示其內(nèi)容pause(n) 程序執(zhí)行到此處,暫停程序執(zhí)行到此處,暫停n秒,或鍵入任意鍵后才繼續(xù)執(zhí)行秒,或鍵入任意鍵后才繼續(xù)執(zhí)行keyboard 程序執(zhí)行到此處暫停,屏幕顯示程序執(zhí)行到此處暫停,屏幕顯示k,用戶可以做任何操作,用戶可以做任何操作,需恢復(fù)運(yùn)行時(shí),鍵入需恢復(fù)運(yùn)行時(shí),鍵入returninput(提示符提示符) 程序執(zhí)行到此處暫停,屏幕顯示引號(hào)中的字符串
15、,要求用戶程序執(zhí)行到此處暫停,屏幕顯示引號(hào)中的字符串,要求用戶輸入數(shù)據(jù)輸入數(shù)據(jù)c 強(qiáng)行停止程序運(yùn)行強(qiáng)行停止程序運(yùn)行345.6 m文件調(diào)試l兩種類型的錯(cuò)誤兩種類型的錯(cuò)誤l語法錯(cuò)誤:由用戶的錯(cuò)誤操作引起的l運(yùn)行錯(cuò)誤:算法錯(cuò)誤和程序設(shè)計(jì)錯(cuò)誤引起的35編輯器的編輯與調(diào)試363738擴(kuò)展閱讀l其他流程控制語句其他流程控制語句l1. break語句l2. continue語句l3. return語句l4. try語句l5. echo命令l6. input命令l7. keyboard命令l8. pause命令lgui程序設(shè)計(jì)程序設(shè)計(jì)(圖形用戶界面圖形用戶界面)lmatlab應(yīng)用程序接口應(yīng)用程序接口(api)
16、 l提供庫函數(shù)提供庫函數(shù)l與與c或或fortran語言混合編程語言混合編程39其他章節(jié)其他章節(jié)lsimulink系統(tǒng)建模仿真分析的軟件包系統(tǒng)建模仿真分析的軟件包l線性和非線性系統(tǒng)l連續(xù)和離散時(shí)間系統(tǒng)l圖像、視頻、聲音的處理lmatlab的綜合應(yīng)用的綜合應(yīng)用l電路l電力系統(tǒng)l信號(hào)與系統(tǒng)l數(shù)字信號(hào)處理l圖像處理40 本節(jié)介紹了本節(jié)介紹了matlab程序設(shè)計(jì)基礎(chǔ)知識(shí)程序設(shè)計(jì)基礎(chǔ)知識(shí),通過學(xué)習(xí)應(yīng)該掌握:,通過學(xué)習(xí)應(yīng)該掌握:m文件的編寫方法m文件的調(diào)試方法小小 結(jié)結(jié)41上機(jī)指導(dǎo)lm文件的調(diào)試文件的調(diào)試42task(1)l使用使用m文件編輯函數(shù)文件。文件編輯函數(shù)文件。43task(2)l求求1!+2!+3!+ +5!的值!的值clearsum=0;for i=1:5 pdr=1; for k=1:i pdr=pdr*k; end sum=
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 22371-2024傳真機(jī)、多功能復(fù)合型傳真機(jī)環(huán)境保護(hù)要求
- 2025年度教育儲(chǔ)值卡銷售與教育資源整合合同3篇
- 二零二五版環(huán)保項(xiàng)目環(huán)保宣傳教育分包合同3篇
- 二零二五年度果園租賃附帶果樹修剪與施肥服務(wù)合同3篇
- 二零二五年度賓館能源審計(jì)服務(wù)合同范本3篇
- 二零二五版危險(xiǎn)化學(xué)品運(yùn)輸司機(jī)安全責(zé)任合同3篇
- 2024年速凍粘玉米購銷合同的支付方式
- 2024鮮魚養(yǎng)殖與市場風(fēng)險(xiǎn)防控合作協(xié)議3篇
- 二零二五年度駕校場地租賃與智能語音教學(xué)合同3篇
- 二零二五年度酒店租賃經(jīng)營聯(lián)合運(yùn)營合同范本3篇
- 2024-2025學(xué)年八年級(jí)上學(xué)期1月期末物理試題(含答案)
- 2025年國新國際投資有限公司招聘筆試參考題庫含答案解析
- 制造車間用洗地機(jī)安全操作規(guī)程
- 2025河南省建筑安全員-A證考試題庫及答案
- 商場電氣設(shè)備維護(hù)勞務(wù)合同
- 油氣田智能優(yōu)化設(shè)計(jì)-洞察分析
- 陜西2020-2024年中考英語五年真題匯編學(xué)生版-專題09 閱讀七選五
- 磚混結(jié)構(gòu)基礎(chǔ)加固技術(shù)方案
- 助產(chǎn)專業(yè)的職業(yè)生涯規(guī)劃
- 新《國有企業(yè)管理人員處分條例》知識(shí)競賽考試題庫500題(含答案)
- 骨質(zhì)疏松護(hù)理
評(píng)論
0/150
提交評(píng)論