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

下載本文檔

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

文檔簡(jiǎn)介

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

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

3、文件說明:Matlab的應(yīng)用程序也以M文件保存。在Matlab中,點(diǎn):File-New-M-file;在編輯窗口中輸入程序內(nèi)容點(diǎn):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例如:計(jì)算 f(1,2), 只需在Matlab命令窗口鍵入命令:x=1,2fun(x)結(jié)合軟件介紹。重點(diǎn):斷點(diǎn)設(shè)置和調(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顯示當(dāng)前工作空間中所有變量的簡(jiǎn)單列表whos列出變量的大小,數(shù)據(jù)格式等詳細(xì)信息clear清除工作空間中的所有變量clear 變量名清除指定的變量load從磁盤文件中恢復(fù)變量save保存工作空間變量pack整理工作空間內(nèi)存size(變量名)顯示當(dāng)前工作空間中變量的尺寸length(變量名)顯示當(dāng)前工作空間中變量的長(zhǎng)度disp(變量名)顯示當(dāng)前工作空間中變量quit或exit

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

6、輸入。x=logspace(a,b,n) 創(chuàng)建從10a開始,到10b結(jié)束,有n個(gè)元素的對(duì)數(shù)分隔行向量. x=first:increment:last 創(chuàng)建從first開始,加increment計(jì)數(shù),last結(jié)束的行向量。x=linspace(first,last,n) 創(chuàng)建從first開始,到last結(jié)束,有n個(gè)元素的行向量。2、 數(shù)組元素的訪問(3)直接使用元素編址序號(hào). x(a b c d) 表示提取數(shù)組x的第a、b、c、d個(gè)元素構(gòu)成一個(gè)新的數(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個(gè)元素開始,以步長(zhǎng)為b到第c個(gè)元素(但不超過c),b可以為負(fù)數(shù),b缺損時(shí)為1. eg. x=1,2,3,4,5,6; y=x(1:2:6) (1)訪問一個(gè)元素: x(i)表示訪問數(shù)組x的第i個(gè)元素.3、數(shù)組的方向 前面例子中的數(shù)組都是一行數(shù)列,是行方向分布的. 稱之為行向量. 數(shù)組也可以是列向量,它的數(shù)組操作和運(yùn)算與行向量是一樣的,唯一的區(qū)別是結(jié)果以列形式顯示. 產(chǎn)生列向量有兩種方法: 直接產(chǎn)生 例 c=1;2;3;4 轉(zhuǎn)置產(chǎn)生 例 b=1 2 3 4; c=b 說明:以空格或逗號(hào)分隔的元素指定的是不同列的元素,而以分號(hào)分隔的元素指定了不同行的元素. 4、數(shù)組的運(yùn)算 (1)標(biāo)

8、量-數(shù)組運(yùn)算 數(shù)組對(duì)標(biāo)量的加、減、乘、除、乘方是數(shù)組的每個(gè)元素對(duì)該標(biāo)量施加相應(yīng)的加、減、乘、除、乘方運(yùn)算. 設(shè):a=a1,a2,an, c=標(biāo)量則: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ù)組運(yùn)算 當(dāng)兩個(gè)數(shù)組有相同維數(shù)時(shí),加、減、乘、除、冪運(yùn)算可按元素對(duì)元素方式進(jìn)行的,不同大小或維數(shù)的數(shù)組是不能進(jìn)

9、行運(yùn)算的. 設(shè):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ù) 三、 矩 陣 逗號(hào)或空格用于分隔某一行的元素,分號(hào)用于區(qū)分不同的行. 除了分號(hào),在輸入矩陣時(shí),按Enter+Shift鍵也表示開始一新行. 輸入矩陣時(shí),嚴(yán)格要求所有行有相同的列. 例 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)生一個(gè)m行、n列的單位矩陣D=ones(m,n) 產(chǎn)生一個(gè)m行、n列元素全為1的矩陣C=zeros(m,n) 產(chǎn)生一個(gè)m行、n列的零矩陣A= 產(chǎn)生一個(gè)空矩陣(空矩陣的大小為零)F=diag(x,k) 創(chuàng)建一個(gè)主對(duì)角元對(duì)應(yīng)于數(shù)組x的對(duì)角矩陣f=diag(X,k) 提取二維矩陣X的第k條對(duì)角線元素組成的一維矩陣B=rand(m,n) 產(chǎn)生一個(gè)m行、n列的隨機(jī)矩陣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拉伸為一個(gè)列向量:A(:) (2)矩陣-矩陣運(yùn)算 3、矩陣的運(yùn)算(1)標(biāo)量-矩陣運(yùn)算 2矩陣運(yùn)算:矩陣加法:A+B矩陣乘法:A*B方陣的行列式:det(A)方陣的逆:inv(A)方陣的特征值與特征向量:V,D=eigA1 元素對(duì)元素的運(yùn)算,同數(shù)

12、組-數(shù)組運(yùn)算。同標(biāo)量-數(shù)組運(yùn)算。練習(xí):3.對(duì)上題中A求出其特征值及特征向量。4、常見的矩陣操作(1)矩陣索引與尋址 1數(shù)字索引方式 A(m) %單下標(biāo)索引訪問矩陣第m個(gè)元素 A(m,n) %雙下標(biāo)索引訪問矩陣第m行第n列的元素 A(m:n) %單下標(biāo)索引訪問矩陣第m到第n個(gè)元素 A(m1:m2,n1:n2) %雙下標(biāo)索引訪問矩陣第m1至m2行,第n1至n2列的元素 A(m1,m2,n1,n2,) %雙下標(biāo)索引訪問矩陣第m1,m2,行,第n1,n2,列的元素2單下標(biāo)索引和雙下標(biāo)索引的轉(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)系運(yùn)算產(chǎn)生邏輯索引A(B)=0 通過邏輯索引訪問原矩陣元素,并重新賦值(3)索引擴(kuò)展若對(duì)超出矩陣范圍的元素賦值,則默認(rèn)擴(kuò)展至該元素,且補(bǔ)充元素默認(rèn)賦值為0,可通過下例了解A=eye(3)A(4,6)=25(4)矩陣翻轉(zhuǎn) 函數(shù)及語(yǔ)法說明fliplr(A)左右翻轉(zhuǎn)Aflipud(A)上下翻轉(zhuǎn)Aflipdim(A,k)按k指定的方向翻轉(zhuǎn)Arot90(A,k)逆時(shí)針k*90度翻轉(zhuǎn)A(5)矩陣查找 可通過下面一段程序了解此用法:A= rand(3,5)B=(A0.3)&(A0.5)C=find(B) %查找邏輯矩陣

14、中的非零元素,返回復(fù)合關(guān)系的元素索 引單下標(biāo)A(C) %實(shí)現(xiàn)元素訪問(6)矩陣排序 練習(xí):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表示對(duì)每列排序,dim=2表示對(duì)每行排序,缺省時(shí)默認(rèn)為1%mode代表排序模式,mode=asend時(shí)為升序,mode=descend時(shí)為降序%IX為排序后各元素在原矩陣中的行位置或列位置的索引(7)多維矩陣 練習(xí):通過下面的小段程序體會(huì)其操作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)又表示什么? 四、邏輯運(yùn)算及控制流 1、邏輯運(yùn)算(1)關(guān)系操作符(2)邏輯運(yùn)算符邏輯操作符說明與或非2、控制流MATLAB提供以下幾種決策或控制流結(jié)構(gòu): for循環(huán)、while循環(huán)、if-else-end結(jié)構(gòu)、swich-case-otherwise結(jié)構(gòu)、continue語(yǔ)句(直接進(jìn)入下次循環(huán))、break語(yǔ)句(退出循環(huán))、try-catch-end結(jié)構(gòu)(錯(cuò)誤控制)、retune語(yǔ)句(程序終止). 這些結(jié)構(gòu)經(jīng)常包含大量的MATLAB命令,故經(jīng)常出現(xiàn)在MATLAB程序中,而不是

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

17、命令相反,while循環(huán)以不定的次數(shù)求一組語(yǔ)句的值. eg. 設(shè)銀行年利率為11.25%。將10000元錢存入銀行,問多長(zhǎng)時(shí)間會(huì)連本帶利翻一番?3、if-elseif-end結(jié)構(gòu)(1)有一個(gè)選擇的一般形式是: if expression commands end 如果在表達(dá)式(expression)里的所有元素為真,就執(zhí)行if和end語(yǔ)句之間的命令串commands. 先建立M文件fun1.m定義函數(shù)f(x),再在Matlab命令窗口輸入fun1(2),fun1(-1)即可。2) 有三個(gè)或更多的選擇的一般形式是: 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)即可。練習(xí):用此結(jié)構(gòu)編寫輸入年份判斷是否閏年的程序。對(duì)以下問題,編寫M文件:(1)用起泡法對(duì)10個(gè)數(shù)由小到大排序. 即將相鄰兩個(gè)數(shù)比較,將小的調(diào)到前頭.(2)有一個(gè) 矩陣,編程求出其最大值及其所處的位置.(3)編程求實(shí)驗(yàn)練習(xí)五、Matlab作圖1.二維圖形2.三維圖形3.圖形處理4.特殊二、三維圖形Matlab作圖是通過描點(diǎn)、

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

20、tyName意義選項(xiàng)LineWidth線寬數(shù)值,如1MarkerEdgeColor標(biāo)記點(diǎn)邊框線條顏色顏色字符,如bMarkerFaceColor標(biāo)記點(diǎn)內(nèi)部填充顏色顏色字符MarkerSize標(biāo)記點(diǎn)大小數(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)解練習(xí) 在同一個(gè)窗口中用不同顏色不同模式畫出sin(x),sin(2x),sin(3x)的圖形。 (2)符號(hào)函數(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ù)名或是獨(dú)立變量為x的字符串. 2 fplot函數(shù)不能畫參數(shù)方程和隱函數(shù)圖形,但在一個(gè)圖上可以畫多個(gè)圖形。fplot(fun,lims)表示繪制字符串fun指定的函數(shù)在lims=xmin,xmax的圖形.注:其中fun是用m文件寫好的函數(shù),同時(shí)要說明的是雖然fplot也是一元函數(shù)作圖函數(shù),但是不同的是fplot采用自適應(yīng)步長(zhǎng)控制來畫出函數(shù)fun的示意圖,在函數(shù)的變化激烈的區(qū)間,采用小的步長(zhǎng),否則采用大的步長(zhǎng),可以使圖形盡可能精確,但缺點(diǎn)是需要寫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);然后運(yùn)行以下命令: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、對(duì)數(shù)坐標(biāo)圖 在很多實(shí)際問題中,通過對(duì)數(shù)據(jù)進(jìn)行對(duì)數(shù)轉(zhuǎn)換可以更清晰地看出數(shù)據(jù)的某些特征,在對(duì)數(shù)坐標(biāo)系中描繪數(shù)據(jù)點(diǎn)的曲線,可以直接地表現(xiàn)對(duì)數(shù)轉(zhuǎn)換.對(duì)數(shù)轉(zhuǎn)換有雙對(duì)數(shù)坐標(biāo)轉(zhuǎn)換和單軸對(duì)數(shù)坐標(biāo)轉(zhuǎn)換兩種.用loglog函數(shù)可以實(shí)現(xiàn)雙對(duì)數(shù)坐標(biāo)轉(zhuǎn)換,用semilogx和semilogy函數(shù)可以實(shí)現(xiàn)單軸對(duì)數(shù)坐標(biāo)轉(zhuǎn)換.loglog(Y) 表示 x、y坐標(biāo)都是對(duì)數(shù)坐標(biāo)系semilogx(Y) 表示 x坐標(biāo)軸是對(duì)數(shù)坐標(biāo)系semilogy() 表示y坐標(biāo)軸是對(duì)數(shù)坐標(biāo)系plotyy 有兩個(gè)y坐標(biāo)軸,一個(gè)在左邊,一個(gè)在右邊例 用方形標(biāo)記創(chuàng)建一個(gè)簡(jiǎn)單的loglog解 輸入命令: x=logspace(-1,2); loglog(

25、x,exp(x),-s) grid on %標(biāo)注格柵例 創(chuàng)建一個(gè)簡(jiǎn)單的半對(duì)數(shù)坐標(biāo)圖例 繪制y=x3的函數(shù)圖、對(duì)數(shù)坐標(biāo)圖、半對(duì)數(shù)坐標(biāo)圖解 輸入命令: 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維向量,分別表示曲線上點(diǎn)集的橫坐標(biāo)、縱坐標(biāo)、函數(shù)值指定顏色、線形等 plot3(x,y,z)2)多條曲線例 畫多條曲線觀察函數(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)(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 %將當(dāng)前圖形變得平滑1) surf(x,y,z)畫出數(shù)據(jù)點(diǎn)(x,y,z)表示的曲面數(shù)據(jù)矩陣。分別表示數(shù)據(jù)點(diǎn)的橫坐標(biāo)、縱坐標(biāo)、函數(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ù)點(diǎn)的橫坐標(biāo)、縱坐標(biāo)、函數(shù)值3)meshz(X,Y,Z) 在網(wǎng)格周圍畫一個(gè)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)在圖形上加格柵、圖例和標(biāo)注定制坐標(biāo)圖形保持分割窗口

29、縮放圖形改變視角3圖形處理動(dòng) 畫(1)在圖形上加格柵、圖例和標(biāo)注1)grid on 加格柵在當(dāng)前圖上 grid off 刪除格柵2)hh = xlabel(string) 在當(dāng)前圖形的x軸上加圖例stringhh = ylabel(string)在當(dāng)前圖形的y軸上加圖例stringhh = title(string)在當(dāng)前圖形的頂端上加圖例stringhh = zlabel(string)在當(dāng)前圖形的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)用鼠標(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畫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(

31、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)缺省值A(chǔ)xis autox、y、z的最大、最小值(3)圖形保持 1) hold on hold off例 將y=sin(x)、y=cos(x)分別用點(diǎn)和線畫出在同一屏幕上。解 x=linspace(0,2*pi,30); y=sin(x); z=

32、cos(x); plot(x,z) hold on plot(x,y)保持當(dāng)前圖形, 以便繼續(xù)畫圖到當(dāng)前圖上釋放當(dāng)前圖形窗口2) figure(h)例 區(qū)間0,2*pi新建兩個(gè)窗口分別畫出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) 劃分整個(gè)作圖區(qū)域?yàn)閙r

33、ows*ncols塊(逐行對(duì)塊訪問)并激活第thisplot塊,其后的作圖語(yǔ)句將圖形畫在該塊上。 激活已劃分為mrows*ncols塊的屏幕中的第thisplot塊,其后的作圖語(yǔ)句將圖形畫在該塊上。命令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 單擊鼠標(biāo)左鍵,則在當(dāng)前圖形窗口中,以鼠標(biāo)點(diǎn)中的點(diǎn)為中心的圖形放大2倍;單擊鼠標(biāo)右鍵,則縮小2倍.解 x=linspace(0,2*pi,30); y=sin(x); Plot(x,y) zoom on 例 縮放y=

35、sin(x)的圖形zoom off為當(dāng)前圖形打開縮放模式關(guān)閉縮放模式(6)改變視角view1)view(a,b) 命令view(a,b)改變視角到(a,b),a是方位角,b為仰角。缺省視角為(-37.5,30)。 view用空間矢量表示的,三個(gè)量只關(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) 動(dòng)畫 Moviein(),getframe,movie() 函數(shù)Moviein()產(chǎn)生一個(gè)幀矩陣來存放動(dòng)畫中的幀;函數(shù)getframe對(duì)當(dāng)前的圖象進(jìn)行快照;函數(shù)movie()按順序回放各幀。 例 將曲面peaks做成動(dòng)畫。 解 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)極坐標(biāo)圖:polar (theta,rho,s) 用角度theta(弧度表示)和極半徑rho作極坐標(biāo)圖,用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) %把單個(gè)數(shù)據(jù)顯示為縱向柱條 barh(data,mode) %把單個(gè)數(shù)據(jù)顯示為橫向柱條 mode默認(rèn)情況下為grouped模式,則data的每行看作一組畫在坐標(biāo)上。若指定為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ù)點(diǎn)累疊繪制,且把每一個(gè)數(shù)據(jù)集合的相鄰點(diǎn)用線條連接,把每一個(gè)數(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) %當(dāng)輸入數(shù)據(jù)總和超過1,pie函數(shù)會(huì)自動(dòng)計(jì)算每一數(shù)據(jù)在總體中的比例; %當(dāng)輸入數(shù)據(jù)總和小于1時(shí),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個(gè)

40、區(qū)間,直方圖中用每一個(gè)柱條代表處于該區(qū)間中的數(shù)據(jù)點(diǎn)數(shù)目;number缺省時(shí)區(qū)間長(zhǎng)度為1. rose(data) %極坐標(biāo)下的直方圖,也成為玫瑰圖。例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ì)的火柴桿圖,把每一個(gè)數(shù)據(jù)點(diǎn)用一個(gè)垂直于橫軸的火柴棒來表示,火柴頭的位置表示數(shù)據(jù)點(diǎn),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個(gè)等值線的二維等值線。最常用于顯示多元函數(shù),尤其是二元函數(shù)的函數(shù)值變化趨勢(shì)。clabel(c,h) 標(biāo)注等值線圖中的函數(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)散點(diǎn)圖: scatter(X,Y,S,C)解 輸入命令: load seamount scatte

43、r(x,y,5,z)例 繪制seamount散點(diǎn)圖在向量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) %標(biāo)注等值線圖中的函數(shù)值 colormap cool9)向量場(chǎng)圖: quiver(x,y,u,v)%表示以(x,y)為起點(diǎn),用箭頭表示(u,v)代表的向量。向量場(chǎng)圖也是直角坐標(biāo)系下的向量圖,最常用于描繪梯度場(chǎng)。 x,y,z=peaks(20);contour(x,y,z,10)u,v=gradient(z);hold

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論