《《MATLAB程序設(shè)計》PPT課件》由會員分享,可在線閱讀,更多相關(guān)《《MATLAB程序設(shè)計》PPT課件(25頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、1,第3章 MATLAB程序設(shè)計,葉春生,材料學(xué)院 Tel:027-87557041,2,本章目標(biāo),掌握MATLAB的幾種基本控制轉(zhuǎn)移語句 學(xué)會使用M文件進(jìn)行編程 具備對復(fù)雜問題的編程求解能力,3,主要內(nèi)容,3.1 程序設(shè)計概述 3.2 MATLAB程序結(jié)構(gòu) 3.3 M文件,4,3.1 程序設(shè)計概述,MATLAB是第四代編程語言 程序簡潔 可讀性很強(qiáng) 調(diào)試容易 編程效率高 易移植和維護(hù) 通過編程可求解復(fù)雜性更高或特殊的問題,5,3.2 MATLAB程序結(jié)構(gòu),按照程序設(shè)計的觀點, 任何算法功能都可以通過由程序模塊組成的三種基本程序結(jié)構(gòu)的組合來實現(xiàn): 順序結(jié)構(gòu):程序按程序語句或模塊在執(zhí)行流中的順序
2、逐個執(zhí)行。 選擇結(jié)構(gòu):程序按設(shè)定的條件實現(xiàn)程序執(zhí)行流的多路分支。 循環(huán)結(jié)構(gòu):程序按給定的條件重復(fù)地執(zhí)行指定的程序段或模塊。,6,3.2.1順序結(jié)構(gòu),,,程序模塊1,程序模塊2,,,,,,,MATLAB中實現(xiàn)順序結(jié)構(gòu)的方法非常簡單: 只需將程序語句順序排列即可,7,3.2.2 選擇結(jié)構(gòu),在MATLAB中,選擇結(jié)構(gòu)由兩種語句結(jié)構(gòu)實現(xiàn): if語句 switch語句,,條件,程序模塊1,,,,,,,,成立,不成立,程序模塊2,,,,,,,3.2.2 選擇結(jié)構(gòu),8,if語句,if表達(dá)式 程序模塊1 else 程序模塊2 end,9,if語句的兩種變形,(1) 單分支if語句:只有一個分支的選
3、擇結(jié)構(gòu) if表達(dá)式 程序模塊 end (2) 多分支if語句:超過2個的選擇 if表達(dá)式1 程序模塊1 elseif 表達(dá)式2 程序模塊2 elseif 表達(dá)式n 程序模塊n else 程序模塊n+1 end,10,例:將百分制的學(xué)生成績轉(zhuǎn)換為五級制的成績輸出,clear n=input(輸入n= ); if n=90 r=A elseif n=80 r=B elseif n=70 r=C elseif n=60 r=D else r=E end,運(yùn)行結(jié)果: 輸入n= 87 r = B,11,2.switch語句,switch 表達(dá)式 c
4、ase 數(shù)值1 程序模塊1; case 數(shù)值2 程序模塊2; otherwise 程序模塊n end,12,例:將百分制的學(xué)生成績轉(zhuǎn)換為五級制的成績輸出使用switch語句,clear n=input(輸入n= ); switch fix(n/10) case 10,9 r=A case 8 r=B case 7 r=C case 6 r=D otherwise r=E end,運(yùn)行結(jié)果: 輸入n= 65 r = D,13,3.2.3 循環(huán)結(jié)構(gòu),在MATLAB中,循環(huán)結(jié)構(gòu)可以由兩種語句結(jié)構(gòu)實現(xiàn): for語句循環(huán)結(jié)構(gòu) while
5、語句循環(huán)結(jié)構(gòu),,,,程序模塊,,,,,,,,,,不成立,成立,,條件,3.2.2 選擇結(jié)構(gòu),14,1for語句循環(huán)結(jié)構(gòu),for循環(huán)變量起始值:步長:終止值 循環(huán)體 end,15,例:使用for結(jié)構(gòu)計算1+2+3++100,clear sum=0; for i=1:100 sum=sum+i; end sum,運(yùn)行結(jié)果: sum = 5050,16,2while語句循環(huán)結(jié)構(gòu),while表達(dá)式 循環(huán)體 end,17,例:使用while結(jié)構(gòu)計算1+2+3++100,clear sum=0; i=0; while i<100 i=i+1; sum=sum+i; end sum,運(yùn)行結(jié)果: su
6、m = 5050,18,3.3 M文件,MATLAB工作模式 命令行方式。 程序文件驅(qū)動模式 MATLAB文本編輯器,19,3.3.1命令文件,又稱為腳本文件,是一串指令的集合。 用戶只需鍵入該命令文件的文件名,系統(tǒng)就會自動逐行執(zhí)行該文件中的各條語句。 適用于小規(guī)模運(yùn)算。,20,3.3.2函數(shù)文件,函數(shù)文件基本格式: function 輸出形參列表=函數(shù)名(輸入形參列表) 注釋說明語句段 程序語句段,21,擴(kuò)展閱讀,3.4其他流程控制語句 1. break語句 2. continue語句 3. return語句 4. try語句 5. echo命令 6. input命令 7. keyboa
7、rd命令 8. pause命令 3.5函數(shù)與變量參數(shù)傳遞 3.5.1子函數(shù)與私有函數(shù) 3.5.2變量作用域 3.5.3函數(shù)的參數(shù)傳遞,22,上機(jī)指導(dǎo),3.6 M文件的調(diào)試 3.7 M文件性能分析與優(yōu)化 3.7.1 M文件性能分析 3.7.2 M文件性能優(yōu)化,23,應(yīng)用舉例,求1!+2!+3!+ +5!的值 clear sum=0; for i=1:5 pdr=1; for k=1:i pdr=pdr*k; end sum=sum+pdr; end sum,運(yùn)行結(jié)果: sum = 153,24,應(yīng)用舉例,雞兔同籠問題:雞和兔子關(guān)在一個籠子里,已知共有頭36個,腳100個,求籠內(nèi)關(guān)了多少只兔子和多少只雞? clear chicken=1; while 1 if rem(100-chicken*2, 4)==0 end chicken rabbit=(100-2*chicken)/4 運(yùn)行結(jié)果: chicken = 22 rabbit = 14,25,應(yīng)用舉例,