matlab圖形處理功能課件_第1頁
matlab圖形處理功能課件_第2頁
matlab圖形處理功能課件_第3頁
matlab圖形處理功能課件_第4頁
matlab圖形處理功能課件_第5頁
已閱讀5頁,還剩349頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

第六章圖形處理功能

第六章圖形處理功能二維平面圖形的繪制三維平面圖形的繪制標準數組坐標軸的控制和圖形標注句柄圖形第六章圖形處理功能第六章圖形處理功能第一節二維平面圖形的繪制一、基本二維繪圖命令二、線型、標記和顏色三、圖形窗口分割四、特殊二維圖形

第六章圖形處理功能第一節二維平面圖形的繪制第六章圖形處理功能第二章數組的運算基礎一、基本二維繪圖命令

【例6-1】繪制單矢量曲線圖。在命令窗口輸入矢量并繪圖>>y=[00.62.358.211.61517.819.620];>>plot(y)結果如圖6-1所示:

第六章圖形處理功能第二章數組的運算基礎一、基本二維繪圖命令第六

圖6-1單矢量曲線圖第六章圖形處理功能圖6-1單矢量曲線圖第六章【例6-2】繪制y為復向量的單矢量曲線圖。>>x=-1:.1:1;>>y=x.^2;>>Y=x+y*i;>>plot(Y)

結果如圖6-2所示:

第六章圖形處理功能【例6-2】繪制y為復向量的單矢量曲線圖。第六章圖

圖6-2復向量單矢量曲線圖第六章圖形處理功能圖6-2復向量單矢量曲線圖第六章【例6-3】繪制雙矢量曲線圖。>>x=linspace(0,2*pi,30);>>y=sin(x);>>plot(x,y)

結果如圖6-3所示:

第六章圖形處理功能【例6-3】繪制雙矢量曲線圖。第六章圖形處理功能

圖6-3x和y均為矢量時的雙矢量曲線圖第六章圖形處理功能圖6-3x和y均為矢量時的雙矢量曲線圖【例6-4】繪制x為矢量,y為矩陣時的二維圖形。>>x=0:0.04:8;%x為1×201的矩陣>>y=[cos(x);sin(x)];%y為2×201的矩陣>>plot(x,y)結果如圖6-4所示。第六章圖形處理功能【例6-4】繪制x為矢量,y為矩陣時的二維圖形。第六章

圖6-4x為矢量,y為矩陣時的二維圖形第六章圖形處理功能圖6-4x為矢量,y為矩陣時的二維圖形第

【例6-5】繪制x為矩陣,y為矢量時的二維圖形。>>x1=0:.1:5;x2=1:.1:6;x3=2:.1:7;>>x=[x1;x2;x3];%x為3×51的矩陣>>y=sin(x3);%y為1×51的矢量>>plot(x,y)結果如圖6-5所示。第六章圖形處理功能【例6-5】繪制x為矩陣,y為矢量圖6-5x為矩陣,y為矢量時的二維圖形第六章圖形處理功能圖6-5x為矩陣,y為矢量時的二維圖形第六章圖形【例6-6】x和y均為矩陣時的二維圖形。>>x1=0:0.1:5;x2=1:.1:6;x3=2:0.1:7;>>x=[x1;x2;x3];%x為3×51的矩陣>>y1=sin(x1);y2=0.6*sin(x2);y3=0.2*sin(x3);>>y=[y1;y2;y3];%y為3×51的矩陣>>plot(x,y);結果如圖6-6所示。第六章圖形處理功能【例6-6】x和y均為矩陣時的二維圖形。圖6-6x和y均為矩陣時的二維圖形第六章圖形處理功能圖6-6x和y均為矩陣時的二維圖形第六章圖形處提示:使用plot(x,y)繪圖時,若x和y均是矢量或均是矩陣,

要求x和y的均有相同的size;若x和y中有一個是矢

量,有一個是矩陣,要求矢量的的列數與矩陣的列

數相等。

第六章圖形處理功能第六章圖形處理功能二、線型、標記和顏色第六章圖形處理功能顏色標記線型符號含義符號含義符號含義B藍色.點號-實線G綠色o圓圈:點線R紅色×叉號-.點劃線C青色+加號--虛線M品紅色*星號________Y黃色s方形________K黑色d菱形________W白色ˇ上三角符________________^下三角符________________<左三角符________________>右三角符________________p五星符________________h六星符________表6-2繪圖指令的顏色、標記和線型二、線型、標記和顏色第六章圖形處理功能顏色

注意:如果用戶沒有聲明是那一種線型時,Matlab的曲線線型默認為實線、藍色。如果沒有設置標記,就不會畫出標記。當用戶選擇了一種標記時,就會在每個數據點的位置畫出所選擇的標記符號,但是不會用直線連接這些標記點。第六章圖形處理功能注意:如果用戶沒有聲明是那一種線型時,Matlab第【例6-7】線型、標記和顏色設置實例。>>x=0:pi/20:2*pi;>>y=sin(x);>>y1=sin(x-0.25);>>y2=sin(x-0.5);>>y3=sin(x-0.75);>>plot(x,y)%使用默認曲線顏色和線型,沒有標記>>Holdon%保留上面的曲線y>>plot(x,y1,‘:k’)%定義曲線顏色為黑色,線型為虛線,沒有定義標記>>Holdon%保留上面的曲線y1>>plot(x,y2,'om')%定義曲線為品紅色,標記為空心圓>>Holdon%保留上面的曲線y2>>plot(x,y3,‘-.gp’)%定義曲線為綠色,線型為點劃線,標記為五角星第六章圖形處理功能【例6-7】線型、標記和顏色設置實例。第六章圖形處圖6-7線型、標記和顏色的設置第六章圖形處理功能圖6-7線型、標記和顏色的設置第六章圖形處理功能三、圖形窗口分割第六章圖形處理功能【例6-8】圖形窗口分割設置示例1>>x=linspace(0,2*pi,30);>>y=sin(x);z=cos(x);>>a=sin(x).*cos(x);>>b=sin(x)./cos(x);>>subplot(2,2,1);>>plot(x,y)>>axis([0,2*pi,-11]);>>title('sin(x)')>>subplot(2,2,2);>>plot(x,z)三、圖形窗口分割第六章圖形處理功能【例6-8】圖形>>axis([0,2*pi,-1,1]);title('cos(x)')>>subplot(2,2,3);plot(x,a)>>axis([0,2*pi,-11]);title('sin(x)cos(x)')>>subplot(2,2,4);plot(x,b)>>axis([0,2*pi,-20,20]);title('sin(x)/cos(x)')結果如圖6-8所示。第六章圖形處理功能>>axis([0,2*pi,-1,1]);title('c

圖6-8圖形窗口分割設置示例1第六章圖形處理功能圖6-8圖形窗口分割設置

【例6-9】圖形窗口分割設置示例2>>subplot('position',[0.10.10.350.8])>>yn=randn(10000,1);>>hist(yn,20)>>subplot('position',[0.550.550.350.35])>>sphere>>subplot('position',[0.550.10.350.35])>>membrane結果如圖6-9所示。第六章圖形處理功能

【例6-9】圖形窗口分割設置示例2第六章圖形處理圖6-9圖形窗口分割設置示例2

第六章圖形處理功能圖6-9圖形窗口分割設置示例2第六章圖形處理功四、特殊二維圖形

1、條形圖的繪制

bar繪制二維垂直條形圖bar3繪制三維垂直條形圖barh繪制二維水平條形圖bar3h繪制三維水平條形圖第六章圖形處理功能四、特殊二維圖形1、條形圖的繪制【例6-10】繪制二維條形圖示例>>x=-3:0.2:3;>>y=x.^2;>>subplot(1,2,1)>>bar(x,y)%繪制二維垂直條形圖>>subplot(1,2,2)>>barh(x,y)%繪制二維水平條形圖結果如圖6-10所示。第六章圖形處理功能【例6-10】繪制二維條形圖示例第六章圖形處理功能圖6-10二維條形圖繪制示例第六章圖形處理功能圖6-10二維條形圖繪制示例第六章圖形處理功能【例6-11】繪制指定x坐標的條形圖>>x=[134610];>>Y=[986;246;629;576;943];>>subplot(1,2,1)>>bar(x,Y)>>subplot(1,2,2)>>bar(x,Y,'stack')結果如圖6-10所示。第六章圖形處理功能【例6-11】繪制指定x坐標的條形圖第六章圖形處理圖6-11指定x坐標的二維條形圖(a)bar(x,Y);(b)bar(x,Y,’stack’)第六章圖形處理功能圖6-11指定x坐標的二維條形圖第六章圖形處理功【例6-12】繪制三維條形圖的示例>>y=[967;259;624;578;942];>>subplot(1,3,1)>>bar3(y,'group')>>title('bar3')>>subplot(1,3,2)>>bar3(y)>>title('bar3')>>subplot(1,3,3)>>bar3h(y)>>title('bar3h')第六章圖形處理功能【例6-12】繪制三維條形圖的示例第六章圖形處理圖6-12三維條形圖繪制示例第六章圖形處理功能圖6-12三維條形圖繪制示例第六章圖形處理功能

2.繪制階梯圖stairs(x)生成一個向量x中的數據點的階梯圖stairs(x,y)將y中的數據點繪制在x值所聲明的位置stairs(…,s)s是一字符串,用于指定繪圖時的曲線線型、顏色和標記等【例6-13】繪制階梯圖示例>>t=-3:.1:3;>>y=exp(-t).*(t.^2);>>stairs(t,y)>>axis([-300200])第六章圖形處理功能2.繪制階梯圖第六章圖形處理功能

圖6-13階梯圖繪制示例第六章圖形處理功能圖6-13階梯圖繪制示例第六章圖形處理功能繪制離散采樣圖stem(x)生成一個向量x中的數據點的桿狀圖stem(x,y)將y中的數據點繪制在x值所聲明的位置stem(…,’fill’)選擇參數’fill’表示數據采樣點端部被填涂為實心圓。【例6-14】繪制離散采樣圖>>x=0:0.2:2*pi;>>y=2*sin(x).*cos(x);>>stem(x,y,'fill')第六章圖形處理功能繪制離散采樣圖第六章圖形處理功能圖6-14離散采樣圖繪制示例第六章圖形處理功能圖6-14離散采樣圖繪制示例第六章圖形處理功能

【例6-15】繪制帶有標記的余弦曲線,并指定標記形狀、標記邊界的顏色和標記的大小。

>>x=-2*pi:0.15:2*pi; >>y=sin(x); >>plot(x,y,'^','markeredgecolor','k',…'markerfacecolor','y','markersize',6)第六章圖形處理功能【例6-15】繪制帶有標記的余弦曲線,并指定標記圖6-15帶有標記的正弦曲線第六章圖形處理功能圖6-15帶有標記的正弦曲線第六章圖形處理功能

4.繪制直方圖hist(y)y可以是向量也可以是矩陣,當y為向量時,將y中的元素均勻分成10塊,直方圖的高度表示每一部分元素的個數。當y為矩陣時,每列數據產生一個直方圖。hist(y,k)根據k值確定橫坐標的等分份數

,繪制直方圖。第六章圖形處理功能 4.繪制直方圖第六章圖形處理功能

【例6-16】繪制直方圖 >>y=randn(1000,1);%生成一個隨機矩陣 >>subplot(1,2,1) >>hist(y) >>subplot(1,2,2) >>hist(y,20)第六章圖形處理功能 【例6-16】繪制直方圖第六章圖形處理功能圖6-16直方圖繪制示例第六章圖形處理功能圖6-16直方圖繪制示例第六章圖形處理功能

5.繪制極坐標曲線polar(theta,rho)theta(θ)是極角,rho(ρ)是極徑,此命令用來繪制極坐標曲線ρ=f(θ)。polar(theta,rho,s)字符串s可以指定極坐標曲線的線型、顏色、標記的;【例6-17】極坐標曲線繪制示例>>t=0:0.1:8*pi;>>r=2*cos(t/2);>>polar(t,r)>>title('雙心臟線')第六章圖形處理功能5.繪制極坐標曲線第六章圖6-17極坐標曲線繪圖示例第六章圖形處理功能圖6-17極坐標曲線繪圖示例第六章圖形處理功能6.

繪制復向量曲線【例6-18】復向量繪圖示例1>>x=[10+3i,2+6i,-5+10i,-5-5i,8];>>feather(x)第六章圖形處理功能圖6-18

復向量繪圖示例16.繪制復向量曲線第六章圖形處理功能圖6-1【例6-19】復向量繪圖示例2>>z=eig(randn(20));>>x=[10+3i,2+6i,-5+10i,-5-5i,8];>>y=[3,6,10,5,0];>>subplot(1,2,1)>>compass(z)>>subplot(1,2,2)>>feather(x,y,'r');第六章圖形處理功能【例6-19】復向量繪圖示例2第六章圖形處理功能圖6-19

復向量繪圖示例2第六章圖形處理功能圖6-19復向量繪圖示例2第六章圖形處理功能7.繪制餅圖pie(x)x中的每一個數據對應餅圖中的一個扇區。pie(a,b)從一個餅圖中分離出一個或多個餅片,b是與a同尺寸的矩陣,b中非零元素把與a對應位置的餅分離出來。h=pie(…)h是返回圖形的句柄,可以通過句柄對餅圖的屬性重新設置。pie3繪制三維餅圖。第六章圖形處理功能7.繪制餅圖第六章圖形處理功能【例6-20】二維餅圖繪制示例

>>a=[0.511.61.2.82.1];

>>b=[000001];

>>pie(a)

>>pie(a,b);%分離出餅圖中的一部分第六章圖形處理功能【例6-20】二維餅圖繪制示例第六章圖形處理功能圖6-20

繪制二維餅圖第六章圖形處理功能圖6-20繪制二維餅圖第六章圖形處理功能【例6-21】三維餅圖繪制示例>>x=[12.41.63.82.5];>>subplot(1,2,1)>>pie3(x);%繪制三維餅圖>>subplot(1,2,2)>>explode=[10010];>>pie3(x,explode);%繪制分割

三維餅圖

第六章圖形處理功能【例6-21】三維餅圖繪制示例第六章圖形處理功能圖6-21

三維餅圖繪制示例第六章圖形處理功能圖6-21三維餅圖繪制示例第六章圖形處理功能第二節三維平面圖形的繪制

一、三維曲線繪圖命令二、網格圖和表面圖

三、視圖可視效果、色彩控制

、透視效果和光照控制第六章圖形處理功能第二節三維平面圖形的繪制一、三維曲線繪圖命令二、網格一、三維曲線繪圖命令第六章圖形處理功能調用格式說明plot3(x,y,z,s)繪制由相同大小的向量x,y,z對應元素構成的曲線。s指定曲線的顏色、標記和線型plot3(X,Y,Z,s)繪制由3個相同大小的矩陣X,Y,Z對應的列所構成的多條曲線。s為線型、顏色、標記字符串plot3(x1,y1,z1,s1,…,xn,yn,zn,sn)繪制由多個參數組構成的多條曲線表6-6plot3函數調用格式一、三維曲線繪圖命令第六章圖形處理功能調用格

【例6-22】繪制x、y和z均為矢量的三維曲線圖示例

>>t=0:pi/200:10*pi;%定義數據向量

>>x=cos(t);%計算x坐標向量

>>y=3*sin(t);%計算y坐標向量

>>z=t.^2;%計算z坐標向量

>>plot3(x,y,z)%繪制空間曲線第六章圖形處理功能【例6-22】繪制x、y和z均為矢量的三維曲線圖示例圖6-22x、y和z均為矢量時的三維曲線第六章圖形處理功能圖6-22x、y和z均為矢量時的三維曲線第六章圖

【例6-23】繪制x、y和z均為矩陣時的三維曲線

>>[x,y]=meshgrid([-2:0.1:2]);%產生供三維繪圖

的網格矩陣x、y >>z=x.*exp(-x.^2-y.^2); >>plot3(x,y,z)第六章圖形處理功能 【例6-23】繪制x、y和z均為矩陣時的三維曲線第六章圖6-23x、y和z均為矩陣時的三維曲線第六章圖形處理功能圖6-23x、y和z均為矩陣時的三維曲線第六章圖提示:meshgrid是Matlab的內置函數,其格式為:

[X,Y]=meshgrid(x,y)。其中,輸入數據x

和y是矢量,長度可以相等,也可以不等,但輸出數據X和Y是具有相同size的矩陣。meshgrid指令主要作用是將兩個矢量(x和y)

轉換成兩個矩陣(X和Y),這兩個矩陣則是

Z=f(X,Y)的自變量。第六章圖形處理功能第六章圖形處理功能二、網格圖和表面圖第六章圖形處理功能【例6-24】繪制三維網格圖的示例。>>[x,y]=meshgrid(-8:0.5:8,-10:0.5:10);%定義網格數據向量x,y>>R=sqrt(x.^2+y.^2);>>z=sin(R)./R;>>subplot(1,3,1)>>mesh(x,y,z);%繪制三維網格圖>>title('mesh')二、網格圖和表面圖第六章圖形處理功能【例6-24】>>subplot(1,3,2)>>meshc(x,y,z)%繪制帶有等高線的三維網格圖>>title('meshc')>>subplot(1,3,3)>>meshz(x,y,z);%繪制簾狀三維網格圖(帶基準水平面的網格圖)>>title('meshz')第六章圖形處理功能>>subplot(1,3,2)第六章圖形處理功能圖6-24三維網格圖繪制示例第六章圖形處理功能圖6-24三維網格圖繪制示例第六章圖形處理功能【例6-25】繪制三維表面圖的示例%定義網格數據向量x,y>>[x,y]=meshgrid(-3:0.125:3,-5:0.125:5);>>z=peaks(x,y);%計算函數值>>subplot(1,3,1)>>surf(x,y,z);%繪制三維表面圖>>title('surf(x,y,z)')>>subplot(1,3,2)>>surfc(x,y,z);%繪制帶有等高線的三維表面圖>>title('surfc(x,y,z)')>>subplot(1,3,3)>>surf(z);第六章圖形處理功能【例6-25】繪制三維表面圖的示例第六章圖形處理功圖6-25三維表面圖的繪制示例第六章圖形處理功能圖6-25三維表面圖的繪制示例第六章圖形處理功能三、視圖可視效果、色彩控制、透視效果和光照控制第六章圖形處理功能1、視角控制view([x,y,z])返回視點的直角坐標。view(2)設置默認的二維視圖,其中

az=0°,el=90°。view(3)設置默認的三維視圖,其中az=-37.5°,el=30°。三、視圖可視效果、色彩控制、透視效果和光照控制第六章例6-26】Matlab中從不同的角度查看三維函數的圖形。>>t=0.01:0.01:3*pi;>>z=sin(5*t)./(5*t);>>y=zeros(size(t));>>subplot(2,2,1);plot3(t,y,z,'m','LineWidth',2);gridon;>>title(‘Defaultview')第六章圖形處理功能例6-26】Matlab中從不同的角度查看三維函數的第六章>>subplot(2,2,2);plot3(t,y,z,'m','LineWidth',2);gridon;>>title('azRotatedto32.5');view(57.5,30)>>subplot(2,2,3);plot3(t,y,z,'m','LineWidth',2);gridon;>>title('elRotatedto10');view(-37.5,10)>>subplot(2,2,4);plot3(t,y,z,'m','LineWidth',2);gridon;>>title('az=90,el=0');view(90,0)第六章圖形處理功能>>subplot(2,2,2);plot3(t,y,z,'圖6-26三維圖形設置視角第六章圖形處理功能圖6-26三維圖形設置視角第六章圖形處理功能2、色彩控制【例6-27】圖形設置不同的背景顏色的示例。>>subplot(1,3,1);colordefnone;surf(peaks(25));>>title('設置前的圖形');>>subplot(1,3,2);colordefgray;surf(peaks(25));>>title('黑色背景的圖形');>>subplot(1,3,3);colordefwhite;surf(peaks(25));>>title('白色背景的圖形');

第六章圖形處理功能2、色彩控制第六章圖形處理功能圖6-27設置不同的背景顏色的示例第六章圖形處理功能圖6-27設置不同的背景顏色的示例第六章圖形處理【例6-28】畫一個“patch”圖形,并將其默認的黑色為自己所設的顏色。>>h=patch;>>set(h,'facecolor',[0.50.80.6])第六章圖形處理功能圖6-28設“patch”的表面顏色為豆綠色【例6-28】畫一個“patch”圖形,并將其默認的黑色3、著色控制shadingflat網格線的每個線段和表面都有相同的顏色;shadingfaceted在shadingflat的基礎上,再在貼片的四周勾畫黑色線;shadinginterp在shadingflat的基礎上,對線段或表面顏色進行插值,使得整個表面上的顏色看上去是連續變化的。第六章圖形處理功能3、著色控制第六章圖形處理功能【例6-29】圖形顏色著色處理示例>>subplot(1,3,1)>>sphere(12)>>axissquare>>shadingflat>>title('FlatShading')>>subplot(1,3,2)>>sphere(12)>>axissquare>>shadingfaceted>>title('FacetedShading')>>subplot(1,3,3)>>sphere(12)>>axissquare>>shadinginterp>>title('InterpolatedShading')第六章圖形處理功能【例6-29】圖形顏色著色處理示例第六章圖形處理功圖6-29圖形顏色著色處理示例第六章圖形處理功能圖6-29圖形顏色著色處理示例第六章圖形處理功能4、透視控制hiddenoff對網格圖做透明處理hiddenon取消透明處理【例6-30】比較透明處理后網格圖的變化>>[x,y]=meshgrid(-4:0.6:4);>>R=sqrt(x.^2+y.^2);>>z=sin(R)./R;>>mesh(z)>>hiddenoff第六章圖形處理功能4、透視控制第六章圖形處理功能圖6-30透明處理前后的效果對比(a)不做透明處理;(b)做透明處理第六章圖形處理功能圖6-30透明處理前后的效果對比第六章圖形處理功5、光照效果light(’PropertyName’,’PropertyValue’,…)其中PropertyName是屬性名,PropertyValue是屬性值。第六章圖形處理功能【例6-31】在Matlab中繪制peaks函數的三維圖形,然后使用不同的光照效果。

5、光照效果第六章圖形處理功能【例6-31】在Ma>>subplot(121);>>surf(peaks);>>title('Default')>>subplot(122);>>surf(peaks);>>light('color','r','Position',[010],'style','local');>>title('Red-LocalLight')第六章圖形處理功能>>subplot(121);第六章圖形處理功能圖6-31不同的光照控制第六章圖形處理功能圖6-31不同的光照控制第六章圖形處理功能lighting命令的調用格式如下:lightingflatlightinggouraudlightingphonglightingnone第六章圖形處理功能lighting命令的調用格式如下:第六章圖形處理功【例6-32】在Matlab中繪制三維圖形,然后使用不同的光照效果。>>t=0:pi/20:2*pi;>>[x,y,z]=cylinder(4+cos(t));>>subplot(2,2,1);mesh(x,y,z);light;lightingphong;title('phong')>>subplot(2,2,2);surf(x,y,z);light;lightingflat;title('flat')>>subplot(2,2,3);surf(x,y,z);light;shadinginterp;>>lightinggouraud;title('gouraud')>>subplot(2,2,4);surf(x,y,z);light;lightingnone;title('none')第六章圖形處理功能【例6-32】在Matlab中繪制三維圖形,然后使用不同的圖6-32不同的光照效果第六章圖形處理功能圖6-32不同的光照效果第六章圖形處理功能第三節坐標軸的控制和圖形標注第六章圖形處理功能調用格式說明axis([xminxmaxyminymax])設置X、Y軸數值的范圍axis([xminxmaxyminymaxzminzmax])設置X、Y、Z軸數值的范圍v=axis獲取當前坐標軸的數值范圍向量axisauto設置坐標軸為默認刻度axismanual設置當前數值范圍不變axistight以數據的大小為坐標軸的范圍axisfill使得坐標充滿整個繪圖區axisij矩陣式坐標,原點在左上方axisxy直角坐標系,原點在左下方axisequal等長刻度坐標軸axissquare產生正方形坐標軸,x、y或z軸數值范圍相同axisnormal默認的坐標軸axisoff取消坐標軸背景框axison打開坐標軸背景框表6-12axis函數的調用格式第三節坐標軸的控制和圖形標注第六章圖形處理功能【例6-33】對比坐標軸范圍對正切函數曲線的影響。>>x=0:0.01:pi/2;>>plot(x,cot(x),'r')>>axis([0pi/2010])第六章圖形處理功能圖6-33坐標軸范圍對圖形的影響(a)繪制默認余切曲線;(b)調整坐標軸后的余切曲線【例6-33】對比坐標軸范圍對正切函數曲線的影響。第六章【例6-34】使用不同的坐標軸顯示方式,繪制橢圓形。>>t=[0:pi/40:2*pi];>>x=2*cos(t);>>y=3*sin(t);>>subplot(2,2,1);plot(x,y);axisnormal;>>gridon;title('normal')>>subplot(2,2,2);plot(x,y);axisequal;>>gridon;title('equal')>>subplot(2,2,3);plot(x,y);axissquare;>>gridon;title('square')>>subplot(2,2,4);plot(x,y);axistight;>>gridon;title('tight')第六章圖形處理功能【例6-34】使用不同的坐標軸顯示方式,繪制橢圓形。第六章圖6-34橢圓的四種不同坐標軸顯示方式第六章圖形處理功能圖6-34橢圓的四種不同坐標軸顯示方式第六章圖形二、圖形標注1、title指令用于在圖形上標注標題。xlabel指令、

ylabel指令、zlabel指令分別在x軸、y軸、z軸上加標注。這四個指令用法相同,具體調用格式如下:(function表示指令名)function(’string’)標注字符串’string’;第六章圖形處理功能function(…,’PropertyName’,’PropertyValue,…)對標注的text對象設置屬性及屬性值;h=function(…)返回圖形標注的句柄;二、圖形標注1、title指令用于在圖形上標注標題。xla調用格式說明text(x,y,‘string’)在指定坐標(x,y)上進行文本的標注text(x,y,z,‘string’)在指定坐標(x,y,z)上進行文本的標注text(…,’PropertyName’,PropertyValue…)對標注的text對象設置屬性值h=text(…)返回文本標注的句柄表6-13text指令的調用格式第六章圖形處理功能2、text指令用于在任意位置加注文本,格式如表6-13所示:調用格式說明text(x,y,3、gtext指令用鼠標將文本放置在圖形中,格式如表6-14所示:調用格式說明gtext(‘string’)把字符串標注在鼠標單擊的位置處gtext({‘string1’,’string2’,’string3’,…})把字符串數組順序顯示在鼠標單擊(一次)的位置處gtext({‘string1’;’string2’;’string3’;…}把字符串數組順序顯示在鼠標(多次)單擊的位置處h=gtext(…)返回文本標注的句柄第六章圖形處理功能表6-14gtext指令的調用格式3、gtext指令用鼠標將文本放置在圖形中,格式如表6-144、legend指令格式如表6-15所示:調用格式說明legend(‘string1’,’string2’…)以string1,string2,…作為圖形標注的圖例legend(‘on’)在當前圖形中添加圖例框legend(‘off’)移除圖例legend(‘boxon’)顯示圖例邊框并使之透明legend(‘boxoff’)不顯示圖例的邊框并使之透明legend(‘hide’)隱藏圖例legend(‘show’)顯示圖例legend(…,location)指定圖例框顯示的位置表6-15legend指令的調用格式第六章圖形處理功能4、legend指令格式如表6-15所示:調用格式說三、圖形標注的精細命令第六章圖形處理功能字符串符號字符串符號字符串符號\alphaα\xiξ\omegaω\betaβ\piπ\OmegaΩ\gammaγ\rhoρ\chiχ\deltaδ\tauτ\Sigma∑\epsilonε\int∫\Pi∏\zetaζ\pm±\neq≠\etaη\geq≥\langle<\leq≤\div÷\vee∨\kappaκ\bullet·\wedge∧\lambdaλ\psiψ\cap∩\muμ\phiφ\infty∞\thetaθ\rightarrow\leftarrow表6-16常用符號及其定義這些符號的字符串三、圖形標注的精細命令第六章圖形處理功能字符串符號【例6-35】在圖形中添加標注示例>>x=-pi:pi/20:pi;>>plot(x,sin(x),'-o',x,cos(x),'-*')>>legend('sin(x)','cos(x)')>>gtext({'\leftarrowcos(x)';'sin(x)\rightarrow'},…'fontweight','bold','fontsize',12);>>title(‘sin函數和cos函數

','fontweight','bold','fontsize',12);>>xlabel('x軸','fontweight','bold');ylabel('y軸','fontweight','bold');第六章圖形處理功能【例6-35】在圖形中添加標注示例第六章圖形處理功圖6-35在圖形中添加標注示例第六章圖形處理功能圖6-35在圖形中添加標注示例第六章圖形處理功能【例6-36】在圖形中使用TeX字符>>t=0:pi/40:2*pi;>>alpha=0.5;beta=10;>>y=sin(beta*t).*exp(alpha*t);>>plot(t,y)>>title('{\itAe}^{-\alpha\itt}sin\beta{\itt}')>>xlabel('時間')>>

ylabel('幅度)第六章圖形處理功能【例6-36】在圖形中使用TeX字符第六章圖形處理圖6-36TeX字符使用示例第六章圖形處理功能圖6-36TeX字符使用示例第六章圖形處理功能【例6-37】在圖形中加注標題和文本>>x=0:pi/50:2*pi;>>y=sin(x);>>plot(x,y)>>xlabel('0\leq\itt\rm\leq\pi','FontSize',10)>>ylabel('sin(x)','FontSize',12)>>text(pi,sin(pi),'\leftarrowsin(x)=0','FontSize',10)>>title('正弦函數圖形','FontName','黑體','FontSize',12)第六章圖形處理功能【例6-37】在圖形中加注標題和文本第六章圖形處理圖6-37在圖形中加注標題和文本第六章圖形處理功能圖6-37在圖形中加注標題和文本第六章圖形處理功第四節句柄圖形一、對象句柄二、對象屬性三、圖形對象句柄的操作四、get和set函數第六章圖形處理功能第四節句柄圖形一、對象句柄第六章圖形處理功能一、對象句柄第六章圖形處理功能圖6-38圖形對象的層次一、對象句柄第六章圖形處理功能圖6-38圖形對象二、對象屬性

所有對象都有一組定義其特征的屬性,通過設置這些屬性,用戶可以調整圖形顯示的方式。屬性可以描述對象的諸多特性,這些包括對象的位置、顏色、類型、父對象句柄、子對象句柄及其它內容。每個不同的對象都有其自身獨立的屬性,可以改變該對象的屬性而不會影響其它的相同類型的對象的屬性。對象屬性由屬性名和相應的屬性值構成。屬性名是字符串,為了用戶使用起來方便,通常按大小寫的混合格式顯示,并且字符串的第一個字母大寫,例如“LineStyle”代表一個線條對象的屬性風格,而寫成“linestyle”也是可以的。第六章圖形處理功能二、對象屬性所有對象都有一組定義其特

當對象被創建時,其初始化屬性值就是其默認值。這些默認屬性值可以用兩種方法進行改變:在創建對象時,在函數調用中包含屬性的設定;在對象創建之后,利用相應的函數可以改變屬性的值,也就是后面即將介紹的set和get函數。提示:關于不同圖形對象的各種屬性,請參見附錄B第六章圖形處理功能當對象被創建時,其初始化屬性值就是其默認值。三、圖形對象句柄的操作第六章圖形處理功能函數功能axes創建圖形的坐標軸對象figure創建或顯示圖形窗口image使用顏色映射表索引或RGB數值的二位圖像light位于坐標軸中,能夠影響曲面或曲片的有方向的光源line建立一個線條對象patch將矩陣的每列數據構成多邊形的小面,創建一個塊或補片對象rectangle創建一個矩形或長方形對象surface由矩陣數據定義的矩陣創建而成的平面對象text創建位于坐標軸內的文本對象uimenu創建用戶界面的菜單uicontrol創建用戶界面的控件表6-17Matlab中的圖形對象創建函數1、圖形對象的創建三、圖形對象句柄的操作第六章圖形處理功能函數功注表中的顯示圖像函數“image”、建立菜單函數“uimenu”和建立控件函數“uicontrol”將在第7章中介紹。前面,我們所畫圖形的坐標軸都是Matalb默認的坐標軸,下面通過示例看一下用戶如何自己創建坐標軸。【例6-38】在一個圖形窗口中建立兩個坐標軸,在第一個坐標軸內畫一默認球體,在第二個坐標軸內畫一具有光照效果的球體。第六章圖形處理功能注表中的顯示圖像函數“image”、建立菜單函第六章>>axes('position',[0.10.550.450.45]);>>sphere(40)>>axes('position',[0.10.050.450.45]);>>sphere(40)>>light('color','w','Position',[-10-102],'style','local');第六章圖形處理功能>>axes('position',[0.10.550圖6-39默認的球體和帶有光照效果的球體第六章圖形處理功能圖6-39默認的球體和帶有光照效果的球體第六章提示:使用“axes”函數時,應注意其位置屬性值的選取。括號內的四個數據[leftbottomwidthheight]中的前兩個分別代表坐標軸到圖形窗口左邊、下邊的距離,后兩個代表坐標軸自身的寬度和高度,且這四個數據的取值范圍在0和1之間。第六章圖形處理功能提示:使用“axes”函數時,應注意其位置屬性值的第六章圖6-40默認的矩形第六章圖形處理功能【例6-39】建立一個矩形對象,并設置其相應的屬性。>>rectangle%默認的矩形圖6-40默認的矩形第六章圖形處理功能【例6->>rectangle('position',[0.10.8.5.4],'edgecolor','b',…‘facecolor’,[010])%設置矩形的屬性%給矩形加注交互文本>>gtext(‘Thisisarectangle.','fontsize',14,'fontweight','bold')第六章圖形處理功能>>rectangle('position',[0.10圖6-41設置屬性的矩形第六章圖形處理功能提示:矩形函數“rectangle”的位置屬性的四元素向量的意義:[左下角的橫坐標,矩形區域左下角的縱坐標,矩形的寬度,矩形的高度]。圖6-41設置屬性的矩形第六章圖形處理功能提示:【例6-40】創建一個拋物曲面,并對其做相應屬性的設置。>>x=-4:0.5:4;>>y=x;>>[X,Y]=meshgrid(x,y);>>Z=X.^2+Y.^2;>>subplot(211)>>mesh(Z)%畫未做任何屬性設置的默認拋物面>>subplot(212)>>h=mesh(Z)%畫未做任何屬性設置的默認拋物

面,并返回其句柄>>set(h,'facecolor','m','edgecolor',[111],...'marker','o','markeredgecolor','b')%設置拋物面的四種屬性第六章圖形處理功能【例6-40】創建一個拋物曲面,并對其做相應屬性的設置。第圖6-42默認拋物面和設置屬性后的拋物面第六章圖形處理功能圖6-42默認拋物面和設置屬性后的拋物面第六章【例6-41】創建一個空間錐面圖形對象,并將其變成二平面圖形,再做相關屬性的設置。>>x=-4:0.5:4;>>y=x;>>[X,Y]=meshgrid(x,y);>>Z=sqrt(X.^2+Y.^2);>>mesh(Z)第六章圖形處理功能【例6-41】創建一個空間錐面圖形對象,并將其變第六章圖6-43默認的空間錐面圖形第六章圖形處理功能圖6-43默認的空間錐面圖形第六章圖形處理功能figure%建立第二個圖形窗口surface(Z)%將錐面轉變為二維平面圖圖6-44空間錐面的二維平面圖形第六章圖形處理功能figure%建figure%建立第三個圖形窗口

%設置平面圖形的一些屬性surface('xdata',X,'ydata',Y,'zdata',Z,'facecolor','y','edgecolor',…[0.4810.66],'marker','o','markeredgecolor',[010])%將坐標軸的字號設為8號,顏色加深set(gca,'fontsize',8,'fontweight','bold')第六章圖形處理功能figure%建立第三個圖6-45重新設置屬性的二維平面圖第六章圖形處理功能圖6-45重新設置屬性的二維平面圖第六章圖形處理2.訪問圖形對象的句柄

(1)通過圖形創建命令獲取對象的句柄。例如:Hline=plot(x,y);Htext1=text(-36.6,-45.59,186.6,’Figure1’);在上面的程序代碼中,Hline,Htext1都是相應圖形對象的句柄。第六章圖形處理功能2.訪問圖形對象的句柄第六章圖形處理功能(2)通過get函數訪問圖形對象的句柄Hpa=get(Hknown,PV)獲取Hknown句柄對象的句柄值(3)對于用戶當前操作的對象,Matlab提供了一些簡單的訪問方法:gcf返回當前圖形窗口的句柄gca返回當前窗口中的坐標軸的句柄gco返回最近被鼠標點擊的圖形對象的句柄(4)使用對象的“標簽”來訪問對象句柄。用戶可以通過’Tag’屬性來給對象設置一個標簽,然后通過圖形對象標簽來訪問對象句柄,下面的程序代碼所示可以訪問相應的圖形對象句柄。第六章圖形處理功能(2)通過get函數訪問圖形對象的句柄第六章圖形處理>>plot(x,y,’Tag’,’Al’)>>set(gca,’Tag’,’Al’)【例6-42】繪制sin(x)在[0,2π]范圍內的圖形,然后添加文本注釋,最后訪問圖形對象句柄,修改文字注釋的位置。>>x=0:0.01:2*pi;>>y=sin(x);>>plot(x,y)>>gridon第六章圖形處理功能>>plot(x,y,’Tag’,’Al’)第六章圖6-46繪制的基礎圖形第六章圖形處理功能圖6-46繪制的基礎圖形第六章圖形處理功能%填加文本注釋和設置標簽>>text(5,0.8,'\fontsize{16}cos(x)','Tag','Al');

圖6-47添加文字注釋第六章圖形處理功能%填加文本注釋和設置標簽圖6-47添加文字注釋第六章>>H=findobj(gca,'Tag','Al');%獲取文本對象的句柄>>set(H,'position',[30.8])%重新設置文本注釋的位置圖6-48修改文本的位置屬性第六章圖形處理功能>>H=findobj(gca,'Tag','Al');>>Hfigure=get(gca,'children');%查看圖形對象的子類型>>T=get(Hfigure,'type')T='text''line'例6-42的第5、6、7行的代碼也可以用下面的代碼替換:>>htext=text(5,0.8,'\fontsize{16}cos(x)');>>set(htext,'position',[30.8])這里,在建立文本對象時,返回其句柄“htext”,然后通過訪問其句柄來修改其位置屬性值

,即將文本“cos”沿水第六章圖形處理功能>>Hfigure=get(gca,'children')平方向左移動兩個位置。另外,通過第8條語句可以獲坐標軸的子對象,顯然,子對象包括填加的文本和所畫的余弦曲線,即,“text”和“line”。3.使用句柄操作查找圖形對象使用函數findobj可以快速遍歷對象層并獲取指定了屬性值的對象句柄。該函數有如表6-18所示幾種調用方式:第六章圖形處理功能第六章圖形處理功能格式類型功能說明H=findobj返回根對象和所有子對象的句柄H=findobj(objhandle,‘propertyname’,’propertyvalue’,…)將查找范圍限制在句柄為“objhandle”指定的對象和子對象中H=findobj(objhandle,’flat’,‘propertyname’,’propertyvalue’,…)將查找范圍限制在句柄為“objhandle”指定的對象中,但不包括其子對象H=findobj(objhandle)返回句柄為“objhandle”指定的對象和其所有子對象的句柄H=findobj(‘propertyname’,’propertyvalue’,…)在所有的對象層中查找符合指定屬性值的對象,并返回其句柄

表6-18函數“findobj”的幾種調用格式第六章圖形處理功能格式類型功能說明H=findo下面仍以例6-42來看一下“findobj”的用法。接續上面的代碼,在命令窗口中輸入:>>h=findobj(gcf)h=1.0000151.0070153.0071152.0081這里,h(1)=1.0000為圖形對象的句柄;h(2)=151.0070為圖形的下一級子對象---坐標軸的句柄;h(3)=153.0071是坐標軸的下一級子對象---文本的句柄;h(4)=152.0081是坐標軸的下一級子對象---文本的句柄;第六章圖形處理功能下面仍以例6-42來看一下“findobj”的用法。接續上面h(4)=152.0081是坐標軸的下一級子對象線條的句柄。可見句柄中的元素排列順序是由各個對象在整個對象層次中的位置決定的。如果使用令:>>h=findobj(htext)h=153.0071正是文本對象的句柄。四、get和set函數“get”和“set”函數的常用調用格式如下:第六章圖形處理功能h(4)=152.0081是坐標軸的下一級子對象線條的句柄。1.get函數get(h)

返回圖形對象h的所有屬性和它們的屬性值get(h,’PropertyName’)

返回圖形對象h指定的屬性’PropertyName’的屬性值get(h,’Default’)

返回當前對象h的所用默認值2.set函數set(h,’PropertyName1’,’PropertyValue1’,’PropertyName2’,’PropertyValue2’…)設置圖形對象句柄h指定的屬性’PropertyName’的屬性值。第六章圖形處理功能1.get函數第六章圖形處理功能【例6-43】建立一個補片函數,并獲取和設置其常用屬性的屬性值。>>h=patch%建立一個補片函數,并返回其句柄第六章圖形處理功能圖6-49“patch”函數圖形【例6-43】建立一個補片函數,并獲取和設置其常用屬>>get(h,'facecolor')ans=000即“patch”的表面顏色為黑色。>>set(h,'marker','o','markerfacecolor',...[110],'edgecolor',[011],...'facecolor',[001])第六章圖形處理功能>>get(h,'facecolor')第六章圖形圖6-50重新設置屬性后的“patch”函數圖形第六章圖形處理功能圖6-50重新設置屬性后的“patch”函數圖形第六章【例6-44】畫余弦和正弦曲線,并練習使用“set”和“get”函數。>>t=0:pi/20:2*pi;>>y1=sin(t);>>hline1=plot(t,y1)>>holdon>>y2=cos(t);>>hline2=plot(t,y2)第六章圖形處理功能【例6-44】畫余弦和正弦曲線,并練習使用“set”和“g圖6-51默認的正、余弦曲線第六章圖形處理功能圖6-51默認的正、余弦曲線第六章圖形處理功能圖6-52正弦曲線的某些屬性被重新設置第六章圖形處理功能>>set(hline1,'linestyle',':','linewidth',2.5,'color','r')%正弦曲線的線型、線寬、顏色被重新設置圖6-52正弦曲線的某些屬性被重新設置第六章圖形利用“get”函數看一下正弦曲線的屬性是不是“set”函數所設置的屬性,命令如下:>>get(hline1,{'linestyle','linewidth','color'})ans=':'[2.5000][1x3double]上面的命令運行的結果正是“set”函數所設置的屬性值。同時在命令窗口還可以得到正、余弦曲線的句柄值分別為:>>hline1=168.0304>>hline2=169.0304第六章圖形處理功能利用“get”函數看一下正弦曲線的屬性是不是“set”函數所【例6-45】畫余弦和正弦曲線,并將其橫坐標以弧度形式表示。>>t=0:pi/20:2*pi;>>y1=sin(t);>>hline1=plot(t,y1)>>holdon>>y2=cos(t);第六章圖形處理功能【例6-45】畫余弦和正弦曲線,并將其橫坐標以弧度形式表示>>hline2=plot(t,y2)>>set(gca,'xtick',[0:pi/2:2*pi],...'xticklabel',{'0''pi/2''pi''3pi/2''2pi'},...'fontsize',8,'fontweight','bold')第六章圖形處理功能>>hline2=plot(t,y2)第六章圖形處圖6-53橫坐標為弧度的正、余弦曲線第六章圖形處理功能圖6-53橫坐標為弧度的正、余弦曲線第六章圖形處第七章Matlab的圖形用戶界面GUI

GUI設計工具簡介

GUI向導設計

GUI程序設計

第七章Matlab的圖形用戶界面GUIGUI設計工具第一節GUI設計工具簡介圖7-1

進入GUI的初始界面一、啟動GUI第一節GUI設計工具簡介圖7-1進入GUI的初始界圖7-2

空白界面編輯器外觀圖圖7-2空白界面編輯器外觀圖二、用戶界面控件對象按鈕:

開關按鈕:

單選按鈕:

動態文本框:

彈出式菜單:

二、用戶界面控件對象按鈕:開關按鈕:單選按鈕:動態文本框:彈圖文框靜態文本框列表框復選框滑動條按鈕組圖文框靜態文本框列表框復選框滑動條按鈕組圖7-3

帶有控件的圖形界面編輯器外觀圖圖7-3帶有控件的圖形界面編輯器外觀圖圖7-4

排列工具欄外觀圖三、幾何位置排列工具圖7-4排列工具欄外觀圖三、幾何位置排列工具四、用屬性編輯器設

溫馨提示

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

評論

0/150

提交評論