資源描述:
《《MATLAB程序設(shè)計(jì)》PPT課件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、5.MATLAB程序設(shè)計(jì)MATLAB語言簡(jiǎn)潔高效,被稱為第四代編程語言。1一、M文件包含MATLAB代碼的文件稱為M文件,擴(kuò)展名為.m。2M文件的形式M文件有兩種形式:獨(dú)立的M文件—稱命令文件(ScriptFile)可調(diào)用M文件—稱函數(shù)文件(FunctionFile)31.命令文件命令文件是一串指令的集合,沒有輸入輸出參數(shù)。與在命令窗口逐行執(zhí)行文件中的所有指令等價(jià)。4【例】繪制“花瓣”圖案%一個(gè)用來繪制花瓣(flowerpetal)圖案的命令文件theta=-pi:0.01:pi;rho(1,:)=2*sin(5*theta).^2;rho(2,
2、:)=cos(10*theta).^3;rho(3,:)=sin(theta).^2;rho(4,:)=5*cos(3.5*theta).^3;fori=1:4polar(theta,rho(i,:),'r')pauseend將該文本文件命名為petal.m,并在指令窗口運(yùn)行petal,將看到下面的圖案56幾點(diǎn)說明若用戶把petal.m存放在d:mywork中,那么在運(yùn)行前,應(yīng)在指令窗中運(yùn)行cdd:mywork或?qū)⑵浼尤胨阉髀窂絧etal運(yùn)行后存放在內(nèi)存中的變量,可以用whos看到72.函數(shù)文件如果M文件的第一行包含function,此文件就
3、是函數(shù)文件。函數(shù)文件區(qū)別于命令文件之處是:命令文件中的變量在執(zhí)行完后保存在內(nèi)存中函數(shù)文件中的變量在執(zhí)行完后將被清除函數(shù)文件有輸入輸出參數(shù),命令文件沒有8【例】計(jì)算向量元素的平均值functiony=average(x)%本函數(shù)計(jì)算向量元素的平均值y=sum(x)/length(x);%計(jì)算過程9幾點(diǎn)說明第一行執(zhí)行指令的作用:指明該文件是函數(shù)文件;定義函數(shù)名、輸入?yún)?shù)和輸出參數(shù)。M文件的文件名必須是<函數(shù)名>.m在M文件前的幾行注釋可供help命令查詢。10二、程序結(jié)構(gòu)MATLAB有順序、循環(huán)和分支3種基本程序結(jié)構(gòu)。循環(huán)由while和for語句實(shí)現(xiàn)
4、,分支由if和switch語句實(shí)現(xiàn)。11語法為:fori=表達(dá)式(表達(dá)式為一個(gè)向量){可執(zhí)行語句}end【例】:利用for循環(huán)求1+3+???+9的值s=0;fori=1:2:9s=s+i;ends=251.for-end循環(huán)12for循環(huán)的嵌套【例】:利用for循環(huán)求1!+2!+3!+???+5!的值s=0;fori=1:5pdr=1;fork=1:ipdr=pdr*k;ends=s+pdr;ends=153132.while-end循環(huán)while循環(huán)將循環(huán)體中的語句循環(huán)執(zhí)行不定次數(shù)。語法為:while表達(dá)式{循環(huán)體語句}end表達(dá)式一般是由邏
5、輯運(yùn)算和關(guān)系運(yùn)算以及一般運(yùn)算組成的,以判斷循環(huán)的進(jìn)行和停止;只要表達(dá)式的值非0,繼續(xù)循環(huán);直到表達(dá)式值為0,循環(huán)停止。14【例】:用while循環(huán)求1~100間整數(shù)的和s=0;i=1;whilei<=100s=s+i;i=i+1;endss=5050153.分支結(jié)構(gòu)if—else—end語句有3種形式:?if表達(dá)式執(zhí)行語句end?if表達(dá)式———是語句1else————否語句2end16?if表達(dá)式1語句1elseif表達(dá)式2語句2elseif表達(dá)式3語句3···else語句nend多分支結(jié)構(gòu)17【例】:編寫函數(shù),計(jì)算函數(shù)值x(x<=1)2x-1
6、(1=10)ifx>=10y=3*x-11;elseifx>1y=2*x-1;elsey=x;end18四、程序流控制input——提示用戶從鍵盤輸入數(shù)值、字符串、表達(dá)式?!纠浚?>n=input('Howmanyapples=')Howmanyapples=5n=5pause——暫停,等待用戶響應(yīng),并在繼續(xù)執(zhí)行前按任一個(gè)鍵。pause(n)--暫停n秒。break——中斷for,while循環(huán)語句的執(zhí)行,在嵌套循環(huán)結(jié)構(gòu)中,break從最里層循環(huán)退出。19【例】:求[100,200]之間第一個(gè)能被21整除的整數(shù)。fo
7、rn=100:200ifrem(n,21)~=0continueendbreakendn20五、函數(shù)調(diào)用在MATLAB中,調(diào)用函數(shù)的常用形式是:[輸出參數(shù)1,輸出參數(shù)2,...]=函數(shù)名(輸入?yún)?shù)1,輸入?yún)?shù)2,...)注意:函數(shù)調(diào)用時(shí)各參數(shù)出現(xiàn)的順序,應(yīng)該與函數(shù)定義時(shí)的順序一樣,否則出錯(cuò)。21函數(shù)調(diào)用可以嵌套,一個(gè)函數(shù)可以調(diào)用別的函數(shù),甚至它自己,即遞歸調(diào)用?!纠浚河眠f歸調(diào)用形式計(jì)算n的階乘functionf=factor(n)%factor.m計(jì)算n的階乘ifn==1f=1;return;elsef=n*factor(n-1);endfac
8、tor(5)ans=12022練習(xí)11.利用for循環(huán)求s=1–1/2+1/3-1/4+......+1/99-1/100的值。2.生成