曲面及等值线绘图

MATLAB

3.2.2 曲面及等值线绘图


如果要画一个三维的曲面,MATLAB是以meshgrid配合与meshsurf指令来绘图。先要以meshgrid产生在x-y平面 的二维的网格数据,再以一组z轴的数据对应到这个二维的网格,即可画出三维的曲面。以下的例子可说明上 述的绘图过程。

>> x=-7.5:0.5:7.5; y=x; % 先产生xy二个阵列

>> [X,Y]=meshgrid(x,y); % 再以meshgrid形成二维的网格数据

>> R=sqrt(X.^2+Y.^2)+eps; % 加上eps可避免当R在分母时趋近零时会无法定义

>> Z=sin(R)./R; % 产生z轴的数据

>> mesh(X,Y,Z) % z轴的变化值以网格方式画出

>> surf(X,Y,Z) % z轴的变化值以曲面方式画出

>> mesh(peaks) % 直接将以定义的peaks函数以网格方式画出

>> title('Mesh plot of peaks')

与三维绘图有关的还有等值线图,相关指令为contour,contour3contour是将等值线图以二维图表示,其语法有 几个方式。一是contour(Z),contour(Z,n),其中Z是一个二维矩阵,而 n为等值线的数目(如果不给即以自动方式 设定)。另一种语法则是将z轴的值对应到指定的x,y轴的值,语法为contour(X,Y,Z),contour(X,Y,Z,n),其中X,Y, Z代表x,y,z轴的数据。contour3则是将等值线以三维图表示,其语法与contour类似,只是将对应的关键字contour 改成contour3,其余部份相同。

以下的例子可以比较contour, contour3图示的不同:

>> [X,Y,Z]=peaks; % x,yz轴的数据由peaks函数定义

>> subplot(2,2,1)

>> contour(Z,20) % 画出peaksZ轴二维等值线图,20为等值线的数目

>> subplot(2,2,2)

>> contour(X,Y,Z,20) % 画出peaks的二维等值线图,注意x,y轴与上图不同

>> subplot(2,2,3)

>> contour3(Z,20) % 画出peaksZ轴二维等值线图

>> subplot(2,2,4)

>> contour3(X,Y,Z,20) % 画出peaks的三维等值线图,注意x,y轴与上图不同



上一页 下一页 讲义大纲