第03講-MATLAB的控制語句和繪圖功能_第1頁
第03講-MATLAB的控制語句和繪圖功能_第2頁
第03講-MATLAB的控制語句和繪圖功能_第3頁
第03講-MATLAB的控制語句和繪圖功能_第4頁
第03講-MATLAB的控制語句和繪圖功能_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1.3MATLAB的控制語句

MATLAB是一個(gè)功能極強(qiáng)的高度集成化程序設(shè)計(jì)語言,它具備一般程序設(shè)計(jì)語言的基本語句結(jié)構(gòu),并且它的功能更強(qiáng),由它編寫出來的程序結(jié)構(gòu)簡(jiǎn)單,可讀性強(qiáng)。和其它高級(jí)語言一樣,MATLAB也提供了條件轉(zhuǎn)移語句、循環(huán)語句等一些常用的控制語句,從而使得MATLAB語言的編程顯得十分靈活。11.3.1循環(huán)語句

在實(shí)際計(jì)算中,經(jīng)常會(huì)遇到許多有規(guī)律的重復(fù)計(jì)算,此時(shí)就要根據(jù)循環(huán)條件對(duì)某些語句重復(fù)執(zhí)行。MATLAB中可以使用兩種循環(huán)語句:for語句和while語句2for循環(huán)語句for語句的基本格式為:

for循環(huán)變量=表達(dá)式1:表達(dá)式3:表達(dá)式2

循環(huán)語句組

end其中,循環(huán)變量可以取做任何MATLAB變量。首先將循環(huán)變量的初值賦成表達(dá)式1的值,判斷若循環(huán)變量的值介于表達(dá)式1和表達(dá)式2的值之間,則執(zhí)行循環(huán)體中的語句,否則結(jié)束循環(huán)語句的執(zhí)行。執(zhí)行完一次循環(huán)體中的語句之后,則會(huì)將循環(huán)變量自增一個(gè)表達(dá)式3的值,然后再判斷循環(huán)變量是否介于表達(dá)式1和表達(dá)式2之間,如果滿足就再執(zhí)行循環(huán)體語句直至不滿足為止。這時(shí)將結(jié)束循環(huán)語句的執(zhí)行,而繼續(xù)執(zhí)行后面的語句。如果表達(dá)式3的值為1,則可省略表達(dá)式3。3例1-3求的值。解MABLAB程序如下:%ex1_3.mmysum=0;fori=1:100

mysum=mysum+i;endmysum運(yùn)行結(jié)果顯示:mysun=50504例:利用for循環(huán)求1!+2!+3!+

+5!的值解MABLAB程序如下:sum=0;fori=1:5pdr=1;fork=1:i

pdr=pdr*k;end

sum=sum+pdr;endsum運(yùn)行結(jié)果顯示:sum=1535

while循環(huán)語句將循環(huán)體中的語句循環(huán)執(zhí)行不定次數(shù)。其基本格式為:

while表達(dá)式循環(huán)體語句

end其中,表達(dá)式一般是由邏輯運(yùn)算和關(guān)系運(yùn)算組成的,以判斷循環(huán)的進(jìn)行和停止。若表達(dá)式的值非0(邏輯為真),則執(zhí)行循環(huán)體語句;執(zhí)行后再判斷表達(dá)式是否仍然成立,若不成立,則跳出循環(huán),向下繼續(xù)執(zhí)行。While循環(huán)語句6例:用while循環(huán)語句求1~100間整數(shù)的和。

sum=0;i=1;whilei<=100sum=sum+i;i=i+1;endsum

運(yùn)行結(jié)果顯示:

sum=50507

MATLAB提供的循環(huán)語句for和while是允許多級(jí)嵌套的,而且它們之間也允許相互嵌套,這和C語言等高級(jí)程序設(shè)計(jì)語言是一致的。81.3.2程序流控制語句

在程序設(shè)計(jì)語言中,經(jīng)常會(huì)遇到提前終止循環(huán)、跳出子程序、顯示執(zhí)行過程等,此時(shí)就要用到以下控制程序流命令。1.echo命令:顯示其后執(zhí)行的M文件的指令。一般來說當(dāng)一個(gè)M文件運(yùn)行時(shí),文件中的命令不在屏幕上顯示出來;而利用echo命令可以使M文件在運(yùn)行時(shí)把其中的命令顯示在工作空間中,這對(duì)于調(diào)試、演示等很有用。9程序流控制語句

2.break命令:中斷for,while循環(huán)語句的執(zhí)行、強(qiáng)行跳出,在嵌套循環(huán)結(jié)構(gòu)中,當(dāng)滿足某種條件時(shí),break從最里層循環(huán)退出??煞乐顾姥h(huán)。(跳一層)

3.continue命令:中斷for,while循環(huán)語句的執(zhí)行,進(jìn)行下一次循環(huán)判斷。(跳一次)4.pause命令:暫停,等待用戶響應(yīng)??闪頜文件執(zhí)行暫停,并在按任一鍵后繼續(xù)執(zhí)行。5.return命令:返回調(diào)用它的函數(shù)處繼續(xù)運(yùn)行。101.3.3條件轉(zhuǎn)移語句

MATLAB提供的條件轉(zhuǎn)移語句是由if引導(dǎo)的,其基本格式分為以下幾種:

1、if條件式條件塊語句組

end其中,

條件式一般是由邏輯運(yùn)算和關(guān)系運(yùn)算組成的。當(dāng)給出的條件式成立時(shí),則執(zhí)行該條件塊結(jié)構(gòu)中的語句內(nèi)容,執(zhí)行完之后繼續(xù)向下執(zhí)行,若條件不成立,則跳出條件塊而直接向下執(zhí)行。11例1-4:求滿足的最小m值。解:MATLAB程序如下:%ex1_4.mmysum=0;form=1:1000

mysum=mysum+m;ifmysum>1000break;endendm運(yùn)行結(jié)果顯示:m=45122、if表達(dá)式語句1else

語句2end其中,表達(dá)式一般是由邏輯運(yùn)算和關(guān)系運(yùn)算式組成的。133、多分支結(jié)構(gòu)

if表達(dá)式1

語句1elseif表達(dá)式2

語句2elseif表達(dá)式3

語句3

···

else

語句nend14例:寫賦值程序:

fori=1:5

x=input('pleaseinputx=');ifx>=1y=10

elseifx>-1&x<1y=0elsey=-10endend154、switch語句(開關(guān)結(jié)構(gòu))其語句格式為:

switch開關(guān)表達(dá)式

case表達(dá)式1

語句組1case表達(dá)式2

語句組2……case表達(dá)式m

語句組motherwise

語句組m+1end當(dāng)開關(guān)表達(dá)式的值等于表達(dá)式1時(shí),執(zhí)行語句組1,執(zhí)行完后跳出,…,否則執(zhí)行語句組m+1。在執(zhí)行過程中,只有一個(gè)case命令被執(zhí)行。當(dāng)執(zhí)行完命令后,程序就跳出分支結(jié)構(gòu),執(zhí)行end后面的命令。16例:t=-pi:0.1:pi;trigname=input('Inputtrigfunctionsname:')switchtrignamecase'sin'plot(t,sin(t))case'cos'plot(t,cos(t))otherwisebreak%終止,跳出switch語句end注意,這里使用了break命令,其作用就是中止并跳出上一級(jí)的過程。171.4MATLAB的繪圖功能

MATLAB被控制界廣泛接受的另一個(gè)重要原因是,它提供了十分方便的一系列繪圖命令。例如,線性坐標(biāo)、對(duì)數(shù)坐標(biāo)、半對(duì)數(shù)坐標(biāo)及極坐標(biāo)等命令,它還允許用戶同時(shí)打開若干圖形窗口,對(duì)圖形標(biāo)注文字說明等,它使得圖形繪制和處理等復(fù)雜工作變得簡(jiǎn)單得令人難以置信。181.4.1

二維圖形1.基本形式

MATLAB最基本的繪圖函數(shù)為plot()。如果y是一個(gè)n維向量,那么plot(y)繪制一個(gè)y元素和y元素排列序號(hào)1,2,…,n之間關(guān)系的線性坐標(biāo)圖。例如>>y=[00.480.8410.910.60.14];>>plot(y)則顯示如圖1-2所示曲線。19如果x和y是兩個(gè)等長(zhǎng)向量,那么plot(x,y)將繪制一條x和y的之間關(guān)系的線性坐標(biāo)圖。例如>>x=0:0.1:2*pi;y=sin(x);plot(x,y)則顯示如圖1-3所示曲線。

圖1-2圖1-3202.多重線型在同一圖形中可以繪制多重線型,基本命令格式為

plot(x1,y1,x2,y2,…,xn,yn)

以上命令可將x1對(duì)y1,x2對(duì)y2,…,xn對(duì)yn的圖形繪制在一個(gè)圖形中,而且分別采用不同的顏色或線型。例如以下命令可顯示如圖1-4所示曲線。21圖1-4>>x=0:0.1:2*pi;plot(x,sin(x),x,cos(x))223.圖形修飾及文本標(biāo)注

MATLAB中對(duì)于同一圖形中的多重線,不僅可分別定義其線型,而且可分別選擇其顏色,帶有選項(xiàng)的曲線繪制命令的調(diào)用格式為plot(x1,y1,選項(xiàng),x2,y2,選項(xiàng)2,…,xn,yn,選項(xiàng)n)其中x1,x2,…,xn為x軸變量,y1,y2,…,yn為y軸變量,選項(xiàng)如下表1-6所示。23選項(xiàng)意義選項(xiàng)意義-實(shí)線.用點(diǎn)號(hào)繪制各數(shù)據(jù)點(diǎn)--虛線x叉號(hào)線繪制各數(shù)據(jù)點(diǎn)-.點(diǎn)劃線。圓圈線繪制各數(shù)據(jù)點(diǎn):點(diǎn)線*星號(hào)線繪制各數(shù)據(jù)點(diǎn)y黃色g綠m洋紅色b藍(lán)c青色w白r紅k黑表1-6MATLAB的繪圖命令的各種選項(xiàng)24上表中的線型和顏色選項(xiàng)可以同時(shí)使用,例如>>x=0:0.1:2*pi;>>plot(x,sin(x),'-g',x,cos(x),'-.r')

25繪制完曲線后,MATLAB還允許用戶使用它提供的特殊繪圖函數(shù)來對(duì)屏幕上已有的圖形加注釋、題頭或坐標(biāo)網(wǎng)格。這些函數(shù)為:

title——給圖形加標(biāo)題

xlable——給x軸加標(biāo)注

ylable——給y軸加標(biāo)注

text——在圖形指定位置加標(biāo)注

gtext——將標(biāo)注加到圖形任意位置

gridon(off)——打開、關(guān)閉坐標(biāo)網(wǎng)格線

legend——添加圖例

axis——控制坐標(biāo)軸的刻度26例:t=0:0.1:10;y1=sin(t);y2=cos(t);plot(t,y1,'r',t,y2,'b--');x=[1.7*pi;1.6*pi];y=[-0.3;0.8];s=['sin(t)';'cos(t)'];text(x,y,s);title('正弦和余弦曲線');legend('正弦','余弦')xlabel('時(shí)間t'),ylabel('正弦、余弦')gridaxissquare2728盡管MATLAB可以自動(dòng)根據(jù)要繪制曲線數(shù)據(jù)的范圍選擇合適的坐標(biāo)系,使得曲線能夠盡可能清晰地顯示出來,但是,如果覺得自動(dòng)選擇的坐標(biāo)還不合適時(shí),還可以用手動(dòng)的方式來選擇新的坐標(biāo)系。axis的用法有:

axis([xmin

xmax

ymin

ymax])——用行向量中給出的值設(shè)定坐標(biāo)軸的最小值和最大值。如:axis([-2205])

axison(off)

———顯示和關(guān)閉坐標(biāo)軸的標(biāo)記、標(biāo)志。

axissquare——將坐標(biāo)軸設(shè)置為橫:縱=1:129用gtext()命令可以在圖形中的任意位置加上文本說明,可以用鼠標(biāo)來對(duì)要添加的文本字符串定位。如:在MATLAB的工作空間中鍵入下列命令>>gtext('sin(x)')

那么在圖中,將會(huì)出現(xiàn)一個(gè)十字叉,用鼠標(biāo)拖動(dòng)它到添加文本的位置,單擊鼠標(biāo),gtext()命令中的文本字符串sin(x)就自動(dòng)添加到指定的位置。304.圖形控制

MATLAB允許將一個(gè)圖形窗口分割成n×m部分,對(duì)每一部分可以用不同的坐標(biāo)系單獨(dú)繪制圖形,窗口分割命令的調(diào)用格式為

subplot(n,m,k)其中:n,m分別表示將這個(gè)圖形窗口分割的行列數(shù),k表示繪圖序號(hào),按從左至右,從上至下排列。例如想將窗口分割成4×3個(gè)部分,則右下角的代號(hào)為12,MATLAB最多允許9×9的分割。

31t=0:pi/100:2*pi;y=sin(t);y1=cos(t);y2=sin(t+0.5);subplot(3,1,1);plot(t,y)subplot(3,1,2);plot(t,y1)subplot(3,1,3);plot(t,y2)32另外,MATLAB還提供了清除圖形窗口命令clg、保持當(dāng)前窗口的圖形命令hold、放大和縮小窗口命令zoom等。335.特殊坐標(biāo)圖形除了基本的繪圖命令plot()外,MATLAB還允許繪制極坐標(biāo)曲線、對(duì)數(shù)坐標(biāo)曲線、條形圖和階梯圖等。極坐標(biāo)曲線繪制函數(shù)的調(diào)用格式:polar(theta,rho,選項(xiàng))其中:theta和rho分別為長(zhǎng)度相同的角度向量和幅值向量。選項(xiàng)的內(nèi)容和plot()函數(shù)的基本一致,是字符串,用來控制圖形的線型。

34例:繪制半徑為

2的漸開線。

rhe=2;theta=0:pi/20:4*pi;rho=rhe+theta*rhe;polar(theta,rho,'r')35對(duì)數(shù)和半對(duì)數(shù)曲線繪制函數(shù)的調(diào)用格式分別為:semilogx(x,y,選項(xiàng))semilogy(x,y,選項(xiàng))loglog(x,y,選項(xiàng))即:semilogx()僅對(duì)橫坐標(biāo)進(jìn)行對(duì)數(shù)變換,而縱坐標(biāo)仍保持線性坐標(biāo);而semilogy()只對(duì)縱坐標(biāo)進(jìn)行對(duì)數(shù)變換,而橫坐標(biāo)仍保持線性坐標(biāo);loglog()則分別對(duì)橫縱坐標(biāo)都進(jìn)行對(duì)數(shù)變換(最終得出全對(duì)數(shù)坐標(biāo)的曲線來)。選項(xiàng)的定義與plot()函數(shù)的完全一致。對(duì)數(shù)坐標(biāo)是指以10為底的對(duì)數(shù)坐標(biāo)。36例:繪制正弦函數(shù)的對(duì)數(shù)坐標(biāo)曲線。

t=0.1:0.1:3*pi;y=sin(t);figure(1)semilogx(t,y)gridon%為圖形窗口添加網(wǎng)格

figure(2)semilogy(t,y)figure(3)loglog(t,y)gridon37例:將一個(gè)周期內(nèi)的正弦值利用bar()函數(shù)繪制出來。解:

MATLAB程序:

t=0:0.2:2*pi;y=sin(t);bar(t,y);axis([0,2*pi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論