數(shù)學建模-Matlab基礎課件_第1頁
數(shù)學建模-Matlab基礎課件_第2頁
數(shù)學建模-Matlab基礎課件_第3頁
數(shù)學建模-Matlab基礎課件_第4頁
數(shù)學建模-Matlab基礎課件_第5頁
已閱讀5頁,還剩90頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Matlab基礎MATLAB作為線性系統(tǒng)的一種分析和仿真工具,是大學生應該掌握的技術(shù)工具,它作為一種編程語言和可視化工具,可解決工程、科學計算和數(shù)學學科中許多問題。MATLAB建立在向量、數(shù)組和矩陣的基礎上,使用方便,人機界面直觀,輸出結(jié)果可視化。 矩陣是MATLAB的核心 MATLAB的運行方式(兩種)一、變 量 與 函 數(shù)二、數(shù) 組三、矩 陣四、邏輯運算及控制流五、Matlab作圖MATLAB基礎 1、變量 MATLAB中變量的命名規(guī)則是:(1)變量名必須是不含空格的單個詞;(2)變量名區(qū)分大小寫;(3)變量名最多不超過32個字符;(4)變量名必須以字母打頭,之后可以是任意字母、數(shù)字或下劃

2、線,變量名中不允許使用標點符號. 一、變 量 與 函 數(shù)特殊變量表2、數(shù)學運算符號及標點符號(1)MATLAB的每條命令后,若為逗號或無標點符號,則顯示命令的結(jié)果;若命令后為分號,則禁止顯示結(jié)果. (2)“%” 后面所有文字為注釋. (3) “.”表示續(xù)行.NOTE3、數(shù)學函數(shù) MATLAB的內(nèi)部函數(shù)是有限的,有時為了研究某一個函數(shù)的各種性態(tài),需要為MATLAB定義新函數(shù),為此必須編寫函數(shù)文件. 函數(shù)文件是文件名后綴為M的文件,這類文件的第一行必須是一特殊字符function開始,格式為: function 因變量名=函數(shù)名(自變量名)函數(shù)值的獲得必須通過具體的運算實現(xiàn),并賦給因變量. 4、M

3、文件說明:Matlab的應用程序也以M文件保存。在Matlab中,點:File-New-M-file;在編輯窗口中輸入程序內(nèi)容點:File-Save,存盤,M文件名必須與函數(shù)名一致。M文件建立方法:例:定義函數(shù) f(x1,x2)=100(x2-x12)2+(1-x1)2function f=fun(x)f=100*(x(2)-x(1)2)2+(1-x(1)2;1.建立M文件:fun.m2. 可以直接使用函數(shù)fun.m例如:計算 f(1,2), 只需在Matlab命令窗口鍵入命令:x=1,2fun(x)結(jié)合軟件介紹。重點:斷點設置和調(diào)試。M文件調(diào)試與剖析:(1)Matlab主菜單及功能 File

4、,Edit,Debug,Desktop,Window,Help(2)Matlab命令窗口5、Matlab桌面(3)Matlab工作空間常用操作命令及功能(4)Matlab文件管理常用命令(5)Matlab幫助使用命令功能who顯示當前工作空間中所有變量的簡單列表whos列出變量的大小,數(shù)據(jù)格式等詳細信息clear清除工作空間中的所有變量clear 變量名清除指定的變量load從磁盤文件中恢復變量save保存工作空間變量pack整理工作空間內(nèi)存size(變量名)顯示當前工作空間中變量的尺寸length(變量名)顯示當前工作空間中變量的長度disp(變量名)顯示當前工作空間中變量quit或exit

5、退出工作空間命令功能what顯示當前目錄下所有與Matlab相關(guān)的文件及其路徑dir顯示當前目錄下所有的文件which顯示某個文件的路徑cd path由當前目錄進入path目錄type filename在命令窗口中顯示文件filenamedelete filename刪除文件filenamecd.返回上一級目錄cd顯示當前目錄1、創(chuàng)建簡單的數(shù)組二、數(shù) 組x=a b c d e f 創(chuàng)建包含指定元素的行向量x=first:last 創(chuàng)建從first開始,加1計數(shù),到last結(jié)束的行向量注意:這里各個元素之間可用空格分開,也可用逗號分開,即x=a,b,c,d,e,f ,且各個標點符號需在英文狀態(tài)下

6、輸入。x=logspace(a,b,n) 創(chuàng)建從10a開始,到10b結(jié)束,有n個元素的對數(shù)分隔行向量. x=first:increment:last 創(chuàng)建從first開始,加increment計數(shù),last結(jié)束的行向量。x=linspace(first,last,n) 創(chuàng)建從first開始,到last結(jié)束,有n個元素的行向量。2、 數(shù)組元素的訪問(3)直接使用元素編址序號. x(a b c d) 表示提取數(shù)組x的第a、b、c、d個元素構(gòu)成一個新的數(shù)組x(a) x(b) x(c) x(d). eg. x=1,2,3,4,5,6; y=x(1,3,5)(2)訪問一塊元素: x(a :b :c)表示

7、訪問數(shù)組x的從第a個元素開始,以步長為b到第c個元素(但不超過c),b可以為負數(shù),b缺損時為1. eg. x=1,2,3,4,5,6; y=x(1:2:6) (1)訪問一個元素: x(i)表示訪問數(shù)組x的第i個元素.3、數(shù)組的方向 前面例子中的數(shù)組都是一行數(shù)列,是行方向分布的. 稱之為行向量. 數(shù)組也可以是列向量,它的數(shù)組操作和運算與行向量是一樣的,唯一的區(qū)別是結(jié)果以列形式顯示. 產(chǎn)生列向量有兩種方法: 直接產(chǎn)生 例 c=1;2;3;4 轉(zhuǎn)置產(chǎn)生 例 b=1 2 3 4; c=b 說明:以空格或逗號分隔的元素指定的是不同列的元素,而以分號分隔的元素指定了不同行的元素. 4、數(shù)組的運算 (1)標

8、量-數(shù)組運算 數(shù)組對標量的加、減、乘、除、乘方是數(shù)組的每個元素對該標量施加相應的加、減、乘、除、乘方運算. 設:a=a1,a2,an, c=標量則:a+c=a1+c,a2+c,an+c a.*c=a1*c,a2*c,an*c a./c= a1/c,a2/c,an/c(右除) a.c= c/a1,c/a2,c/an (左除) a.c= a1c,a2c,anc c.a= ca1,ca2,can eg.a=1,2,3,4,5,6;c=2;a+ca.*ca./ca.ca.cc.a (2)數(shù)組-數(shù)組運算 當兩個數(shù)組有相同維數(shù)時,加、減、乘、除、冪運算可按元素對元素方式進行的,不同大小或維數(shù)的數(shù)組是不能進

9、行運算的. 設:a=a1,a2,an, b=b1,b2,bn則:a+b= a1+b1,a2+b2,an+bn a.*b= a1*b1,a2*b2,an*bn a./b= a1/b1,a2/b2,an/bn a.b=b1/a1,b2/a2,bn/an a.b=a1b1,a2b2,anbn(3)常用的數(shù)組操作函數(shù) 三、 矩 陣 逗號或空格用于分隔某一行的元素,分號用于區(qū)分不同的行. 除了分號,在輸入矩陣時,按Enter+Shift鍵也表示開始一新行. 輸入矩陣時,嚴格要求所有行有相同的列. 例 m=1 2 3 4;5 6 7 8;9 10 11 12 p=1 1 1 1 2 2 2 2 3 3 3

10、 31、矩陣的建立特殊矩陣的建立:E=eye(m,n) 產(chǎn)生一個m行、n列的單位矩陣D=ones(m,n) 產(chǎn)生一個m行、n列元素全為1的矩陣C=zeros(m,n) 產(chǎn)生一個m行、n列的零矩陣A= 產(chǎn)生一個空矩陣(空矩陣的大小為零)F=diag(x,k) 創(chuàng)建一個主對角元對應于數(shù)組x的對角矩陣f=diag(X,k) 提取二維矩陣X的第k條對角線元素組成的一維矩陣B=rand(m,n) 產(chǎn)生一個m行、n列的隨機矩陣2、矩陣中元素的操作(1)矩陣A的第r行:A(r,:)(2)矩陣A的第r列:A(:,r)(4)取矩陣A的第i1i2行、第j1j2列構(gòu)成新矩陣:A(i1:i2, j1:j2)(5)以逆

11、序提取矩陣A的第i1i2行,構(gòu)成新矩陣:A(i2:-1:i1,:)(6)以逆序提取矩陣A的第j1j2列,構(gòu)成新矩陣:A(:, j2:-1:j1 )(7)刪除A的第i1i2行,構(gòu)成新矩陣:A(i1:i2,:)= (8)刪除A的第j1j2列,構(gòu)成新矩陣:A(:, j1:j2)= (9)將矩陣A和B拼接成新矩陣:A B;A;B(3)依次提取矩陣A的每一列,將A拉伸為一個列向量:A(:) (2)矩陣-矩陣運算 3、矩陣的運算(1)標量-矩陣運算 2矩陣運算:矩陣加法:A+B矩陣乘法:A*B方陣的行列式:det(A)方陣的逆:inv(A)方陣的特征值與特征向量:V,D=eigA1 元素對元素的運算,同數(shù)

12、組-數(shù)組運算。同標量-數(shù)組運算。練習:3.對上題中A求出其特征值及特征向量。4、常見的矩陣操作(1)矩陣索引與尋址 1數(shù)字索引方式 A(m) %單下標索引訪問矩陣第m個元素 A(m,n) %雙下標索引訪問矩陣第m行第n列的元素 A(m:n) %單下標索引訪問矩陣第m到第n個元素 A(m1:m2,n1:n2) %雙下標索引訪問矩陣第m1至m2行,第n1至n2列的元素 A(m1,m2,n1,n2,) %雙下標索引訪問矩陣第m1,m2,行,第n1,n2,列的元素2單下標索引和雙下標索引的轉(zhuǎn)換 IND=sub2ind(siz,I,J) %單轉(zhuǎn)雙 I,J=ind2sub(siz,IND) %雙轉(zhuǎn)單(2)

13、邏輯索引方式 可通過下面一段程序了解其用法:A= rand(5)B=A0.8 %通過比較關(guān)系運算產(chǎn)生邏輯索引A(B)=0 通過邏輯索引訪問原矩陣元素,并重新賦值(3)索引擴展若對超出矩陣范圍的元素賦值,則默認擴展至該元素,且補充元素默認賦值為0,可通過下例了解A=eye(3)A(4,6)=25(4)矩陣翻轉(zhuǎn) 函數(shù)及語法說明fliplr(A)左右翻轉(zhuǎn)Aflipud(A)上下翻轉(zhuǎn)Aflipdim(A,k)按k指定的方向翻轉(zhuǎn)Arot90(A,k)逆時針k*90度翻轉(zhuǎn)A(5)矩陣查找 可通過下面一段程序了解此用法:A= rand(3,5)B=(A0.3)&(A0.5)C=find(B) %查找邏輯矩陣

14、中的非零元素,返回復合關(guān)系的元素索 引單下標A(C) %實現(xiàn)元素訪問(6)矩陣排序 練習:A= rand(1,8) sort(A)B,I=sort(A,descend) A(I)C= rand(3,6) sort(C) D,I=sort(C,2) C(I) B,IX=sort(A,dim,mode)%dim代表指定方向,dim=1表示對每列排序,dim=2表示對每行排序,缺省時默認為1%mode代表排序模式,mode=asend時為升序,mode=descend時為降序%IX為排序后各元素在原矩陣中的行位置或列位置的索引(7)多維矩陣 練習:通過下面的小段程序體會其操作A=randn(2,5,

15、2)sum(A)sin(A)eig(A(:,1 2,1)A=ones(3,3,4)表示什么?B=eye(3,3,4,2)又表示什么? 四、邏輯運算及控制流 1、邏輯運算(1)關(guān)系操作符(2)邏輯運算符邏輯操作符說明與或非2、控制流MATLAB提供以下幾種決策或控制流結(jié)構(gòu): for循環(huán)、while循環(huán)、if-else-end結(jié)構(gòu)、swich-case-otherwise結(jié)構(gòu)、continue語句(直接進入下次循環(huán))、break語句(退出循環(huán))、try-catch-end結(jié)構(gòu)(錯誤控制)、retune語句(程序終止). 這些結(jié)構(gòu)經(jīng)常包含大量的MATLAB命令,故經(jīng)常出現(xiàn)在MATLAB程序中,而不是

16、直接加在MATLAB提示符下. (1)for循環(huán):允許一組命令以固定的和預定的次數(shù)重復 for x=array commands end在for和end語句之間的命令串commands按數(shù)組(array)中的每一列執(zhí)行一次. 在每一次迭代中,x被指定為數(shù)組的下一列,即在第n次循環(huán)中,x=array(:,n)。 eg. 求n=3,6,9,12時n!的值,要求對應詳細說明輸出。 while expression commands end 只要在表達式(expression)里的所有元素為真,就執(zhí)行while和end語句之間的命令串commands. 2、While循環(huán) 與for循環(huán)以固定次數(shù)求一組

17、命令相反,while循環(huán)以不定的次數(shù)求一組語句的值. eg. 設銀行年利率為11.25%。將10000元錢存入銀行,問多長時間會連本帶利翻一番?3、if-elseif-end結(jié)構(gòu)(1)有一個選擇的一般形式是: if expression commands end 如果在表達式(expression)里的所有元素為真,就執(zhí)行if和end語句之間的命令串commands. 先建立M文件fun1.m定義函數(shù)f(x),再在Matlab命令窗口輸入fun1(2),fun1(-1)即可。2) 有三個或更多的選擇的一般形式是: if (expression1) commands1 elseif (expre

18、ssion2) commands2 elseif (expression3) commands3 elseif else commands end 先建立M文件fun2.m定義函數(shù)f(x),再在Matlab命令窗口輸入fun2(2),fun2(0.5), fun2(-1)即可。練習:用此結(jié)構(gòu)編寫輸入年份判斷是否閏年的程序。對以下問題,編寫M文件:(1)用起泡法對10個數(shù)由小到大排序. 即將相鄰兩個數(shù)比較,將小的調(diào)到前頭.(2)有一個 矩陣,編程求出其最大值及其所處的位置.(3)編程求實驗練習五、Matlab作圖1.二維圖形2.三維圖形3.圖形處理4.特殊二、三維圖形Matlab作圖是通過描點、

19、連線來實現(xiàn)的,故在畫一個曲線圖形之前,必須先取得該圖形上的一系列的點的坐標(即橫坐標和縱坐標),然后將該點集的坐標傳給Matlab函數(shù)畫圖. 命令為:plot(X,Y,S)X,Y是向量,分別表示點集的橫坐標和縱坐標線型(1)二維曲線圖線型說明標記符說明顏色說明-實線(默認)+加號符r紅色-雙劃線o空心圓g綠色:虛線*星號b藍色:.點劃線.實心圓c青綠色x叉號符m洋紅色s正方形y黃色d菱形k黑色上三角形w白色v下三角形右三角形左三角形p五角星h六邊形plot繪圖中線寬和標記點格式設置:plot(X,Y)畫實線plot(X,Y1,S1,X,Y2,S2,X,Yn,Sn) 將多條線畫在一起Proper

20、tyName意義選項LineWidth線寬數(shù)值,如1MarkerEdgeColor標記點邊框線條顏色顏色字符,如bMarkerFaceColor標記點內(nèi)部填充顏色顏色字符MarkerSize標記點大小數(shù)值例:例 在0,2*pi用紅線畫sin(x),用綠圈畫cos(x). x=linspace(0,2*pi,30);y=sin(x);z=cos(x);plot(x,y,r,x,z,go)解練習 在同一個窗口中用不同顏色不同模式畫出sin(x),sin(2x),sin(3x)的圖形。 (2)符號函數(shù)(顯函數(shù)、隱函數(shù)和參數(shù)方程)畫圖1) ezplotezplot(x(t),y(t),tmin,tma

21、x) 表示在區(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ù)圖例 在0,pi上畫y=cos(x)的圖形解 輸入命令 ezplot(sin(x),0,pi)解 輸入命令 ezplot(cos(t)3,sin(t)3,0.2*pi)解 輸入命令ezplot(exp(x)+sin(x*y),-2,0.5,0,2)例例2) fplotNOTE:1 fun必須

22、是M文件的函數(shù)名或是獨立變量為x的字符串. 2 fplot函數(shù)不能畫參數(shù)方程和隱函數(shù)圖形,但在一個圖上可以畫多個圖形。fplot(fun,lims)表示繪制字符串fun指定的函數(shù)在lims=xmin,xmax的圖形.注:其中fun是用m文件寫好的函數(shù),同時要說明的是雖然fplot也是一元函數(shù)作圖函數(shù),但是不同的是fplot采用自適應步長控制來畫出函數(shù)fun的示意圖,在函數(shù)的變化激烈的區(qū)間,采用小的步長,否則采用大的步長,可以使圖形盡可能精確,但缺點是需要寫m文件函數(shù),不能畫隱函數(shù)和參數(shù)方程所表示的函數(shù)。 2) fplotNOTE3fplot(fun,lims)表示繪制字符串fun指定的函數(shù)在l

23、ims=xmin,xmax的圖形.2) fplot例 畫出在上的圖形。 解 先用fun.m來寫好函數(shù),命令如下function f=fun(x)f=sin(1/x);然后運行以下命令:fplot(fun,pi/100,2/pi) 圖形如圖7所示。 解 先建M文件myfun1.m: function Y=myfun1(x) Y=exp(2*x)+sin(3*x.2)再輸入命令:fplot(myfun1,-1,2)解 輸入命令: fplot(tanh(x),sin(x),cos(x),2*pi*-1 1 1 1)例 在-2,2范圍內(nèi)繪制函數(shù)tanh的圖形解 fplot(tanh,-2,2)(3)

24、對數(shù)坐標圖 在很多實際問題中,通過對數(shù)據(jù)進行對數(shù)轉(zhuǎn)換可以更清晰地看出數(shù)據(jù)的某些特征,在對數(shù)坐標系中描繪數(shù)據(jù)點的曲線,可以直接地表現(xiàn)對數(shù)轉(zhuǎn)換.對數(shù)轉(zhuǎn)換有雙對數(shù)坐標轉(zhuǎn)換和單軸對數(shù)坐標轉(zhuǎn)換兩種.用loglog函數(shù)可以實現(xiàn)雙對數(shù)坐標轉(zhuǎn)換,用semilogx和semilogy函數(shù)可以實現(xiàn)單軸對數(shù)坐標轉(zhuǎn)換.loglog(Y) 表示 x、y坐標都是對數(shù)坐標系semilogx(Y) 表示 x坐標軸是對數(shù)坐標系semilogy() 表示y坐標軸是對數(shù)坐標系plotyy 有兩個y坐標軸,一個在左邊,一個在右邊例 用方形標記創(chuàng)建一個簡單的loglog解 輸入命令: x=logspace(-1,2); loglog(

25、x,exp(x),-s) grid on %標注格柵例 創(chuàng)建一個簡單的半對數(shù)坐標圖例 繪制y=x3的函數(shù)圖、對數(shù)坐標圖、半對數(shù)坐標圖解 輸入命令: x=logspace(-1,2); plot(x,x.3),grid on loglog(x,x.3,ro) semilogx(x,x.3,g+)解 輸入命令: x=0:.1:10; semilogy(x,10.x)(1)空間曲線(2)空間曲面2、三維圖形plot3(x,y,z,s) (1)空 間 曲 線 1) 一條曲線 例 在區(qū)間0,10*pi畫出參數(shù)曲線 x=sin(t),y=cos(t),z=t. 解 t=0:pi/50:10*pi; plo

26、t3(sin(t),cos(t),t) rotate3d %旋轉(zhuǎn)n維向量,分別表示曲線上點集的橫坐標、縱坐標、函數(shù)值指定顏色、線形等 plot3(x,y,z)2)多條曲線例 畫多條曲線觀察函數(shù)Z=(X+Y).2. (這里meshgrid(x,y)的作用是產(chǎn)生一個以向量x為行、以向量y為列的矩陣)其中x,y,z是都是m*n矩陣,其對應的每一列表示一條曲線.解 x=-3:0.1:3;y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; plot3(X,Y,Z)(2)空 間 曲 面例 畫函數(shù)Z=(X+Y).2的圖形. 解 x=-3:0.1:3; y=1:0.1:5; X,

27、Y=meshgrid(x,y); Z=(X+Y).2; surf(X,Y,Z) shading flat %將當前圖形變得平滑1) surf(x,y,z)畫出數(shù)據(jù)點(x,y,z)表示的曲面數(shù)據(jù)矩陣。分別表示數(shù)據(jù)點的橫坐標、縱坐標、函數(shù)值2) mesh(x,y,z) 解 x=-3:0.1:3; y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; mesh(X,Y,Z) 例 畫出曲面Z=(X+Y).2在不同視角的網(wǎng)格圖. 畫網(wǎng)格曲面數(shù)據(jù)矩陣。分別表示數(shù)據(jù)點的橫坐標、縱坐標、函數(shù)值3)meshz(X,Y,Z) 在網(wǎng)格周圍畫一個curtain圖解 輸入命令: X,Y=me

28、shgrid(-3:.125:3); Z=peaks(X,Y); meshz(X,Y,Z)例 繪peaks的網(wǎng)格圖4)函數(shù)曲面作圖ezsurf(fun,domain)(ezmesh(fun,domain))%在指定范圍內(nèi)繪制函數(shù)fun的曲面圖(網(wǎng)格曲面圖),domain可缺省ezsurf(funx,funy,funz,min,max)%在參數(shù)方程下繪制三維曲面圖,ezmesh類同 解例 畫出環(huán)面 的網(wǎng)格曲面圖。 figureezsurf(1+cos(u)*cos(v),(1+cos(u)*sin(v),sin(u),0,2*pi,0,2*pi)在圖形上加格柵、圖例和標注定制坐標圖形保持分割窗口

29、縮放圖形改變視角3圖形處理動 畫(1)在圖形上加格柵、圖例和標注1)grid on 加格柵在當前圖上 grid off 刪除格柵2)hh = xlabel(string) 在當前圖形的x軸上加圖例stringhh = ylabel(string)在當前圖形的y軸上加圖例stringhh = title(string)在當前圖形的頂端上加圖例stringhh = zlabel(string)在當前圖形的z軸上加圖例string例 在區(qū)間0,2*pi畫sin(x)的圖形,并加注圖例“自變量 X”、“函數(shù)Y”、“示意圖”, 并加格柵.解 x=linspace(0,2*pi,30); y=sin(x)

30、; plot(x,y) xlabel(自變量X) ylabel(函數(shù)Y) title(示意圖) grid on3) hh = gtext(string) 命令gtext(string)用鼠標放置標注在現(xiàn)有的圖上.運行命令gtext(string)時,屏幕上出現(xiàn)當前圖形,在圖形上出現(xiàn)一個交叉的十字,該十字隨鼠標的移動移動,當按下鼠標左鍵時,該標注string放在當前十交叉的位置. 例 在區(qū)間0,2*pi畫sin(x), 并分別標注“sin(x)”, ”cos(x)”.解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,z) gtext(

31、sin(x);gtext(cos(x)(2)定制坐標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)定制圖形坐標將坐標軸返回到自動缺省值Axis autox、y、z的最大、最小值(3)圖形保持 1) hold on hold off例 將y=sin(x)、y=cos(x)分別用點和線畫出在同一屏幕上。解 x=linspace(0,2*pi,30); y=sin(x); z=

32、cos(x); plot(x,z) hold on plot(x,y)保持當前圖形, 以便繼續(xù)畫圖到當前圖上釋放當前圖形窗口2) figure(h)例 區(qū)間0,2*pi新建兩個窗口分別畫出y=sin(x) 和z=cos(x)。解 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);新建h窗口,激活圖形使其可見,并把它置于其它圖形之上(4)分割窗口h=subplot(mrows,ncols,thisplot) 劃分整個作圖區(qū)域為mr

33、ows*ncols塊(逐行對塊訪問)并激活第thisplot塊,其后的作圖語句將圖形畫在該塊上。 激活已劃分為mrows*ncols塊的屏幕中的第thisplot塊,其后的作圖語句將圖形畫在該塊上。命令Subplot(1,1,1)返回非分割狀態(tài)。subplot(mrows,ncols,thisplot) subplot(1,1,1)解 x=linspace(0,2*pi,100);y=sin(x); z=cos(x);a=sin(x).*cos(x);b=sin(x)./(cos(x)+eps)subplot(2,2,1),plot(x,y),title(sin(x)subplot(2,2,2

34、),plot(x,z),title(cos(x)subplot(2,2,3),plot(x,a),title(sin(x)cos(x)subplot(2,2,4),plot(x,b),title(sin(x)/cos(x)例 將屏幕分割為四塊,并分別畫出y=sin(x),z=cos(x), a=sin(x)*cos(x),b=sin(x)/cos(x)。(5)縮放圖形zoom on 單擊鼠標左鍵,則在當前圖形窗口中,以鼠標點中的點為中心的圖形放大2倍;單擊鼠標右鍵,則縮小2倍.解 x=linspace(0,2*pi,30); y=sin(x); Plot(x,y) zoom on 例 縮放y=

35、sin(x)的圖形zoom off為當前圖形打開縮放模式關(guān)閉縮放模式(6)改變視角view1)view(a,b) 命令view(a,b)改變視角到(a,b),a是方位角,b為仰角。缺省視角為(-37.5,30)。 view用空間矢量表示的,三個量只關(guān)心它們的比例,與數(shù)值的大小無關(guān),x軸view(1,0,0),y軸view(0,1,0),z軸view(0,0,1)。2)view(x,y,z) 解 x=-3:0.1:3; y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; subplot(2,2,1), mesh(X,Y,Z) subplot(2,2,2), mesh

36、(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)例 畫出曲面Z=(X+Y).2在不同視角的網(wǎng)格圖. (7) 動畫 Moviein(),getframe,movie() 函數(shù)Moviein()產(chǎn)生一個幀矩陣來存放動畫中的幀;函數(shù)getframe對當前的圖象進行快照;函數(shù)movie()按順序回放各幀。 例 將曲面peaks做成動畫。 解 x,y,z=peaks(30); surf(x,y,z) axis(-3 3 -3 3 -10 10) m=m

37、oviein(100); for i=1:100 view(-37.5+10*(i-1),30) m(:,i)=getframe; end movie(m)4、特殊二、三維圖形(1)特殊的二維圖形函數(shù)(2)特殊的三維圖形函數(shù)(1)特殊的二維圖形函數(shù)1)極坐標圖:polar (theta,rho,s) 用角度theta(弧度表示)和極半徑rho作極坐標圖,用s指定線型。例解:theta=linspace(0,2*pi), rho=sin(2*theta).*cos(2*theta); polar(theta,rho,b) title(Polar plot of sin(2*theta).*cos

38、(2*theta);2)柱狀圖: bar (data,mode) %把單個數(shù)據(jù)顯示為縱向柱條 barh(data,mode) %把單個數(shù)據(jù)顯示為橫向柱條 mode默認情況下為grouped模式,則data的每行看作一組畫在坐標上。若指定為stacked模式,則把每一組數(shù)據(jù)累疊起來繪圖。例解:X=3 2 1;4 2 7;3 6 9;5 1 7; subplot(1,2,1) bar(X) subplot(1,2,2) barh(X,stacked)3)面積圖: area (data) %把每一組數(shù)據(jù)點累疊繪制,且把每一個數(shù)據(jù)集合的相鄰點用線條連接,把每一個數(shù)據(jù)集合所在區(qū)域用不同的顏色填充。例pa

39、rt1=4 6 7 9 2 3;part2=2 1 3 7 9 8;area(part1 part2)gtext(total=part1+part2)4)餅圖: pie (data) %當輸入數(shù)據(jù)總和超過1,pie函數(shù)會自動計算每一數(shù)據(jù)在總體中的比例; %當輸入數(shù)據(jù)總和小于1時,pie只繪制輸入數(shù)據(jù)指定的各部分,不足1的部分空缺處理。 例x=rand(1,5)y=0.2 0.45 0.1;subplot(1,2,1)pie(x)subplot(1,2,2)pie(y)5)直方圖: hist (data,number) %頻數(shù)直方圖,用來顯示一直數(shù)據(jù)記的分布情況,根據(jù)數(shù)據(jù)范圍分割成number個

40、區(qū)間,直方圖中用每一個柱條代表處于該區(qū)間中的數(shù)據(jù)點數(shù)目;number缺省時區(qū)間長度為1. rose(data) %極坐標下的直方圖,也成為玫瑰圖。例x=randn(1000,1);y=randn(1000,3);subplot(3,1,1)hist(x)subplot(3,1,2)hist(x,50)subplot(3,1,3)hist(y,25)例x=rand(1000,1)*1000;theta=x*pi/180;rose(theta)set(findobj(gca,Type,line),LineWidth,2.0)6)離散數(shù)據(jù)圖: stem (X,Y,type,fill) %顯示離散數(shù)據(jù)

41、的變化趨勢的火柴桿圖,把每一個數(shù)據(jù)點用一個垂直于橫軸的火柴棒來表示,火柴頭的位置表示數(shù)據(jù)點,type表示線型顏色形狀,fill表示是否填充。 stairs(X,Y) %階梯圖。例t=0:0.2:10;y=exp(-0.2*t).*cos(7*t);subplot(2,1,1)stem(t,y) hold onplot(t,y)plot(t,y,r)subplot(2,1,2) stem(t,y,-.dg,fill)例t=0:0.5:10;y=exp(-0.2*t).*cos(t);stairs(t,y)hold onplot(t,y,r)7)平面等值線圖: contour(x,y,z,n)繪制

42、n個等值線的二維等值線。最常用于顯示多元函數(shù),尤其是二元函數(shù)的函數(shù)值變化趨勢。clabel(c,h) 標注等值線圖中的函數(shù)值。contourf(x,y,z,n) 繪制填充模式的等值線圖。 z=peaks;subplot(2,2,1) contour(z)subplot(2,2,2) c,h=contour(z,0.8 1.5);clabel(c,h) subplot(2,2,3) c,h=contour(z,4);clabel(c,h)subplot(2,2,4) contourf(z,4)例8)散點圖: scatter(X,Y,S,C)解 輸入命令: load seamount scatte

43、r(x,y,5,z)例 繪制seamount散點圖在向量X和Y的指定位置顯示彩色圈X和Y必須大小相同解 輸入命令: X,Y=meshgrid(-2:.2:2,-2:.2:3); Z=X.*exp(-X.2-Y.2); C,h=contour(X,Y,Z); clabel(C,h) %標注等值線圖中的函數(shù)值 colormap cool9)向量場圖: quiver(x,y,u,v)%表示以(x,y)為起點,用箭頭表示(u,v)代表的向量。向量場圖也是直角坐標系下的向量圖,最常用于描繪梯度場。 x,y,z=peaks(20);contour(x,y,z,10)u,v=gradient(z);hold

溫馨提示

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

評論

0/150

提交評論