資源描述:
《《MATLAB程序設計》PPT課件》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、第3章MATLAB程序設計葉春生,材料學院csye@mail.hust.edu.cnTel:027-875570411本章目標掌握MATLAB的幾種基本控制轉移語句學會使用M文件進行編程具備對復雜問題的編程求解能力2主要內(nèi)容3.1程序設計概述3.2MATLAB程序結構3.3M文件33.1程序設計概述MATLAB是第四代編程語言程序簡潔可讀性很強調(diào)試容易編程效率高易移植和維護通過編程可求解復雜性更高或特殊的問題43.2MATLAB程序結構按照程序設計的觀點,任何算法功能都可以通過由程序模塊組成的三種基本程序結構的組合來實現(xiàn):順序結構:程序按程序語
2、句或模塊在執(zhí)行流中的順序逐個執(zhí)行。選擇結構:程序按設定的條件實現(xiàn)程序執(zhí)行流的多路分支。循環(huán)結構:程序按給定的條件重復地執(zhí)行指定的程序段或模塊。53.2.1順序結構程序模塊1程序模塊2MATLAB中實現(xiàn)順序結構的方法非常簡單:只需將程序語句順序排列即可63.2.2選擇結構在MATLAB中,選擇結構由兩種語句結構實現(xiàn):if語句switch語句條件程序模塊1成立不成立程序模塊23.2.2選擇結構7if語句if表達式程序模塊1else程序模塊2end8if語句的兩種變形(1)單分支if語句:只有一個分支的選擇結構if表達式程序模塊end(2)多分支if
3、語句:超過2個的選擇if表達式1程序模塊1elseif表達式2程序模塊2…elseif表達式n程序模塊nelse程序模塊n+1end9例:將百分制的學生成績轉換為五級制的成績輸出clearn=input('輸入n=');ifn>=90r='A'elseifn>=80r='B'elseifn>=70r='C'elseifn>=60r='D'elser='E'end運行結果:輸入n=87r=B102.switch語句switch表達式case數(shù)值1程序模塊1;case數(shù)值2程序模塊2;……otherwise程序模塊n……end11例:將百分制的學生
4、成績轉換為五級制的成績輸出-使用switch語句clearn=input('輸入n=');switchfix(n/10)case{10,9}r='A'case8r='B'case7r='C'case6r='D'otherwiser='E'end運行結果:輸入n=65r=D123.2.3循環(huán)結構在MATLAB中,循環(huán)結構可以由兩種語句結構實現(xiàn):for語句循環(huán)結構while語句循環(huán)結構程序模塊不成立成立條件3.2.2選擇結構131.for語句循環(huán)結構for循環(huán)變量=起始值:步長:終止值循環(huán)體end14例:使用for結構計算1+2+3+…+100cl
5、earsum=0;fori=1:100sum=sum+i;endsum運行結果:sum=5050152.while語句循環(huán)結構while表達式循環(huán)體end16例:使用while結構計算1+2+3+…+100clearsum=0;i=0;whilei<100i=i+1;sum=sum+i;endsum運行結果:sum=5050173.3M文件MATLAB工作模式命令行方式。程序文件驅動模式MATLAB文本編輯器183.3.1命令文件又稱為腳本文件,是一串指令的集合。用戶只需鍵入該命令文件的文件名,系統(tǒng)就會自動逐行執(zhí)行該文件中的各條語句。適用于小規(guī)
6、模運算。193.3.2函數(shù)文件函數(shù)文件基本格式:function[輸出形參列表]=函數(shù)名(輸入形參列表)注釋說明語句段程序語句段20擴展閱讀3.4其他流程控制語句1.break語句2.continue語句3.return語句4.try語句5.echo命令6.input命令7.keyboard命令8.pause命令3.5函數(shù)與變量參數(shù)傳遞3.5.1子函數(shù)與私有函數(shù)3.5.2變量作用域3.5.3函數(shù)的參數(shù)傳遞21上機指導3.6M文件的調(diào)試3.7M文件性能分析與優(yōu)化3.7.1M文件性能分析3.7.2M文件性能優(yōu)化22應用舉例求1!+2!+3!+…+5
7、!的值clearsum=0;fori=1:5pdr=1;fork=1:ipdr=pdr*k;endsum=sum+pdr;endsum運行結果:sum=15323應用舉例雞兔同籠問題:雞和兔子關在一個籠子里,已知共有頭36個,腳100個,求籠內(nèi)關了多少只兔子和多少只雞?clearchicken=1;while1ifrem(100-chicken*2,4)==0&(chicken+(100-chicken*2)/4)==36break;endchicken=chicken+1;endchickenrabbit=(100-2*chicken)/4運
8、行結果:chicken=22rabbit=1424應用舉例25