資源描述:
《數(shù)學(xué)建模 MATLAB程序設(shè)計(jì)專題.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在PPT專區(qū)-天天文庫。
1、MATLAB程序設(shè)計(jì)專題M文件有兩種形式M腳本文件M函數(shù)文件7/31/20211MATLAB_程序設(shè)計(jì)M腳本文件的特點(diǎn)1、腳本文件中的命令格式和前后位置與在命令窗口中輸入相同。2、運(yùn)行腳本文件時(shí),只是按順序從文件中讀取一條條命令,送到MATLAB命令窗口中去執(zhí)行。7/31/20212MATLAB_程序設(shè)計(jì)M腳本文件的特點(diǎn)3、與在命令窗口中直接運(yùn)行命令一樣,腳本文件運(yùn)行產(chǎn)生的變量都是駐留在MATLAB的工作空間(workspace)中,可以很方便地查看變量;腳本文件的命令也可以訪問工作空間的所有數(shù)據(jù),因此要注意
2、避免變量的覆蓋而造成程序出錯(cuò)。7/31/20213MATLAB_程序設(shè)計(jì)M函數(shù)文件的基本格式函數(shù)聲明行function[輸出變量列表]=函數(shù)名(輸入變量列表)H1行(用%開頭的注釋行)在線幫助文本(用%開頭)編寫和修改記錄(用%開頭)函數(shù)體7/31/20214MATLAB_程序設(shè)計(jì)創(chuàng)建M函數(shù)文件并調(diào)用的步驟編寫函數(shù)代碼將函數(shù)文件保存為“函數(shù)名.m”。在命令窗口輸入命令調(diào)用程序7/31/20215MATLAB_程序設(shè)計(jì)M函數(shù)文件的特點(diǎn)1、第一行總是以“function”引導(dǎo)的函數(shù)聲明行;2、函數(shù)文件在運(yùn)行過程中
3、產(chǎn)生的變量都存放在函數(shù)本身的工作空間;3、當(dāng)文件執(zhí)行完最后一條命令或遇到“return”命令時(shí),就結(jié)束函數(shù)文件的運(yùn)行,同時(shí)函數(shù)工作空間的變量就被清除;7/31/20216MATLAB_程序設(shè)計(jì)M函數(shù)文件的特點(diǎn)4、函數(shù)的工作空間隨具體的M函數(shù)文件調(diào)用而產(chǎn)生,隨調(diào)用結(jié)束而刪除,是獨(dú)立的、臨時(shí)的,在MATLAB運(yùn)行過程中可以產(chǎn)生任意多個(gè)臨時(shí)的函數(shù)空間。5、文件名與函數(shù)名相同。7/31/20217MATLAB_程序設(shè)計(jì)程序流程控制三種控制結(jié)構(gòu)順序循環(huán)分支7/31/20218MATLAB_程序設(shè)計(jì)循環(huán)結(jié)構(gòu)1、for..
4、.end循環(huán)結(jié)構(gòu)for循環(huán)變量=array循環(huán)體end說明:循環(huán)體執(zhí)行的次數(shù)就是array的列數(shù)。循環(huán)變量依次取array的各列,每取一次循環(huán)體執(zhí)行一次。7/31/20219MATLAB_程序設(shè)計(jì)循環(huán)結(jié)構(gòu)2、while...end循環(huán)結(jié)構(gòu)while表達(dá)式循環(huán)體end說明:只要表達(dá)式為邏輯真,就執(zhí)行循環(huán)體;一旦表達(dá)式為假,就結(jié)束循環(huán)。7/31/202110MATLAB_程序設(shè)計(jì)分支結(jié)構(gòu)1、if…else…end條件轉(zhuǎn)移結(jié)構(gòu)if條件式1語句段1elseif條件式2語句段2...else語句段n+1end7/31/
5、202111MATLAB_程序設(shè)計(jì)if分支結(jié)構(gòu)例子???????í죣--<£<£+=)()6030()30(151050)3015(50)150(101540其他NaNxxxxxy7/31/202112MATLAB_程序設(shè)計(jì)functiony=Ex01(x)%Ex01根據(jù)x值求yifx<0y=NaNelseifx<15y=40/15*x+10elseifx<30y=50elseifx<=60y=50-10/15*(x-30)elsey=NaNend7/31/202113MATLAB_程序設(shè)計(jì)學(xué)生成績判定(
6、ifelsef.m)functionifelsef()%ifelsef使用if結(jié)構(gòu)的成績評定grade=input('inputthegrade:')if(grade>=0)&(grade<60)rank='不及格';elseif(grade>=60)&(grade<70)rank='及格';elseif(grade>=70)&(grade<85)rank='良好';elseif(grade>=85)&(grade<=100)rank='優(yōu)秀';elserank='成績錯(cuò)誤!';endrank7/31/202
7、114MATLAB_程序設(shè)計(jì)分支結(jié)構(gòu)2、switch…case開關(guān)結(jié)構(gòu)switch開關(guān)表達(dá)式case表達(dá)式1語句段1case表達(dá)式2語句段2...otherwise語句段nend7/31/202115MATLAB_程序設(shè)計(jì)分支結(jié)構(gòu)2、switch…case開關(guān)結(jié)構(gòu)說明:(1)開關(guān)表達(dá)式只能是標(biāo)量或字符串。(2)case后面的表達(dá)式可以是標(biāo)量、字符串或元胞數(shù)組,如果是元胞數(shù)組則將開關(guān)表達(dá)式與元胞數(shù)組的所有元素進(jìn)行比較,只要某個(gè)元素與開關(guān)表達(dá)式相等,就執(zhí)行其后的語句段。7/31/202116MATLAB_程序設(shè)計(jì)
8、switch分支結(jié)構(gòu)例子季節(jié)判斷(swtichf.m)7/31/202117MATLAB_程序設(shè)計(jì)分支結(jié)構(gòu)3、try...catch...end試探結(jié)構(gòu)try語句段1catch語句段2end7/31/202118MATLAB_程序設(shè)計(jì)分支結(jié)構(gòu)3、try...catch...end試探結(jié)構(gòu)說明:首先試探性地執(zhí)行語句段1,如果在此段語句執(zhí)行過程中出現(xiàn)錯(cuò)誤,則將錯(cuò)誤信息賦給保留的lasterr變量,并放棄