MATLAB語言及其應(yīng)用第六講Matlab數(shù)據(jù)和函數(shù)的可視化_第1頁
MATLAB語言及其應(yīng)用第六講Matlab數(shù)據(jù)和函數(shù)的可視化_第2頁
MATLAB語言及其應(yīng)用第六講Matlab數(shù)據(jù)和函數(shù)的可視化_第3頁
MATLAB語言及其應(yīng)用第六講Matlab數(shù)據(jù)和函數(shù)的可視化_第4頁
MATLAB語言及其應(yīng)用第六講Matlab數(shù)據(jù)和函數(shù)的可視化_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

MATLAB

語言及其應(yīng)用

MatlabLanguageandItsApplications

MATLABLanguageandItsApplications1第六講

Matlab數(shù)據(jù)和函數(shù)的可視化2摘要MATLAB語言及其應(yīng)用3

二維圖形繪制plot相關(guān)指令特殊圖形的繪制三維圖形的繪制圖像處理簡介圖形窗口操作簡介MATLAB語言及其應(yīng)用4

引言世界頂級(jí)的數(shù)值計(jì)算工具軟件MATLAB具有極其強(qiáng)大的數(shù)據(jù)可視化功能,可制作具有出版質(zhì)量圖形。在前面的課程中,已經(jīng)使用了數(shù)據(jù)可視化命令plot。詳細(xì)介紹MATLAB這一部分的內(nèi)容可以寫一本書。我們只能介紹MATLAB數(shù)據(jù)可視化的基礎(chǔ),2-D數(shù)據(jù)可視化、3-D數(shù)據(jù)可視化初步。二維圖形是將平面坐標(biāo)上的數(shù)據(jù)點(diǎn)連接起來的平面圖形??梢圆捎弥苯亲鴺?biāo)系、對數(shù)坐標(biāo)、極坐標(biāo)等形式。數(shù)據(jù)點(diǎn)可以用向量或矩陣形式給出,類型可以是實(shí)型或復(fù)型。MATLAB語言及其應(yīng)用5

MATLAB語言及其應(yīng)用6

6.1二維曲線繪圖的基本操作plot指令的基本調(diào)用格式(1)plot(x)x為向量時(shí),以該元素的下標(biāo)為橫坐標(biāo)、元素值為縱坐標(biāo)繪出曲線x為實(shí)數(shù)二維數(shù)組時(shí),則按列繪制每列元素值相對其下標(biāo)的曲線,曲線數(shù)等于x數(shù)組的列數(shù)。x為復(fù)數(shù)二維數(shù)組時(shí),則按列分別以數(shù)組的實(shí)部和虛部為橫、縱坐標(biāo)繪制多條曲線(2)plot(x,y)x、y為同維數(shù)組時(shí),繪制以x、y元素為橫縱坐標(biāo)的曲線x為向量,y為二維數(shù)組、且其列數(shù)或行數(shù)等于x的元素?cái)?shù)時(shí),繪制多條不同顏色的曲線x為二維數(shù)組,y為向量時(shí),情況與上相同,只是y仍為縱坐標(biāo)。(3)plot(x1,y1,x2,y2,…)繪制以x1為橫坐標(biāo)、y1為縱坐標(biāo)的曲線1,以x2為橫坐標(biāo)、y2為縱坐標(biāo)的曲線2,等等。其中x為橫坐標(biāo),y為縱坐標(biāo),繪制y=f(x)函數(shù)曲線。

MATLAB語言及其應(yīng)用7

例6.1:使用直角坐標(biāo)系在[0,2π]區(qū)間內(nèi),繪制曲線x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y)MATLAB語言及其應(yīng)用8

例6.2使用參數(shù)方程繪制曲線繪制曲線t=-pi:pi/100:pi;x=t.*cos(3*t);y=t.*sin(t).^2;plot(x,y)MATLAB語言及其應(yīng)用9

例6.3

繪制復(fù)雜曲線用圖形表示連續(xù)調(diào)制波形及其包絡(luò)線。t=(0:pi/100:pi)’; %長度為101的時(shí)間采樣列向量y1=sin(t)*[1,-1]; %包絡(luò)線函數(shù)值,是(101x2)的矩陣y2=sin(t).*sin(9*t); %長度為101的調(diào)制波列向量t3=pi*(0:9)/9; y3=sin(t3).*sin(9*t3);plot(t,y1,'r:',t,y2,'b',t3,y3,'bo')

axis([0,pi,-1,1])

%控制軸的范圍

MATLAB語言及其應(yīng)用10

多次疊繪、雙縱坐標(biāo)和多子圖多次疊繪多次調(diào)用plot命令在一幅圖上繪制多條曲線,需要hold指令的配合。

holdon

保持當(dāng)前坐標(biāo)軸和圖形,并可以接受下一次繪制。holdoff

取消當(dāng)前坐標(biāo)軸和圖形保持,這種狀態(tài)下,調(diào)用plot繪制完全新的圖形,不保留以前的坐標(biāo)格式、曲線。MATLAB語言及其應(yīng)用11

例6.5重繪曲線重繪波形及其包絡(luò)線。t=(0:pi/100:pi)'; %長度為101的時(shí)間采樣列向量

y1=sin(t)*[1,-1];

%包絡(luò)線函數(shù)值,是(101x2)的矩陣y2=sin(t).*sin(9*t); %長度為101的調(diào)制波列向量t3=pi*(0:9)/9; y3=sin(t3).*sin(9*t3);plot(t,y1,'r:’)holdonplot(t,y2,'b‘)plot(t3,y3,'bo')

axis([0,pi,-1,1])

%控制軸的范圍

holdoffMATLAB語言及其應(yīng)用12

課堂思考例clft=(0:pi/50:2*pi)';k=0.4:0.1:1;Y=cos(t)*k;subplot(1,2,1)plot(t,Y,'LineWidth',1.5)title('Byplot(t,Y)')xlabel('t')subplot(1,2,2)plot(Y,'LineWidth',1.5)title('Byplot(Y)')xlabel('rowsubscriptofY')思考:有什么不同?為什么?MATLAB語言及其應(yīng)用13

例6.6利用hold繪制離散信號(hào)的波形。t=2*pi*(0:20)/20;y=cos(t).*exp(-0.4*t);stem(t,y,'g');holdon;stairs(t,y,'r');holdoffMATLAB語言及其應(yīng)用14

雙縱坐標(biāo):plotyy指令plotyy指令調(diào)用格式:

plotyy(x1,y1,x2,y2)

x1-y1曲線y軸在左,x2-y2曲線y軸在右。

例3.7:

x=0:0.01:20;y1=200*exp(-0.05*x).*sin(x);y2=0.8*exp(-0.5*x).*sin(10*x);

plotyy(x,y1,x,y2);MATLAB語言及其應(yīng)用15

多子圖

MATLAB允許在同一圖形窗口布置幾幅獨(dú)立的子圖。具體指令:subplot(m,n,k)

使(mxn)幅子圖中第k個(gè)子圖成為當(dāng)前圖subplot(‘postion’,[left,bottom,width,height])

在指定的位置上開辟子圖,并成為當(dāng)前圖說明:subplot(m,n,k)的含義:圖形窗口包含(mxn)個(gè)子圖,k為要指定的當(dāng)前子圖的編號(hào)。其編號(hào)原則:左上方為第1子圖,然后向右向下依次排序。該指令按缺省值分割子圖區(qū)域。subplot(‘postion’,[left,bottom,width,height])用于手工指定子圖位置,指定位置的四元組采用歸一化的標(biāo)稱單位,即認(rèn)為整個(gè)圖形窗口繪圖區(qū)域的高、寬的取值范圍都是[0,1],而左下角為(0,0)坐標(biāo)。產(chǎn)生的子圖彼此獨(dú)立。所有的繪圖指令均可以在子圖中使用。MATLAB語言及其應(yīng)用16

例6.8演示subplot指令對圖形窗的分割

t=(pi*(0:1000)/1000)';y1=sin(t);y2=sin(10*t);y12=sin(t).*sin(10*t);subplot(2,2,1),plot(t,y1);axis([0,pi,-1,1])subplot(2,2,2),plot(t,y2);axis([0,pi,-1,1])subplot('position',[0.2,0.05,0.6,0.45])plot(t,y12,'b-',t,[y1,-y1],'r:');MATLAB語言及其應(yīng)用17

例6.8演示subplot指令對圖形窗的分割MATLAB語言及其應(yīng)用18

繪制圖形的輔助操作

曲線線形控制符

曲線顏色控制符

符號(hào)-:-.--含義實(shí)線虛線點(diǎn)劃線雙劃線符號(hào)b

grcmykw含義蘭綠紅青品紅黃黑白MATLAB語言及其應(yīng)用19

曲線的色彩、線型和數(shù)據(jù)點(diǎn)形曲線的線形控制符、顏色控制符、數(shù)據(jù)點(diǎn)形控制符可以組合使用其先后次序不影響繪圖結(jié)果也可以單獨(dú)使用。MATLAB語言及其應(yīng)用20

例6.9繪制圖形的輔助操作SpecifyLineproperties

t=(0:15)*2*pi/15;y=sin(t);subplot(3,2,1),plot(t,y);

title('Linsstyleisdefault')subplot(3,2,2),plot(t,y,'o');

title('Linsstyleiso')subplot(3,2,3),plot(t,y,'k:');

title('Linsstyleisk:')subplot(3,2,4),plot(t,y,'k:*');

title('Linsstyleisk:*')subplot(3,2,5),plot(t,y,'m-d');

title('Linsstyleism-d')subplot(3,2,6),plot(t,y,'r-p');

title('Linsstyleisr-p')MATLAB語言及其應(yīng)用21

MATLAB語言及其應(yīng)用22

坐標(biāo)、刻度和分格線控制

MATLAB語言及其應(yīng)用23

例6.10坐標(biāo)控制

繪制橢圓,長軸為3.25,短軸為1.15t=0:2*pi/99:2*pi;x=1.15*cos(t);y=3.25*sin(t);%y為長軸,x為短軸subplot(2,2,1);plot(x,y);axisofftitle('axisoff');subplot(2,2,2);plot(x,y);axisimage;title('axisimage');subplot(2,2,3);plot(x,y);axisequal;title('axisEqual');subplot(2,2,4);plot(x,y);axissquare;title('axisSquare');MATLAB語言及其應(yīng)用24

MATLAB語言及其應(yīng)用25

刻度、分格線和坐標(biāo)框

分格線與grid指令

gridon 畫出分格線gridoff 不畫分格線MATLAB的缺省設(shè)置是不畫分格線;分格線的疏密取決于坐標(biāo)刻度(改變坐標(biāo)刻度,可改變分格線的疏密)。坐標(biāo)框boxon 控制加邊框線boxoff 控制不加邊框線刻度設(shè)置指令及格式:set(gca,‘xtick’,xs,‘ytick’,ys)xs、ys可以使任何合法的實(shí)數(shù)向量,用于分別設(shè)置x、y軸的刻度。例6.11繪制y=1-exp(-0.3*t).*cos(0.7*t)

二階階躍響應(yīng)(自動(dòng)控制原理)gridontext(13.5,1.2,'\fontsize{12}{\alpha}=0.3')text(13.5,1.1,'\fontsize{12}{\omega}=0.7')cell_string{1}='\fontsize{12}\uparrow';cell_string{2}='\fontsize{16}\fontname{隸書}鎮(zhèn)定時(shí)間';cell_string{3}='\fontsize{6}';cell_string{4}=['\fontsize{14}\rmt_{s}='num2str(ts)];text(ts,0.85,cell_string,'Color','b','HorizontalAlignment','Center')title('\fontsize{14}\ity=1-e^{-\alphat}cos{\omegat}')xlabel('\fontsize{14}\bft\rightarrow')ylabel('\fontsize{14}\bfy\rightarrow')clf;t=6*pi*(0:100)/100;y=1-exp(-0.3*t).*cos(0.7*t);plot(t,y,'r-','LineWidth',3)holdontt=t(find(abs(y-1)>0.05));ts=max(tt);plot(ts,0.95,'bo','MarkerSize',10)holdoffaxis([-inf,6*pi,0.6,inf])set(gca,'Xtick',[2*pi,4*pi,6*pi],'Ytick',[0.95,1,1.05,max(y)])set(gca,'XtickLabel',{'2*pi';'4*pi';'6*pi'})set(gca,'YtickLabel',{'0.95';'1';'1.05';'max(y)'})MATLAB語言及其應(yīng)用26

MATLAB語言及其應(yīng)用27

MATLAB語言及其應(yīng)用28

圖形標(biāo)識(shí)

圖形標(biāo)識(shí)包括:圖名(title)坐標(biāo)軸名(xlabel、ylabel)圖形文本注釋(text)圖例(legend)簡捷使用格式title(s) %s為字符串變量或常量xlabel(s)ylabel(s)legend(s)text(x,y,s) %指定坐標(biāo)(x,y)處加注文字

MATLAB語言及其應(yīng)用29

圖形標(biāo)識(shí)(續(xù))精細(xì)指令形式字體樣式設(shè)置:

\fontname{arg}\arg\fontsize{arg}string

其中,String為要輸出的字符串,其前面的均為屬性控制,使用方法見下表。MATLAB語言及其應(yīng)用30

圖形標(biāo)識(shí)(續(xù))MATLAB語言及其應(yīng)用31

例6.12在正弦曲線上標(biāo)注特殊值t=(0:100)/100*2*pi;y=sin(t);plot(t,y)text(3*pi/4,sin(3*pi/4),'\fontsize{16}\leftarrowsin(t)=.707')text(pi,sin(pi),'\fontsize{16}\leftarrowsin(t)=0')text(5*pi/4,sin(5*pi/4),'\fontsize{16}sin(t)=-.707\rightarrow',...'HorizontalAlignment','right')其中,‘HorizontalAlignment’,‘right’設(shè)置圖形標(biāo)識(shí)為水平右對齊MATLAB語言及其應(yīng)用32

例6.13

t=0:900;plot(t,0.25*exp(-0.005*t))title('\fontsize{16}\itAe^{\alphat}');text(300,.25*exp(-0.005*300),...'\fontsize{14}\leftarrow0.25\ite^-0.005\ittat\itt=300');MATLAB語言及其應(yīng)用33

2.特殊圖形直方圖(柱形圖)bar垂直直方圖累計(jì)式分組式水平直方圖累計(jì)式分組式MATLAB語言及其應(yīng)用34

例6.15x=-2.9:0.2:2.9;bar(x,exp(-x.*x),'r')MATLAB語言及其應(yīng)用35

例6.16北京市從業(yè)人員統(tǒng)計(jì)(萬人)

1990年 1995年 2000年第一產(chǎn)業(yè)90.7 70.6 73.9第二產(chǎn)業(yè) 281.6 271 214.6第三產(chǎn)業(yè) 254.8 323.7 326.5執(zhí)行以下語句:year=[199019952000];people=[90.7281.6254.8;70.6271323.7;73.9214.6326.5];bar(year,people,‘stack’);legend(‘\fontsize{6}第一產(chǎn)業(yè)’,‘\fontsize{6}第二產(chǎn)業(yè)’,‘\fontsize{6}第三產(chǎn)業(yè)');MATLAB語言及其應(yīng)用36

累計(jì)式直方圖MATLAB語言及其應(yīng)用37

bar(year,people,‘group’);

%分組式直方圖legend(‘\fontsize{6}第一產(chǎn)業(yè)’,‘\fontsize{6}第二產(chǎn)業(yè)’,‘\fontsize{6}第三產(chǎn)業(yè)');MATLAB語言及其應(yīng)用38

barh(year,people,‘group’);%分組式直方圖legend(‘\fontsize{6}first’,‘\fontsize{6}second’,‘\fontsize{6}third');MATLAB語言及其應(yīng)用39

barh(year,people,‘stack’);

%累積式直方圖legend(‘\fontsize{6}first’,‘\fontsize{6}second’,‘\fontsize{6}third');MATLAB語言及其應(yīng)用40

餅圖指令pie

餅圖指令pie用來表示各元素占總和的百分?jǐn)?shù)。該指令第二輸入變量是與第一變量同長的0-1向量,1使對應(yīng)扇塊突出。a=[1,1.6,1.2,0.8,2.1];subplot(1,2,1),pie(a,[10100]),legend({'1','2','3','4','5'})subplot(1,2,2),b=int8(a==min(a))pie3(a,b)colormap(cool)

MATLAB語言及其應(yīng)用41

MATLAB語言及其應(yīng)用42

離散桿圖stem

余弦波的采樣信號(hào)圖t=linspace(-2*pi,2*pi,20);h=stem(t,cos(t));MATLAB語言及其應(yīng)用43

例6.17分別以條形圖、填充圖、

階梯圖和桿圖形式繪圖x=0:0.35:7;y=2*exp(-0.5*x);subplot(221);bar(x,y,'g');title('bar(x,y,''g'')');axis([0,7,0,2]);subplot(222);fill(x,y,'r');title('fill(x,y,''r'')');axis([0,7,0,2]);subplot(223);stairs(x,y,'b');title('stairs(x,y,''b'')');axis([0,7,0,2]);subplot(224);stem(x,y,'k');title('stem(x,y,''k'')');axis([0,7,0,2]);MATLAB語言及其應(yīng)用44

例6.18極坐標(biāo)圖polar函數(shù)用來繪制極坐標(biāo)圖,其調(diào)用格式為:polar(theta,rho,選項(xiàng))例:繪制ρ=sin(2θ)cos(2θ)的圖形theta=0:0.01:2*pi;rho=sin(2*theta).*cos(2*theta);polar(theta,rho,‘r');MATLAB語言及其應(yīng)用45

3.三維繪圖的基本操作三維線圖指令plot3三維繪圖指令中,plot3最易于理解,它的使用格式與plot十分相似,只是對應(yīng)第3維空間的參量。t=(0:0.02:2)*pi;x=sin(t);y=cos(t);z=cos(2*t);plot3(x,y,z,'b-',x,y,z,'bd');view([-82,58]);boxonlegend('鏈','寶石')MATLAB語言及其應(yīng)用46

三維線圖繪制結(jié)果MATLAB語言及其應(yīng)用47

三維網(wǎng)線圖(mesh)和曲面圖(surf)畫函數(shù)z=f(x,y)所代表的三維空間曲面,需要做以下的數(shù)據(jù)準(zhǔn)備工作:確定自變量的取值范圍和取值間隔。x=x1:dx:x2;y=y1:dy:y2;構(gòu)成x-y平面上的自變量采樣“格點(diǎn)”矩陣。利用MATLAB指令meshgrid產(chǎn)生“格點(diǎn)”矩陣[xa,ya]=meshgrid(x,y)

;計(jì)算函數(shù)在自變量采樣“格點(diǎn)”上的函數(shù)值,即z=f(x,y)。網(wǎng)線圖、曲面圖繪制。MATLAB語言及其應(yīng)用48

舉例繪制函數(shù)z=x^2+y^2的曲面x=-4:4;y=x;[x,y]=meshgrid(x,y);

%生成x-y坐標(biāo)“格點(diǎn)”矩陣z=x.^2+y.^2;%計(jì)算格點(diǎn)上的函數(shù)值subplot(1,2,1),mesh(x,y,z);

%三維網(wǎng)格圖subplot(1,2,2),surf(x,y,z);

%三維曲面圖colormap(hot);MATLAB語言及其應(yīng)用49

函數(shù)z=x^2+y^2的曲面的繪制結(jié)果一些有趣的例子:畫心clc;const=0;x=-5:0.05:5;y=-5:0.05:5;z=-5:0.05:5;[x,y,z]=meshgrid(x,y,z);f=(x.^2+(9/4)*y.^2+z.^2-1).^3-x.^2.*z.^3-(9/80)*y.^2.*z.^3-const;p=patch(isosurface(x,y,z,f,0));set(p,'FaceColor','red','EdgeColor','none');daspect([111])view(3)camlight;lightingphongMATLAB語言及其應(yīng)用50

MATLAB語言及其應(yīng)用51

MATLAB語言及其應(yīng)用52

特殊例:小球沿螺旋軌道下降t1=(0:1000)/1000*10*pi;x1=cos(t1);y1=sin(t1);z1=-t1;t2=(0:10)/10;x2=x1(end)*(1-t2);y2=y1(end)*(1-t2);z2=z1(end)*ones(size(x2));t3=t2;z3=(1-t3)*z1(end);x3=zeros(size(z3));y3=x3;t4=t2;x4=t4;y4=zeros(size(x4));z4=y4;x=[x1x2x3x4];n=length(x);ifnargin<2ki=fix(n/2);endy=[y1y2y3y4];z=[z1z2z3z4];shgplot3(x,y,z,'Color',[1,0.6,0.4],'LineWidth',2.5)axisoffh=line('xdata',x(1),'ydata',y(1),'zdata',z(1),'Color',[100],'Marker','.','MarkerSize',40,'EraseMode','xor');KK=K*n;text(-1,-0.85,-36,'倒計(jì)數(shù)')KK=KK-1;MATLAB語言及其應(yīng)用53

特殊例:htext=text(-1,-1,-40,int2str(KK));%i=2;j=1;while1set(h,'xdata',x(i),'ydata',y(i),'zdata',z(i));drawnow;%<23>pause(0.0005)%<24>i=i+1;KK=KK-1;set(htext,'string',int2str(KK))%<27>ifnargin==2&&nargout==1%if(i==ki&&j==1);f=getframe(gcf);end%<29>endifi>ni=1;j=j+1;ifj>K;break;endendendMATLAB語言及其應(yīng)用54

紅球沿下旋螺線運(yùn)動(dòng)的瞬間照片MATLAB語言及其應(yīng)用55

4.圖像文件的讀寫與圖像顯示imread指令讀取圖像文件(BMP,GIF,PNG,JPEG,andTIFF)imshow指令顯示圖像imwrite指令保存圖像例:讀取圖像文件img1=imread(‘mudan.jpg');%Loadimagedataimg2=imread('eight.tif');whosimg1img2MATLAB語言及其應(yīng)用56

NameSize

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論