MATLAB三維圖形繪制_第1頁
MATLAB三維圖形繪制_第2頁
MATLAB三維圖形繪制_第3頁
MATLAB三維圖形繪制_第4頁
MATLAB三維圖形繪制_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

會(huì)計(jì)學(xué)1MATLAB三維圖形繪制二、繪制三維網(wǎng)格圖和曲面圖1.meshgrid命令

為了繪制三維立體圖形,MATLAB的方法是將x方向劃分為m份,將y方向劃分為n份,meshgrid命令是以x、y向量為基準(zhǔn),產(chǎn)生在x-y平面的各柵格點(diǎn)坐標(biāo)值的矩陣。語法:

[X,Y]=meshgrid(x,y)說明:X、Y是柵格點(diǎn)的坐標(biāo),為矩陣;x、y為向量。例如,將x(1×m)向量和y(1×n)向量轉(zhuǎn)換為(n×m)的矩陣:第1頁/共51頁2.三維網(wǎng)格圖

三維網(wǎng)格圖是由一些四邊形相互連接在一起所構(gòu)成的一種曲面。語法:

mesh(z) %畫三維網(wǎng)線圖

mesh(x,y,z,c)說明:當(dāng)只有參數(shù)z時(shí),以z矩陣的行下標(biāo)作為x坐標(biāo)軸,把z的列下標(biāo)當(dāng)作y坐標(biāo)軸;x、y分別為x、y坐標(biāo)軸的自變量;當(dāng)有x、y、z參數(shù)時(shí),c是指定各點(diǎn)的用色矩陣,當(dāng)c省略時(shí)默認(rèn)用色矩陣是z的數(shù)據(jù)。如果x、y、z、c四個(gè)參數(shù)都有,則應(yīng)該都是維數(shù)相同的矩陣。第2頁/共51頁3.三維曲面圖

語法:

surf(z) %畫三維曲面圖

surf(x,y,z,c)說明:參數(shù)設(shè)置與mesh命令相同,c也可以省略。4.其它立體網(wǎng)線圖和曲面圖meshc命令為立體網(wǎng)狀圖加等高線;meshz為立體網(wǎng)狀圖加“圍裙”。第3頁/共51頁三、繪制三維旋轉(zhuǎn)體1、球面圖語法:

sphere(n) %產(chǎn)生單位球面,n為旋轉(zhuǎn)圓周上的分

格線條數(shù),默認(rèn)n=20。

[x,y,z]=sphere(n)%生成三個(gè)(n+1)*(n+1)階的矩陣

利用surf或mesh命令產(chǎn)生單位球面。2、柱面圖語法:

cylinder(r,n) %以母線向量r生成單位柱面,

默認(rèn)n=20,r=[1,1]。

[x,y,z]=cylinder(r,n)%生成柱面的x,y,z數(shù)據(jù)矩陣,

利用surf或mesh命令產(chǎn)生單位高度柱面。第4頁/共51頁四、立體圖形與圖軸的控制1.網(wǎng)格的隱藏語法:

hiddenoff %顯示被遮蓋的網(wǎng)格

hiddenon %隱藏被遮蓋的網(wǎng)格2.改變視角語法:

view([az,el]) %通過方位角和俯仰角改變視角

說明:az表示方位角(azimuth),el表示俯仰角(elevation)第5頁/共51頁默認(rèn)值:az=-37.5°,el=30°第6頁/共51頁五、色彩的控制1.色圖(colormap)(1)RGB三元組RGB三元數(shù)組每行表示一種色彩,數(shù)組元素R、G、B在0~1之間取值,分別表示紅、綠、藍(lán)基色的相對(duì)亮度,如下表所示。colormap([R,G,B])——

色圖設(shè)定函數(shù)colormap色圖函數(shù)——

色圖設(shè)定函數(shù)colormap色圖函數(shù)(m)——產(chǎn)生m×3的色圖矩陣

缺省64×3。第7頁/共51頁第8頁/共51頁第9頁/共51頁2.色圖的顯示和處理(1)色圖的顯示

rgbplot命令語法:

rgbplot(map)說明:map是表4.8中的各預(yù)定義色圖函數(shù),rgbplot命令可畫出以行數(shù)為自變量紅、綠、藍(lán)相對(duì)亮度分量的直線圖,反映R、G、B三色比重的變化。

colorbar命令以不同顏色來代表曲面的高度,垂直顯示顏色標(biāo)尺。第10頁/共51頁(2)濃淡處理shading【例】使用濃淡處理peaks函數(shù)曲面圖。(3)亮度處理brighten語法:

brighten(a)說明:當(dāng)0<=a<=1時(shí),色圖加亮,當(dāng)-1<=a<0時(shí),色圖變暗。第11頁/共51頁4.3MATLAB的特殊圖形繪制一、條形圖——條形圖常用于對(duì)統(tǒng)計(jì)的數(shù)據(jù)進(jìn)行作圖,特別適用于少量且離散的數(shù)據(jù)。語法:

bar(x,y) %畫條形圖

bar3(y,z,width,'參數(shù)') %畫三維條形圖【例】用條形圖表示某年一月份中3日~6日連續(xù)四天的溫度數(shù)據(jù),y矩陣的各列分別表示平均溫度、最高溫度和最低溫度,用條形圖和三維條形圖分別表示。第12頁/共51頁>>x=3:6;>>y=[5.300013.00000.40005.100011.8000-1.70003.70008.10000.60001.50007.7000-4.5000]>>bar(x,y) %畫條形圖

>>bar3(x,y) %畫三維條形圖

圖4.23(a)條形圖(b)三維條形圖第13頁/共51頁二、直方圖語法:

hist(y,m) %統(tǒng)計(jì)每段的元素個(gè)數(shù)并畫出直方圖

hist(y,x)%x是向量,用于指定所分每個(gè)數(shù)據(jù)段的中間值三、餅圖餅圖是用于顯示向量中的各元素占向量元素總和的百分比。語法:

pie(x,explode,’label’) %畫二維餅圖

pie3(x,explode,’label’) %畫三維餅圖說明:x是向量;explode是與x同長(zhǎng)度的向量,用來決定是否從餅圖中分離對(duì)應(yīng)的一部分塊,非零元素表示該部分需要分離;’label’是用來標(biāo)注餅圖的字符串?dāng)?shù)組。分段的個(gè)數(shù),默認(rèn)為10

第14頁/共51頁【例4.21】繪制四個(gè)季度支出額的餅圖。

y=[200100250400]; %四個(gè)季度支出額

explode=[0010];

pie(y,explode,{'第一季度','第二季度','第三季度','第四季度'})

第15頁/共51頁四、離散數(shù)據(jù)圖

MATLAB提供了多個(gè)繪制離散數(shù)據(jù)的命令,有stem、stem3、stairs和scatter等。【例】使用幾種繪制離散數(shù)據(jù)的命令來顯示

的離散數(shù)據(jù)。五、等高線圖語法:

contour3(Z,n) %繪制Z矩陣的三維等高線

contour(x,y,z,n)

%繪制以x和y指定x、y坐標(biāo)的二維等高線說明:n為等高線的條數(shù),省略時(shí)為自動(dòng)條數(shù)。第16頁/共51頁

x=0:0.1:2*pi;y=sin(x).*exp(-2*x);subplot(3,1,1)stem(x,y,'filled') %畫火柴桿圖

subplot(3,1,2)stairs(x,y) %畫階梯圖

subplot(3,1,3)

scatter(x,y) %畫點(diǎn)圖

第17頁/共51頁六、對(duì)數(shù)坐標(biāo)和極坐標(biāo)圖1.對(duì)數(shù)坐標(biāo)圖形語法:

semilogx(x,y,‘參數(shù)’)%繪制x為對(duì)數(shù)坐標(biāo)的曲線

semilogy(x,y,‘參數(shù)’)%繪制y為對(duì)數(shù)坐標(biāo)的曲線

loglog(x,y,‘參數(shù)’) %繪制x、y都為對(duì)數(shù)坐標(biāo)的曲線2.極坐標(biāo)圖語法:

polar(theta,radius,‘參數(shù)’) %繪制極坐標(biāo)圖說明:theta為相角,radius為離原點(diǎn)的距離。第18頁/共51頁【例4.23】求傳遞函數(shù)為的對(duì)數(shù)幅頻特性曲線,橫坐標(biāo)為w,按對(duì)數(shù)坐標(biāo)。

w=logspace(-2,3,20); %頻率w為0.01到1000Aw=1./(w.*sqrt((0.5*w).^2+1)); %計(jì)算幅頻

Lw=20*log10(Aw); %計(jì)算對(duì)數(shù)幅頻

semilogx(w,Lw)title('對(duì)數(shù)幅頻特性曲線')

第19頁/共51頁七、復(fù)向量圖

1.compass命令compass繪制的是以原點(diǎn)為起點(diǎn)的一組復(fù)向量,因此又稱為羅盤圖。語法: compass(u,v) %畫羅盤圖

compass(Z)說明:u、v分別為復(fù)向量的實(shí)部和虛部;當(dāng)只有一個(gè)參數(shù)Z時(shí),則相當(dāng)于compass(real(Z),imag(Z))。2.feather命令feather繪制的是起點(diǎn)為(k,0)的復(fù)向量圖,又稱為羽毛圖。語法:

feather(u,v) %畫羽毛圖

feather(Z)圖

4.31(a)羅盤圖(b)羽毛圖第20頁/共51頁4.4對(duì)話框——用于計(jì)算機(jī)與用戶進(jìn)行交互的界面1.輸入信息對(duì)話框輸入對(duì)話框?yàn)橛脩舻妮斎胄畔⑻峁┝私缑妫褂胕nputdlg命令創(chuàng)建。語法:answer=inputdlg(prompt,title,lineno,defans,addopts)

%創(chuàng)建輸入對(duì)話框說明:answer返回用戶的輸入,為元胞數(shù)組;prompt為提示信息字符串,用引號(hào)括起來,為元胞數(shù)組;title為標(biāo)題字符串,用引號(hào)括起來,可以省略;lineno用于指定輸入值的行數(shù),可以省略;defans為輸入項(xiàng)的默認(rèn)值,用引號(hào)括起來,是元胞數(shù)組可以省略;addopts指定對(duì)話框是否可以改變大小,取on或off,省略時(shí)為off表示不能改變大小。第21頁/共51頁【例】利用輸入對(duì)話框輸入二階系統(tǒng)的系數(shù)。

程序分析:prompt、defans和p都是元胞數(shù)組。如果單擊“Cancel”按鈕,則返回空的元胞數(shù)組。>>prompt={'請(qǐng)輸入阻尼系數(shù)','請(qǐng)輸入無阻尼振蕩頻率'};>>defans={'0.707','1'};>>p=inputdlg(prompt,'輸入?yún)?shù)',1,defans)

第22頁/共51頁2.輸出信息對(duì)話框(1)消息框語法:

msgbox(message,title,icon,icondata,iconcmap,…CreateMode)%創(chuàng)建消息框說明:message為顯示的信息,可以是字符串或數(shù)組;title為標(biāo)題,是字符串可省略;icon為顯示的圖標(biāo),可取值為“none”(無圖標(biāo))、“error”(出錯(cuò)圖標(biāo))、“help”(幫助圖標(biāo))、“warn”(警告圖標(biāo))或“custom”(自定義圖標(biāo)),也可省略;當(dāng)使用“custom”時(shí),用icondata定義圖標(biāo)的數(shù)據(jù),用iconcmap定義圖標(biāo)的顏色映象;CreateMode為對(duì)話框的產(chǎn)生模式可省略,取值為“modal”(有模式)、“replace”(無模式可代替同名的對(duì)話框)、“non-modal”(默認(rèn)為無模式)。(有模式對(duì)話框是指在對(duì)話框關(guān)閉之前,用戶無法進(jìn)行其它程序的運(yùn)行)第23頁/共51頁【上例續(xù)】使用消息框顯示當(dāng)阻尼系數(shù)大于1時(shí)的警告信息,如圖所示。>>msgbox('阻尼系數(shù)輸入范圍出錯(cuò)','警告','warn')

第24頁/共51頁(2)其它對(duì)話框【例續(xù)】使用警告對(duì)話框顯示當(dāng)阻尼系數(shù)大于1時(shí)的警告信息。

>>warndlg('阻尼系數(shù)輸入范圍出錯(cuò)','警告')

【例續(xù)】使用出錯(cuò)提示框顯示當(dāng)阻尼系數(shù)小于0時(shí)出錯(cuò)信息。

>>errordlg('阻尼系數(shù)輸入出錯(cuò)','出錯(cuò)')

【例續(xù)】使用幫助提示框顯示阻尼系數(shù)的范圍。>>helpdlg('欠阻尼系數(shù)應(yīng)大于0小于1','幫助')

第25頁/共51頁(3)提問提示框【例續(xù)】使用提問提示框使用戶確認(rèn)。>>button=questdlg('是否確認(rèn)?','Areyousure?','Yes','No','Yes')

程序分析:有兩個(gè)按鈕,默認(rèn)的指定按鈕為“Yes”。即當(dāng)用戶按下回車鍵時(shí),返回“Yes”,當(dāng)用戶單擊按鈕“No”時(shí),返回“No”。第26頁/共51頁3.文件管理對(duì)話框(1)打開文件對(duì)話框uigetfile語法:

[FileName,PathName]=uigetfile(FiltrEspec,Title,x,y)說明:FileName和PathName分別為返回的文件名和路徑,可省略,如果按“取消”按鈕或發(fā)生錯(cuò)誤,都返回0;FiltrEspec指定初始時(shí)顯示的文件名,可以用通配符“*”表示,當(dāng)省略時(shí),則自動(dòng)列出當(dāng)前路徑下的所有“*.m”文件和目錄;Title為對(duì)話框標(biāo)題,可省略;x、y分別指定對(duì)話框在屏幕上的位置(到屏幕左上角的距離),單位是像素,可省略。第27頁/共51頁【例】利用打開文件對(duì)話框選擇MATLAB目錄下的文件license.txt,如圖所示。程序分析:在屏幕的左上角位置顯示打開文件對(duì)話框,單擊“打開”按鈕,返回文件名和路徑名到fname和pname變量。>>[fname,pname]=uigetfile('*.*','打開文件')

第28頁/共51頁(2)保存文件對(duì)話框uiputfile語法:

[FileName,PathName]=uiputfile(FiltrEspec,Title,x,y)【例續(xù)】利用保存文件對(duì)話框來選擇文件。>>[fname1,pname1]=uiputfile('Ex0431.mat','保存文件')

第29頁/共51頁什么是句柄圖形句柄圖形(HandleGraphics):利用底層繪圖函數(shù),通過對(duì)對(duì)象屬性的設(shè)置與操作實(shí)現(xiàn)繪圖。句柄圖形中所有圖形操作都是針對(duì)圖形對(duì)象而言的。句柄圖形充分體現(xiàn)了面向?qū)ο蟮某绦蛟O(shè)計(jì)。4.5句柄圖形第30頁/共51頁句柄圖形的功能句柄圖形可以隨意改變matlab生成圖形的方式。句柄圖形允許你定制圖形的許多特性,無論是對(duì)圖形做一點(diǎn)小改動(dòng),還是影響所有圖形輸出的整體改動(dòng)。句柄圖形的特性高層繪圖函數(shù)是無法實(shí)現(xiàn)的第31頁/共51頁一、句柄圖形體系句柄圖形是一種面向?qū)ο蟮睦L圖系統(tǒng),又稱為低層圖形。句柄圖形體系由若干個(gè)圖形對(duì)象組成,如圖所示。第32頁/共51頁什么是句柄?句柄是圖形對(duì)象的標(biāo)識(shí)代碼,標(biāo)識(shí)代碼含有圖形對(duì)象的各種必要的屬性信息。各圖形對(duì)象的句柄數(shù)據(jù)格式:根屏幕0

圖形窗口整數(shù),表示圖形窗口數(shù)其它對(duì)象對(duì)應(yīng)的符點(diǎn)數(shù)句柄(handle)與句柄操作第33頁/共51頁

所有能創(chuàng)建圖形對(duì)象的matlab函數(shù)都可給出所創(chuàng)建圖形對(duì)象的句柄例:創(chuàng)建1號(hào)窗口,返回句柄

h=figure(1)h=1返回值為窗口號(hào)數(shù)例:h=line(1:6,1:6)創(chuàng)建線對(duì)象的同時(shí)也建立了一個(gè)唯一的句柄變量h是句柄值——符點(diǎn)數(shù)第34頁/共51頁二、圖形對(duì)象的操作

1.圖形對(duì)象的創(chuàng)建

每次創(chuàng)建一個(gè)對(duì)象時(shí),就為它建立一個(gè)唯一的句柄。每個(gè)命令的格式及功能如表所示。第35頁/共51頁2.對(duì)象句柄的獲取

(1)當(dāng)前對(duì)象句柄的獲取MATLAB提供了三個(gè)獲取當(dāng)前對(duì)象句柄的命令:語法:

gcf %獲取當(dāng)前圖形窗口句柄

gca %獲取當(dāng)前坐標(biāo)軸句柄

gco %獲取被鼠標(biāo)最近點(diǎn)擊對(duì)象的句柄【例】使用上述命令獲取圖形對(duì)象的句柄。第36頁/共51頁(2)查找對(duì)象用命令findobj可以快速查找所有對(duì)象,以及獲取指定屬性值的對(duì)象句柄。語法:

h=findobj %返回根對(duì)象和所有子對(duì)象的句柄

h=findobj(h_obj)%返回指定對(duì)象的句柄

h=findobj(‘PropertyName’,PropertyValue)

%返回符合指定屬性值的對(duì)象句柄

h=findobj(h_obj,‘PropertyName’,PropertyValue)

%在指定對(duì)象及子對(duì)象中查找符合指定屬性

值的對(duì)象句柄說明:h_obj為指定對(duì)象句柄;PropertyName為屬性名;PropertyValue為屬性值?!纠渴褂胒indobj命令獲取圖形對(duì)象的句柄。第37頁/共51頁(3)追溯父對(duì)象和子對(duì)象的句柄如果一個(gè)對(duì)象的句柄已知,則可以追溯到其父對(duì)象和子對(duì)象的句柄。語法:

h_parent=get(h_obj,’parent’) %追溯父對(duì)象的句柄

h_children=get(h_obj,’children’)

%追溯子對(duì)象的句柄3.對(duì)象句柄的刪除刪除圖形對(duì)象使用命令delete(h_obj),該命令將刪除句柄所指對(duì)象和所有子對(duì)象,而且不提示確認(rèn),使用時(shí)要小心。第38頁/共51頁三、圖形對(duì)象屬性的獲取和設(shè)置

1.創(chuàng)建對(duì)象時(shí)設(shè)置屬性對(duì)象的屬性可以在創(chuàng)建時(shí)設(shè)置,在創(chuàng)建時(shí)句柄圖形對(duì)象可以設(shè)置多個(gè)屬性?!纠?.29】創(chuàng)建圖形對(duì)象。

>>h_fig=figure('color','red','menubar','none','position',[0,0,300,300])程序分析:創(chuàng)建一個(gè)窗口,背景為紅色,沒有菜單條,在屏幕的(0,0)位置,寬度、高度為300。第39頁/共51頁2.用get函數(shù)獲取指定對(duì)象的屬性值語法:

get(h_obj) %獲取句柄對(duì)象所有屬性的當(dāng)前值

get(h_obj,'PropertyName')

%獲取句柄對(duì)象指定屬性的當(dāng)前值3.用set函數(shù)設(shè)置對(duì)象的屬性值語法:

set(h_obj) %顯示句柄對(duì)象所有屬性和屬性值

set(h_obj,'PropertyName')

%顯示句柄對(duì)象指定屬性名的屬性值

set(h_obj,'PropertyName','PropertyValue')

%設(shè)置句柄對(duì)象指定屬性的屬性值

set(h_obj,'PropertyStructure')

%用結(jié)構(gòu)數(shù)組設(shè)置句柄對(duì)象指定屬性的屬性值第40頁/共51頁4.6圖形用戶界面(GUI)設(shè)計(jì)MATLAB設(shè)計(jì)圖形用戶界面的方法有兩種:

——使用可視化的界面環(huán)境和通過編寫程序。一、可視化的界面環(huán)境MATLAB提供了一個(gè)可視化的圖形用戶界面開發(fā)環(huán)境GUIDE(GraphicalUserInterfaceDevelopmentEnvironment),打開可視化界面環(huán)境的方法有以下幾種:(1)選擇菜單“File”——“New”——“GUI”命令;(2)在命令窗口輸入“Guide”命令或輸入“GuideFilename”就會(huì)出現(xiàn)Guide快速開始界面。第41頁/共51頁用戶界面開發(fā)環(huán)境被分為四個(gè)部分:菜單欄Guide工具欄圖形控件面板界面編輯客戶區(qū)第42頁/共51頁GUI開發(fā)過程可分為4個(gè)步驟:菜單的設(shè)計(jì)和布局菜單的編程GUI界面的設(shè)計(jì)和布局GUI的編程GUIDE環(huán)境將建立的GUI文件保存為兩個(gè)伴隨文件:

——FIG文件和M文件第43頁/共51頁二、GUIDE常用工具LayoutEditor:布局編輯器AlignmentTool:對(duì)齊工具PropertyInspector:對(duì)象屬性觀察器MenuEditor:菜單編輯器ObjectBrowser:對(duì)象瀏覽器第44頁/共51頁三、菜單1.使用菜單編輯器創(chuàng)建菜單2.編程創(chuàng)建菜單3.回調(diào)函數(shù)語法:h_menu=uimenu(h_parent,‘propertyname’,propervalue,…)第45頁/共51頁【例】編程創(chuàng)建如圖所示的菜單。h_fig=gcfh_fig=1h_menu=uimenu(h_fig,'label','Paint'); %創(chuàng)建菜單Painth_menu1=uimenu(h_menu,'label','Circle');

溫馨提示

  • 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)論