资源描述:
《matlab三维绘图详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、5.1基本三維繪圖第五章ô對於函數而言,每給一組f(x,y),便能求得其相對應的高度z,如下圖所示:三維空間繪圖z座標=(,,)xyzz=fxy(,)本章學習目標f(,)xy學習三維繪圖的基本技巧(,,)xyz學習peaks函數的用法y學習二維與三維等高線圖的繪製學習三維圖形的編修(,)xyx125.1.1繪製三維的網格圖ô利用mesh函數可繪製三維的網格圖:表5.1.1mesh函數的使用函數說明mesh(x,y,z)繪出三維的網格圖mesh(z)繪出x座標從1到m,y座標從1到n的三維的網格圖34>>xx=[234;234;2
2、34;234];ôMatlab提供了meshgrid函數,可以建立xx與yy矩陣:>>yy=[000;111;222;333]>>zz=[776;777;889;889]表5.1.2meshgrid函數的使用>>mesh(xx,yy,zz)函數說明meshgrid(vx,vy)建構出兩個二維矩陣xx與yy,以供三維繪圖所需>>x=linspace(-2,2,30);>>y=linspace(-2,2,30);>>[xx,yy]=meshgrid(x,y);>>zz=xx.*exp(-xx.^2-yy.^2);>>mesh(xx,
3、yy,zz)565.1.2繪製三維的曲面圖ô下面是meshc函數與waterfall函數用法:ô想要對網格面上色,可利用surf或其它相關的函數:表5.1.4surf與surfc函數的使用表5.1.3meshc與waterfall函數的使用函數說明函數說明surf(xx,yy,zz)繪出三維的曲面圖meshc(xx,yy,zz)繪出網格圖,但在網格圖下方會附帶繪出等高線圖surfc(xx,yy,zz)同surf,但在圖形下方會顯示出函數圖形的等高線圖waterfall(xx,yy,zz)以切片的方式來繪製三維的立體圖>>surf
4、(xx,yy,zz);>>surfc(xx,yy,zz);axistight;>>meshc(xx,yy,zz)>>waterfall(xx,yy,zz)785.2簡易的三維繪圖函數ôezmesh與ezsurf函數可以快速的繪出三維的圖形:>>ezmesh('exp(-0.2*x)*cos(t)')表5.2.1簡易三維繪圖函數的使用函數說明ezmesh(f,[xmin,xmax,ymin,ymax])根據函數f以6060×個網格數繪出f的三維圖形ezmeshc(f,[xmin,xmax,ymin,ymax])同ezmesh,但在
5、圖形下方會顯示出圖形的等高線ezsurf(f,[xmin,xmax,ymin,ymax])同ezmesh,但是網格面會上色>>ezsurfc('y/(x^2+y^2+1)',36)ezsurfc(f,[xmin,xmax,ymin,ymax])同ezsurf,但在圖形下方會顯示出圖形的等高線9105.3內建的三維圖形展示函數—peaksôpeaks所描述的數學函數,其定義式為>>peaks(24);>>[xx,yy,zz]=peaks(32);>>surfc(xx,yy,zz);2(−−+x2yx1)2⎛⎞x35−−22y1−+
6、−(x1)22yfxy(,)3(1)=−xe−10⎜⎟−−xye−e⎝⎠53表5.3.1使用peaks函數函數說明peaks以4949×個資料點繪製數學函數peaks,範圍x與y方向同為−3~3peaks(n)同peaks,但以nn×個資料點來繪圖zz=peaks計算4949×個數學函數peaks的值zz=peaks(n)以nn×個資料點計算數學函數peaks的值[xx,yy,zz]=peaks(n)以nn×個資料點計算數學函數peaks的值11125.5等高線繪圖5.4空間曲線繪圖5.5.1二維的等高線圖ôplot3函數可用來
7、繪製空間的曲線:ôMatlab的contour函數可用來繪製二維的等高線圖:表5.4.1空間曲線繪圖函數表5.5.1二維等高線繪圖函數函數說明函數說明plot3(x,y,z)以向量x,y與z繪製三維空間曲線contour(xx,yy,zz,n)分別以矩陣xx、yy與zz繪出n條等高線plot3(x,y,z,'str')以控制字串str所指定的格式繪出三維空間曲線contour(zz,n)同上,但x方向是從1到m,y方向是從1到n>>plot3(t.*sin(t),t.*cos(t),t);contour(xx,yy,zz,[z1
8、,z2,z3,...])繪出高度為z1,z2,z3,...的等高線圖contourf(xx,yy,zz,n)同contour函數,但會以顏色填滿(fill)等高線圖1314>>contour(xx,yy,zz)>>contourf(xx,yy,zz,20)ô要標