matlab meshgrid函数_matlab入门(三)图像可视化
matlab圖像可視化
基本要求
(1)掌握圖形窗口的創(chuàng)建與控制,以及圖形窗口的基本操作;(2)熟練掌握二維和三維繪圖基本的命令、線型控制;(3)初步掌握用特殊的圖形來表現(xiàn)特殊數(shù)據(jù)的性質,如面積圖、直方 圖、餅圖等。(4)掌握坐標軸的控制和圖形標注命令及其用法。1. 二維平面圖形與坐標系
幾個基本的繪圖命令
線性坐標曲線 plot 函數(shù)命令 plot 是 MATLAB 二維曲線繪圖中最簡單、最重要、使用最廣泛的一個線性繪圖函數(shù)。它可以生成線段、曲線和參數(shù)方程曲線的函數(shù)圖形。命令格式:
在同一圖形窗口中用命令 plot(x,y)繪出正弦余弦函數(shù)的圖形。
plot 函數(shù)可以設置曲線的線段類型、定點標記和線段顏色。?調用格式:plot(x,y,s) ,s 為類型說明參數(shù),是字符串。?s 字符串可以是三種類型的符號之一,也可以是線型與顏色和定點標記與顏色的組合;如果沒有 s 參數(shù),plot 將使用缺省設置(實線,前七種顏色順序著色)繪制曲線;在當前坐標系中繪圖時,每調入一次繪圖函數(shù),MATLAB將擦掉坐標系中已有的圖形對象。可以用 hold on 命令在一個坐標系中增加新的圖形對象。注意MATLAB會根據(jù)新圖形的大小,重新改變坐標系的比例。
用不同的線型和標注來繪制兩條曲線。
圖形窗口的分割 有時需要在一個圖形窗口中顯示幾幅圖,以便對幾個函數(shù)進行直觀、便捷的比較。由于每個繪圖命令在繪制數(shù)據(jù)圖像時都會將已有圖形覆蓋掉,而用 hold 命令不能實現(xiàn)同時顯示幾個不同坐標尺寸下的圖形,用 figure 命令再創(chuàng)窗口又很難同時比較由不同的數(shù)據(jù)繪得的圖像。實現(xiàn)在同一個窗口中同時顯示多個圖像的命令subplot。使用格式為:
- subplot(m,n,i)
其含義為 :把圖形窗口分割為 m 行 n 列子窗口,然后選定第 i 個窗口為當前窗口。subplot 命令不僅用于二維圖形,對三維圖形一樣適用。其本質是將 figure 窗口分為幾個區(qū)域,再在每個區(qū)域內分別繪圖。
- %用 subplot 函數(shù)把兩種不同的圖形綜合在一個圖形窗口中。subplot(2,2,1)t=0.1:0.1:2*pi;y=sin(t);semilogx(t,y)grid onsubplot(2,2,2)t=0:0.1:4*pi;y=sin(t);plot(t,y)subplot(2,2,3)x=1:0.01:5;y=exp(x);plot(x,y,x,y,’semilogx’,’plot’)subplot(2,2,4)x=1:0.1:10;y=sqrt(x);plot(x,y,’:rd’)
坐標系的調整 實現(xiàn)坐標系的調整的命令是 axis 函數(shù)。調用格式為:** axis([xmin,xmax,ymin,ymax,zmin,zmax])** 坐標的最小值( xmin,ymin,zmin)必須小于相應的最大值( xmax,ymax,zmax),否則會出錯。自動坐標系與用 axis 函數(shù)調整后的坐標系的比較。
2. 三維繪圖 ##
三維曲線繪圖命令 三維函數(shù) plot3主要用來表現(xiàn)單參數(shù)的三維曲線,與二維繪圖函數(shù) plot 相比,只多了第三維數(shù)據(jù)。其調用格式為:
- plot3(X1,Y1,Z1,s1,X2,Y2,Z2,s2,…)
參數(shù)的含義如下:Xn、Yn、Zn:第一到三維數(shù)據(jù),是尺寸相等的向量/矩陣;s、s1、s2:是字符串,用來設置線型、顏色、數(shù)據(jù)點標記。x、y、z 是向量時,plot3 命令的使用
t=0:0.1:8*pi;plot3(sin(t),cos(t),t)title(’繪制螺旋線’) %用命令 title 對圖形主題進行標注xlabel(’sin(t)’)ylabel(’cos(t)’)zlabel(’t’)%命令 zlabel 用來指定 z 軸的數(shù)據(jù)名稱grid onx、y、z 都是矩陣時,plot3 命令的使用
[X,Y]=meshgrid(-pi:0.1:pi);Z=sin(X)+cos(Y);plot3(X,Y,Z)三維曲面繪圖命令 為了繪制定義在平面區(qū)域 D =[x0,xm]×[y0,yn ]上的三維曲面z=f(x,y) ,首先將[x0,xm]在 x 方向分成 m 份,將[y0,yn]在 y 方向分成 n 份,由各劃點分別作平行于坐標軸的直線,將區(qū)域 D 分成 m×n 個小矩形;對于每個小矩形,計算出網(wǎng)格點的函數(shù)值,決定出空間中四個頂點( xi,yi,f(xi,yi)),連接四個頂點得到一個空間的四邊形片;所有四邊形片連在一起構成函數(shù) z=f(x,y)定義在區(qū)域 D 上的空間網(wǎng)格曲面。因此,三維曲面繪圖命令可分為平面網(wǎng)格點的生成、在平面網(wǎng)格基礎上繪制三維網(wǎng)格及對三維表面進行處理三個步驟。
平面網(wǎng)格點的生成 函數(shù)命令meshgrid 用來生成 x-y 平面上的網(wǎng)格點矩陣。調用形式為:
- [X,Y]=meshgrid(x,y)[X,Y]=meshgrid(x) 等價于[X,Y]=meshgrid(x,x)
參數(shù)含義如下:?x:是區(qū)間[x0,xm]上分劃的向量;y:是區(qū)間[y0,yn]上分劃的向量;X,Y:輸出變量矩陣,矩陣 X 的行向量都是向量 x,矩陣 Y 的列向量都是向量 y。函數(shù) meshgrid 將由兩個向量決定的區(qū)域轉換為對應的網(wǎng)格點矩陣。
三維網(wǎng)格命令 mesh 利用函數(shù)mesh生成網(wǎng)格曲面。調用格式為:
mesh(X,Y,Z,C):X、Y、Z、C 是同維數(shù)的矩陣,X、Y、Z 對應空間上的網(wǎng)格點,網(wǎng)格線顏色由C決定;
mesh(X,Y,Z):相當于上面的 C=Z 的情況;
mesh(x,y,Z,C):x 和 y 是向量,Z 和 C 是同維數(shù)的矩陣,網(wǎng)格曲面的網(wǎng)格頂點是( x(j),y(i),Z(i,j)),網(wǎng)格線的顏色由矩陣 C 決定;
mesh(x,y,Z):相當于上面的 C=Z 的情況;
mesh(Z,C):等價于 mesh(x,y,Z,C),此時向量x=1:n,向量 y=1:m;
mesh(Z):相當于上面的 C=Z 的情況
mesh(...,’PropertyName’,PropertyValue,...):給函mesh設置曲面屬性。
三維表面命令 surf 函數(shù) surf 可實現(xiàn)對網(wǎng)格曲面片進行著色,將網(wǎng)格曲面轉化為實曲面。surf 命令的調用格式與 mesh 相同。利用三維網(wǎng)格表面命令 surf 繪制圖形。
z=peaks; %繪制山峰的圖像,將函數(shù)值賦予變量z
surf(z) %對山峰的圖像進行著色處理
shading interp %函數(shù) shading 改變著色方式
柱面的表達cylinder cylinder命令中,柱面的軸線定義為 z 軸,只要給出母線的描述就可完成一個柱面。調用格式為:
[X,Y,Z] = cylinder(R,N);
[X,Y,Z] = cylinder(R):缺省值 N=20;
[X,Y,Z] = cylinder:缺省值 N=20,R=[1,1]。
R:是一描述柱面母線的向量;N:是旋轉柱面上的分割線條數(shù);[X,Y,Z] :是返回的x,y,z坐標向量。繪制一個柱面。
t=pi:0.01:3*pi;r=sin(t)+t;cylinder(r,30)shading interp球面的表達sphere 調用格式為:
[X,Y,Z]=sphere(N):產(chǎn)生一個( N+1)×( N+1)的矩陣,然后用函數(shù) surf 命令繪制一個單位的球面,N 為設置分割線的條數(shù);
[X,Y,Z] = sphere:缺省 N = 20。
畫一個球面。
[X,Y,Z]=sphere;surf(X,Y,Z)特殊圖形繪制
為了將抽象的數(shù)據(jù)表達得更形象,除了繪制二維、三維圖形外,還要用到直方圖、面積圖、餅圖等特殊圖形。
圖像標注修飾
圖形標注
坐標軸和圖形標題標注 ;標注坐標軸 x、y 和 z 的命令函數(shù)為 xlabel、ylabel 和 zlabel ,調用格式為:
xlabel(’text’)xlabel(’text’,’Property1’,PropertyValue1,’Property2’,PropertyValue2,...)H = xlabel(...) 返回坐標軸標注的句柄。其中,’text’是要添加的標注文本。’Property’是文本的屬性名,’PropertyValue’是屬性值(所用字體、大小、標注角度等)。圖形加標題的函數(shù)為 title,其調用格式與坐標軸標注類似。
圖例的標注 legend命令實現(xiàn)不同圖例的說明。其調用格式為:
legend(string1,string2,string3, ...)
legend(string1,string2,string3,...,Pos)
按順序把字符串添加到相應的曲線線型符號之后;Pos對圖例的位置作出設置和調整:
0 = 自動把圖例置于最佳位置( 和圖中曲線重復最少);1 = 置于圖形窗口的右上角( 缺省值);2 = 置于圖形窗口的左上角;3 = 置于圖形窗口的左下角;4 = 置于圖形窗口的右下角;-1 = 置于圖形窗口的右側( 外部)。控制分格線 對二維和三維圖形都適用。有三種用法:
grid on:打開分格線控制開關,以后繪制的圖形都帶有分格線;
grid off:關閉分格線控制開關,以后繪制的圖形都不帶分格線;
grid:用于實現(xiàn)分格線繪制切換。
舉例
繪制圖形,并用函數(shù) xlabel、title 和 legend 命令進行標注。
t=0:0.1:4*pi; y=sin(t); y1=cos(t);plot(t,y,':',t,y1,'r*')xlabel('x 軸 (0--4\pi)','fontsize',12,'fontweight','bold')ylabel('y 軸','fontsize',12,'fontweight','bold')title('繪制正弦波和余弦波 Pos=1','fontsize',10,'fontweight','bold','fontangle','italic')text(pi,0,'\leftarrowsin(\pi)=0')text(pi,-1,'\leftarrowcos(\pi)=-1')text(pi/2,0.9,['\uparrowsin(\pi/2)=',num2str(sin(pi/2))])text(0,-0.6,['繪圖日期:',date])text(0,-0.8,['MATLAB 版本:',version])legend('正弦波','余弦波')figure(2)plot(t,y,':',t,y1,'r*')title('繪制正弦波和余弦波 Pos=0','fontsize',10,'fontweight','bold','fontangle','italic')legend('正弦波','余弦波',0)grid onfigure(3)plot(t,y,':',t,y1,'r*')title('繪制正弦波和余弦波 Pos=-1','fontsize',10,'fontweight','bold','fontangle','italic')總結
以上是生活随笔為你收集整理的matlab meshgrid函数_matlab入门(三)图像可视化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简谈红旗-17防空导弹系统
- 下一篇: 中国军机:歼6战斗机有多厉害?