MATALAB編程與作圖.ppt_第1頁(yè)
MATALAB編程與作圖.ppt_第2頁(yè)
MATALAB編程與作圖.ppt_第3頁(yè)
MATALAB編程與作圖.ppt_第4頁(yè)
MATALAB編程與作圖.ppt_第5頁(yè)
已閱讀5頁(yè),還剩58頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

E-mail: Tel:49936260,數(shù) 學(xué) 實(shí) 驗(yàn),MATALAB編程與作圖,MATALAB控制流,MATALAB作圖,M文件,2.1 M文件編寫(xiě)初步,本質(zhì):就是將一些指令預(yù)先在M文件中編輯好,然后在需要時(shí)將M文件調(diào)出來(lái)執(zhí)行即可。,M文件的分類:一類為簡(jiǎn)單的腳本M文件;一類為函數(shù)M文件。,腳本M文件就是就是一連串常用指令的組合,可在指令窗口中直接 執(zhí)行。, 函數(shù)M文件的開(kāi)頭一行需要有一個(gè)函數(shù)名稱,然后用小括弧包括 需要的輸入?yún)?shù);函數(shù)名稱前可以有等號(hào),在此等號(hào)的左方是它的 輸出參數(shù),MATLAB的內(nèi)部函數(shù)是有限的,有時(shí)為了研究某一個(gè)函數(shù)的各種性態(tài),需要為MATLAB定義新函數(shù),為此必須編寫(xiě)函數(shù)文件. 函數(shù)文件是文件名后綴為M的文件,這類文件的第一行必須是一特殊字符function開(kāi)始,格式為: function 因變量名=函數(shù)名(自變量名) 函數(shù)值的獲得必須通過(guò)具體的運(yùn)算實(shí)現(xiàn),并賦給因變量.,1. 函數(shù)M文件, 單擊MATALAB窗口里的New-Mfile圖標(biāo), 輸入代碼:,function z=fun(x) z=x(1)*2+x(2)*2-2*x(1)*x(2)+6*x(1)-6*x(2), 單擊FileSave,把文件保存在Work文件夾下, 在指令窗口中輸入如下指令即可看到運(yùn)行結(jié)果。 fun(2,3),例2 定義函數(shù) f(x1,x2)=100(x2-x12)2+(1-x1)2,function f=fun(x) f=100*(x(2)-x(1)2)2+(1-x(1)2,1.建立M文件:,2. 可以直接使用函數(shù)fun.m,例如:計(jì)算 f(1,2), 只需在Matlab命令窗口鍵入命令: fun(1 2),2.2 MATALAB程序設(shè)計(jì)初步,MATALAB提供了四種控制程序流結(jié)構(gòu): for、while循環(huán)結(jié)構(gòu); ifelseend分支結(jié)構(gòu); switchcase結(jié)構(gòu); trycatch結(jié)構(gòu)。,1. for、while循環(huán)結(jié)構(gòu),1.1 for語(yǔ)句,for循環(huán):允許一組命令以固定的和預(yù)定的次數(shù)重復(fù) for 變量=array(初始值:增量:終止值) 運(yùn)算指令(commands) end,注1 增量默認(rèn)值為1,也可自己定義增量值,增量值可小于0。當(dāng)增量值大于零時(shí),程序?qū)⒃谧兞看笥诮K止值時(shí)終止;當(dāng)增量小于零時(shí),程序?qū)⒃谧兞啃∮诮K止值時(shí)結(jié)束。,for n=1:10,x(n)=sin(n*pi/10);,end x,單循環(huán)語(yǔ)句:,for n=2:6,x(n)=2*x(n-1);,end x,x(1)=1;,s=0; for i=1:100000 s=s+1/2i+1/3i; end s,多重嵌套循環(huán)語(yǔ)句:,for m=1:5 for n=1:5 H(m,n)=m+n end end H,1.2 while語(yǔ)句,與for循環(huán)以固定次數(shù)求一組命令相反,while循環(huán)以不定的次數(shù)求一組語(yǔ)句的值. while 表達(dá)式(expression) 循環(huán)體commands end 只要在表達(dá)式(expression)里的所有元素為真,就執(zhí)行while和end語(yǔ)句之間的命令串commands,執(zhí)行完成后再判斷表達(dá)式是否為真,若不是則跳出循環(huán)體,向下繼續(xù)執(zhí)行。,s=0; i=0; while s=10000 i=i+1; s=s+i; end i,例2設(shè)銀行年利率為11.25%。將10000元錢(qián)存入銀行,問(wèn)多長(zhǎng)時(shí)間會(huì)連本帶利翻一番?,money=10000;,years=0;,while money20000,years=years+1;,money=money*(1+11.25/100);,end years,1.3 ifelseend分支結(jié)構(gòu),1)有一個(gè)選擇的一般形式是: if 邏輯表達(dá)式(expression) 執(zhí)行語(yǔ)句commands end 如果在表達(dá)式(expression)里的所有元素為真,就執(zhí) 行if和end語(yǔ)句之間的命令串commands.,先建立M文件f.m定義函數(shù)f(x),再在Matlab命令窗口輸入f(2),f(-1)即可。,function f=f(x) if x1 f=x2+1 End if x=1 f=2*x end,2) 有多個(gè)選擇的一般形式是: if 邏輯表達(dá)式 執(zhí)行語(yǔ)句1 else if 邏輯表達(dá)式 執(zhí)行語(yǔ)句2 else if 邏輯表達(dá)式 執(zhí)行語(yǔ)句3 else if else 執(zhí)行語(yǔ)句 end end,function f=fun2(x) if x1 f=x2+1 else if x=0 f=x3 else f=2*x end end,1.3 trycatch結(jié)構(gòu),try語(yǔ)句用來(lái)檢測(cè)程序代碼是否會(huì)產(chǎn)生錯(cuò)誤,一旦錯(cuò)誤發(fā)生,MATALAB會(huì)立即跳入到相應(yīng)的catch語(yǔ)句中去。,try statement1 %命令塊statement1被執(zhí)行。若正確,則跳出此結(jié)構(gòu)。 catch statement2 %當(dāng)命令塊statement1出現(xiàn)執(zhí)行錯(cuò)誤則執(zhí)行命令塊則statement2。 end,輸入矩陣A、B的值,執(zhí)行上面的程序,當(dāng)A的列數(shù)不等于B的行數(shù)時(shí),程序就會(huì)發(fā)現(xiàn)這個(gè)錯(cuò)誤,并打印消息 *Error cxd1 A*B 。,例如:function cxd1(A,B) try X=A*B catch disp*Error cxd1 A*B end,E-mail: Tel:49936260,數(shù) 學(xué) 建 模,第六章 作 圖,2.3 MATLAB圖形繪制,2.3.1 二維曲線圖形,Matlab作圖是通過(guò)描點(diǎn)、連線來(lái)實(shí)現(xiàn)的,故在畫(huà)一個(gè)曲線圖形之前,必須先取得該圖形上的一系列的點(diǎn)的坐標(biāo)(即橫坐標(biāo)和縱坐標(biāo)),然后將該點(diǎn)集的坐標(biāo)傳給Matlab函數(shù)畫(huà)圖.,基本命令為: plot(X,Y,S),可以用下面的語(yǔ)句直接繪制出多條的曲線: plot(X,Y1,X,Y2,X,Yn),參數(shù)S的各種選項(xiàng),注1 上表中的選項(xiàng)可以進(jìn)行組合。例如:若想繪制紅色的點(diǎn)劃線且每個(gè)轉(zhuǎn)折點(diǎn)上用五角星表示,則選相應(yīng)適用怎樣的組合形式?,r-.pentagram,x=-pi:0.05:pi; y=sin(tan(x)-tan(sin(x) plot(x,y),x=0:0.05:2*pi; y=sin(x); z=cos(x); plot(x,y,b,x,z,r.-),幾點(diǎn)說(shuō)明:,1、 若X,Y都為向量,則分別表示點(diǎn)集的橫坐標(biāo)和縱坐標(biāo),例如 plot(X,Y)-畫(huà)實(shí)線,S曲線的性質(zhì)(線性、粗細(xì)、顏色等)。,2、 若X向量,Y為矩陣,則將在同一坐標(biāo)系下繪制m條曲線,每一行和X的關(guān)系將繪制出一條曲線。注意,要求Y矩陣的列數(shù)應(yīng)該等于向量X的長(zhǎng)度。,例:x=0:0.1:2; A=sin(pi*x);0.5+0.5*x; plot(x,A) %2條不同的 曲線,3、 若X,Y都為矩陣,且假設(shè)X和Y的行、列數(shù)相同,則將繪制出X矩陣每行和Y矩陣對(duì)應(yīng)行之間關(guān)系的曲線。,例:A=1 4 2;0 -3 4;0 4 3; B=1 0 0 ;0 1 0;0 0 1; plot(A,B) %對(duì)應(yīng)點(diǎn)的連線,符號(hào)函數(shù)(顯函數(shù)、隱函數(shù)和參數(shù)方程)畫(huà)圖,(1) ezplot,ezplot(x(t),y(t),tmin,tmax) 表示在區(qū)間tminttmax繪制參數(shù)方程 x=x(t),y=y(t)的函數(shù)圖,ezplot(f(x),a,b) 表示在axb繪制顯函數(shù)f=f(x)的函數(shù)圖,ezplot(f(x,y),xmin,xmax,ymin,ymax) 表示在區(qū)間xminxxmax和 yminyymax繪制 隱函數(shù)f(x,y)=0的函數(shù)圖,例1 在0,pi上畫(huà)y=cosx的圖形,解 輸入命令 ezplot(sin(x),0,pi),解 輸入命令 ezplot(cos(t)3,sin(t)3,0,2*pi),解 輸入命令 ezplot(exp(x)+sin(x*y)=0,-2,0.5,0,2),2.3.2 圖形處理,1subplot函數(shù),subplot(m,n,p) 該命令將當(dāng)前圖形窗口分成mn個(gè)繪圖區(qū),即每行n個(gè),共m行,區(qū)號(hào)按行優(yōu)先編號(hào),且選定第p個(gè)區(qū)為當(dāng)前活動(dòng)區(qū)。,【例】 在一個(gè)圖形窗口中同時(shí)繪制正弦、余弦、正切曲線,x=linspace(0,pi,60); y=sin(x);z=cos(x);w=tan(x); subplot(1,3,1); plot(x,y); subplot(1,3,2); plot(x,z); subplot(1,3,3); plot(x,w),2. 分隔線控制和圖形標(biāo)注,MATALAB的默認(rèn)狀態(tài)下是不畫(huà)分隔線,它的疏密取決于坐標(biāo)刻度。,調(diào)用格式: grid on 畫(huà)出分隔線 grid off 不畫(huà)分隔線,例如:x=1:90; y=sin(x); plot(x,y); grid on,3. 圖形標(biāo)注,1)坐標(biāo)軸名label,給相應(yīng)的坐標(biāo)軸x,y,z加標(biāo)注,只要調(diào)用相應(yīng)的函數(shù) xlabel,ylabel,zlabel,以函數(shù)xlabel為例,其調(diào)用格式為:,xlabel(text),1)“text”為要添加的標(biāo)注文本,2)書(shū)寫(xiě)圖名title,(給圖形加標(biāo)題),其調(diào)用格式為:,title(text),注:title命令要寫(xiě)到plot命令之后,否則不起作用;特殊字符串是區(qū)分大小的。,實(shí)例:t=0:0.2:2*pi; plot(t,sin(t),o,t,cos(t),*); xlabel(x),ylabel(y); title(sin(x)和cos(x)曲線),4. 特殊二維圖形,1)極坐標(biāo)圖,其調(diào)用格式為:polar(theta,rho,s),例 試用極坐標(biāo)繪制函數(shù),theta=0:0.1:2*pi; rho=5*sin(4*theta/3); polar(theta,rho,rdiamond),2)散點(diǎn)圖(與plot類似,但只有數(shù)據(jù)點(diǎn)),例 繪制函數(shù)y=sinx的散點(diǎn)圖,x=1:40; y=sin(x); scatter(x,y),其調(diào)用格式為:scatter(x,y,c,s)c是指散點(diǎn)的大小,3)直方圖(顯示數(shù)據(jù)的分布規(guī)律),其調(diào)用格式為:hist(y)使用10個(gè)等距離分布的區(qū)間來(lái)對(duì)向量y的分布進(jìn)行統(tǒng)計(jì),并返回每個(gè)區(qū)間上含有y中元素的個(gè)數(shù)。,Y=randn(15000,2); hist(Y),4)階梯圖形 函數(shù)stairs(x,y)可以繪制階梯圖形,x=-2.5:0.25:2.5; y=exp(-x.*x); stairs(x,y),5)條形圖形 函數(shù)bar(x,y)可以繪制條形圖形,如下列程序段將繪制條形圖形 x=-2.5:0.25:2.5; y=exp(-x.*x); bar(x,y),6)填充圖形 fill(x,y,c)函數(shù)用來(lái)繪制并填充二維多邊圖形,x和y為二維多邊形頂點(diǎn)坐標(biāo)向量。字符 c 規(guī)定填充顏色。 下述程序段繪制一正方形并以黃色填充:,x=0 1 1 0 0; y=0 0 1 1 0; fill(x,y,y) x=0:0.025:2*pi; y=sin(3*x); fill(x,y,k),Matlab系統(tǒng)可用向量表示顏色,通常稱其為顏色向量?;绢伾蛄坑胷 g b表示,即RGB顏色組合;以RGB為基本色,通過(guò) r,g,b在01范圍內(nèi)的不同取值可以組合出各種顏色。,x=0:0.025:2*pi; y=sin(3*x); fill(x,y,0.3 0.4 .6),4)平面等值線圖:contour (x,y,z,n) 繪制n個(gè)等值線的二維等值線圖,解: X,Y= meshgrid(-2:0.2:2,-2:0.2:3); Z=X.*exp(-X.2-Y.2); contour(X,Y,Z);,2.3.3 三維圖形,1. 空間曲線,2. 空間曲面,plot3(x,y,z,s),空 間 曲 線,1、 一條曲線,t=0:0.1:2*pi; x=t.3.*sin(3*t).*exp(-t); y=t.3.*cos(3*t).*exp(-t); z=t.2; plot3(x,y,z),plot3(x,y,z),2、多條曲線,例 畫(huà)多條曲線觀察函數(shù)Z=(X+Y)2,(這里meshgrid(x,y)的作用是產(chǎn)生一個(gè)以向量x為行、向量y為列的矩陣),其中x,y,z是都是m*n矩陣,其對(duì)應(yīng)的每一列表示一條曲線.,解 x=-3:0.1:3;y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; plot3(X,Y,Z),空 間 曲 面,1、網(wǎng)格圖,所謂網(wǎng)格圖,是指把相鄰的數(shù)據(jù)點(diǎn)連接起來(lái)相成的網(wǎng)狀面。,mesh(x,y,z,c),例 繪peaks的網(wǎng)格圖,解:x,y,z=peaks; mesh(x,y,z),peaks函數(shù)用于生成高斯型分布的數(shù)據(jù),其參數(shù)為生成數(shù)據(jù)矩陣的維數(shù),2、曲面圖,所謂曲面圖,就是把網(wǎng)格圖表面的網(wǎng)格為成的小片區(qū)域(補(bǔ)片)用不同的顏色填充形成的彩色表面。,說(shuō)明:在繪制三維圖形之前,應(yīng)該先調(diào)用meshgrid()函數(shù)生成網(wǎng)格數(shù)據(jù)x和y,這樣可以按函數(shù)公式用點(diǎn)運(yùn)算的方式計(jì)算出z矩陣,之后就可以用函數(shù)進(jìn)行三維圖形繪制。,X,Y=meshgrid(x,y); Z=f(x,y); Surf(x,y,z),例 繪peaks的曲面圖,解:x,y,z=peaks; surf(x,y,z),例1 繪z=sinx+cosy的曲面圖,解:x,y=meshgrid(0:0.5:2*pi,0:0.4:2*pi); z=sin(x)+cos(x); surf(x,y,z),解:x,y=meshgrid(0:31);n=2;D0=200; D=sqrt(x-16).2+(y-16).2); z=1./(1+D.(2*n)/D0); surf(x,y,z),在圖形上加格柵、圖例和標(biāo)注,定制坐標(biāo),圖形保持,分割窗口,縮放圖形,改變視角,圖形處理,動(dòng) 畫(huà),1、在圖形上加格柵、圖例和標(biāo)注,(1)grid on: 加格柵在當(dāng)前圖上 grid off: 刪除格柵,(2)xlabel(string): 在當(dāng)前圖形的x軸上加圖例string,ylabel(string): 在當(dāng)前圖形的y軸上加圖例string,zlabel(string): 在當(dāng)前圖形的z軸上加圖例string,title(string): 在當(dāng)前圖形的頂端上加圖例string,例 繪制z=sinh(x)+cosy的圖形,并加注圖例“自變量 X”、“自變量Y”、“函數(shù)z”,”三維示意圖“ 并加格柵.,解:x,y=meshgrid(0:0.5:2*pi); z=sinh(x)+cos(y); surf(x,y,z); grid on; xlabel(自變量x); ylabel(自變量y); zlabel(函數(shù)z); title(三維圖形示意圖),(3)gtext(string),命令gtext(string)用鼠標(biāo)放置標(biāo)注在現(xiàn)有的圖上. 運(yùn)行命令gtext(string)時(shí),屏幕上出現(xiàn)當(dāng)前圖形,在 圖形上出現(xiàn)一個(gè)交叉的十字,該十字隨鼠標(biāo)的移動(dòng)移動(dòng), 當(dāng)按下鼠標(biāo)左鍵時(shí),該標(biāo)注string放在當(dāng)前十交叉的位 置.,例 在區(qū)間0,2*pi畫(huà)sin(x),并分別標(biāo)注“sin(x)” ”cos(x)”.,解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,z) gtext(sin(x);gtext(cos(x),2、定制坐標(biāo),axis(xmin xmax ymin ymax zmin zmax),例 在區(qū)間0.005,0.01顯示sin(1/x)的圖形。,解 x=linspace(0.0001,0.01,1000); y=sin(1./x); plot(x,y) axis(0.005 0.01 1 1),定制圖形坐標(biāo),將坐標(biāo)軸返回到自動(dòng)缺省值,axis auto,3、圖形保持,(1) hold on hold of,例 將z=sin(x)+cos(y)、w=cos(x)+tan(y)畫(huà)出在同一屏幕上。,保持當(dāng)前圖形, 以便繼續(xù)畫(huà)圖到當(dāng)前圖上,釋放當(dāng)前圖形窗口,x,y=meshgrid(0:0.5:2*pi,0:0.4:2*pi); z=sin(x)+cos(x); w=cos(x)+tan(y); surf(x,y,z); hold on surf(x,y,w),(2) figure(h),例 區(qū)間0,2*pi新建兩個(gè)窗口分別畫(huà)出y=sin(x); z=cos(x)。,新建h窗口,激活圖形使其可見(jiàn),并把它置于其它圖形之上,x=linspace(0,2*pi,100); y=sin(x);z=cos(x); plot(x,y); title(sin(x); pause figure(2); plot(x,z); title(cos(x); pause,5、縮放圖形,zoom on,單擊鼠標(biāo)左鍵,則在當(dāng)前圖形窗口中,以鼠標(biāo)點(diǎn)中的點(diǎn)為中心的圖形放大2倍;單擊鼠標(biāo)右鍵,則縮小2倍,例 縮放y=sin(x)的圖形,zoom off,為當(dāng)前圖形打開(kāi)縮放模式,關(guān)閉縮放模式,x=linspace(0,2*pi,30); y=sin(x); plot(x,y) zoom on,6. 改變視角view,(1)view(a,b) 命令view(a,b)改變視角到(a,b),a是方位角,b為仰角。缺省視角為(-37.5,30)。,例 畫(huà)出曲面Z=sinx+cosy在不同視角的網(wǎng)格圖.,view用空間矢量表示的,三個(gè)量只關(guān)心它們的比例,與數(shù)值的大小無(wú)關(guān),x軸view(1,0,0),y軸view(0,1,0),z軸view(0,0,1)。,(2)view(x,y,z),X,Y=meshgrid(0:0.5:2*pi,0:0.3:2*pi); Z=sin(X)+cos(Y); subplot(2,2,1); mesh(X,Y,Z) subplot(2,2,2);mesh(X,Y,Z);view(50,-34) subplot(2,2,3);mesh(X,Y,Z);view(-60,70) subplot(2,2,4);mesh(X,Y,Z);view(0,1,1),特殊的三維圖形函數(shù),1、空間等值線圖: contour 3(x,y,z,n),其中n表示等值線數(shù)。,例 山峰的三維和二維等值線圖。,解 x,y,z=peaks; subplot(1,2,1) contour3(x,y,z,16,s) subplot(1,2

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論