資源描述:
《MATLAB 程序設(shè)計(jì)基礎(chǔ)知識.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、5.MATLAB程序設(shè)計(jì)MATLAB語言簡潔高效,被稱為第四代編程語言。一、M文件包含MATLAB代碼的文件稱為M文件,擴(kuò)展名為.m。M文件的形式M文件有兩種形式:獨(dú)立的M文件—稱命令文件(ScriptFile)可調(diào)用M文件—稱函數(shù)文件(FunctionFile)1.命令文件命令文件是一串指令的集合,沒有輸入輸出參數(shù)。與在命令窗口逐行執(zhí)行文件中的所有指令等價(jià)?!纠坷L制“花瓣”圖案%一個(gè)用來繪制花瓣(flowerpetal)圖案的命令文件theta=-pi:0.01:pi;rho(1,:)=2*sin(5*
2、theta).^2;rho(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,將看到下面的圖案幾點(diǎn)說明若用戶把petal.m存放在d:mywork中,那么在運(yùn)行前,應(yīng)在指令窗中運(yùn)行cdd:mywork或?qū)⑵浼尤胨阉髀窂絧etal運(yùn)行后存放在內(nèi)存中的變量,可以用who
3、s看到2.函數(shù)文件如果M文件的第一行包含function,此文件就是函數(shù)文件。函數(shù)文件區(qū)別于命令文件之處是:命令文件中的變量在執(zhí)行完后保存在內(nèi)存中函數(shù)文件中的變量在執(zhí)行完后將被清除函數(shù)文件有輸入輸出參數(shù),命令文件沒有【例】計(jì)算向量元素的平均值functiony=average(x)%本函數(shù)計(jì)算向量元素的平均值y=sum(x)/length(x);%計(jì)算過程幾點(diǎn)說明第一行執(zhí)行指令的作用:指明該文件是函數(shù)文件;定義函數(shù)名、輸入?yún)?shù)和輸出參數(shù)。M文件的文件名必須是<函數(shù)名>.m在M文件前的幾行注釋可供help命令
4、查詢。二、數(shù)據(jù)結(jié)構(gòu)【例】字符變量的輸入和檢查a='thisisastring'isstr(a)ans=1其他可能的取值還有:char、double、sparse……三、程序結(jié)構(gòu)MATLAB有順序、循環(huán)和分支3種基本程序結(jié)構(gòu)。循環(huán)由while和for語句實(shí)現(xiàn),分支由if和switch語句實(shí)現(xiàn)。語法為:fori=表達(dá)式(表達(dá)式為一個(gè)向量){可執(zhí)行語句}end【例】:利用for循環(huán)求1+3+???+9的值sum=0;fori=1:2:9sum=sum+i;endsum=251.for-end循環(huán)for循環(huán)的嵌套【
5、例】:利用for循環(huán)求1!+2!+3!+???+5!的值sum=0;fori=1:5pdr=1;fork=1:ipdr=pdr*k;endsum=sum+pdr;endsum=1532.while-end循環(huán)while循環(huán)將循環(huán)體中的語句循環(huán)執(zhí)行不定次數(shù)。語法為:while表達(dá)式{循環(huán)體語句}end表達(dá)式一般是由邏輯運(yùn)算和關(guān)系運(yùn)算以及一般運(yùn)算組成的,以判斷循環(huán)的進(jìn)行和停止;只要表達(dá)式的值非0,繼續(xù)循環(huán);直到表達(dá)式值為0,循環(huán)停止?!纠浚河脀hile循環(huán)求1~100間整數(shù)的和sum=0;i=1;whilei
6、<=100sum=sum+i;i=i+1;endsumsum=50503.分支結(jié)構(gòu)if—else—end語句有3種形式:?if表達(dá)式執(zhí)行語句end?if表達(dá)式———是語句1else————否語句2end?if表達(dá)式1語句1elseif表達(dá)式2語句2elseif表達(dá)式3語句3···else語句nend多分支結(jié)構(gòu)【例】:編寫函數(shù),計(jì)算函數(shù)值x(x<1)2x-1(1=10)ifx>=10y=3*x-11;elseifx>1y=2*x-1;elsey=x;endswitch語句switc
7、h表達(dá)式case表達(dá)式1語句1case表達(dá)式2語句2···case表達(dá)式n語句notherwise語句end【例】:switch函數(shù)的例子yunsuan='乘';switchyunsuancase{'加','減'}disp('加減運(yùn)算')case{'乘','除'}disp('乘除運(yùn)算')otherwisedisp('其他運(yùn)算')end四、程序流控制input——提示用戶從鍵盤輸入數(shù)值、字符串、表達(dá)式。【例】:>>n=input('Howmanyapples=')Howmanyapples=5n=5pause
8、——暫停,等待用戶響應(yīng),并在繼續(xù)執(zhí)行前按任一個(gè)鍵。pause(n)--暫停n秒。break——中斷for,while循環(huán)語句的執(zhí)行,在嵌套循環(huán)結(jié)構(gòu)中,break從最里層循環(huán)退出。【例】:求[100,200]之間第一個(gè)能被21整除的整數(shù)。forn=100:200ifrem(n,21)~=0continueendbreakendn五、函數(shù)調(diào)用在MATLAB中,調(diào)用函數(shù)的常用形式是:[輸出參數(shù)1,輸出參數(shù)2,...]=