matlab各种三维绘图及实例

绝世美人儿
520次浏览
2021年03月01日 11:28
最佳经验
本文由作者推荐

-

2021年3月1日发(作者:明天你好)


Matlab


绘制三维图形




三维曲线



plot3


函数与


plot


函数用法十 分相似,其调用格式为:



plot3(x1,y1,z1,< /p>


选项


1,x2,y2,z2,


选项


2,…,xn,yn,zn,选项


n)


其中 每一组


x,y,z


组成一组曲线的坐标参数,选项的定义和


plot


函数相同。当


x,y,z


是同


维向量时,则


x,y,z


对应元素构成一条三维曲线。当


x,y,z


是同维矩阵 时,则以


x,y,z



应列元素绘制三 维曲线,曲线条数等于矩阵列数。






绘制三维曲线。



程序如下:



t=0:pi/100:20*pi;


x=sin(t);


y=cos(t);


z=t.*sin(t).*cos(t);


plot3(x,y,z);


title('Line in 3-D Space');


xlabel('X');ylabel('Y');zlabel('Z');




三维曲面



1


.产生三维数据


< br>在


MATLAB


中,利用


mes hgrid


函数产生平面区域内的网格坐标矩阵。其格式为:



x=a:d1:b; y=c:d2:d;


[X,Y]=meshgrid(x,y);


语句执行后,矩 阵


X


的每一行都是向量


x


,行数等于向量


y


的元素的个数,矩阵


Y


的每一列


都是向量


y


,列数等于向量


x


的元素的个数。



2


.绘制三维曲面的函数


< p>
surf


函数和


mesh


函数的调用格式为:



mesh(x,y,z,c)

< p>
:画网格曲面,将数据点在空间中描出


,


并连成网 格。



surf(x,y,z,c)


:画完整曲面,将数据点所表示曲面画出。



一般情况下,


x,y,z


是维数相同的矩阵。


x,y


是网格坐标矩阵,


z


是网格点上的高度矩阵 ,


c


用于指定在不同高度下的颜色范围。






绘 制三维曲面图


z=sin(x+sin(y))-x/10


。< /p>



程序如下:



[x,y]=meshgrid(0:0.25:4*pi); %


< br>[0,4pi]


×[0,4pi]区域生成网格坐标



z=sin(x+sin(y))-x/10;


mesh(x,y,z);


axis([0 4*pi 0 4*pi -2.5 1]);


此外,还有带等高线的三维网格曲面函数


meshc


和带底座的三维网格曲面函数


meshz


。其用


法与


mesh


类似,不同的是


meshc


还在


xy

< br>平面上绘制曲面在


z


轴方向的等高线,

< br>meshz


还在


xy


平面上绘制 曲面的底座。







xy< /p>


平面内选择区域


[-


8,8]×[


-8,8]


,绘制


4


种三维曲面图。



程序如下:



[x,y]=meshgrid(-8:0.5:8);


z= sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);


subplot(2,2,1);


mesh(x,y,z);


title('mesh(x,y,z)')


subplot(2,2,2);


meshc(x,y,z);


title('meshc(x,y,z)')


subplot(2,2,3);


meshz(x,y,z)


title('meshz(x,y,z)')


subplot(2,2,4);


surf(x,y,z);


title('surf(x,y,z)')


3


.标准三维曲面



sphere


函数的调用格式为:


< /p>


[x,y,z]=sphere(n)



generates three (N+1)-by-(N+1) matrices so that SURF(X,Y,Z)


produces a unit sphere.


cylinder


函数的调用格式为:



[x,y,z]= cylinder(R,n)


,其中


r


为圆周半径,


n


为 组成圆周的点数。



MATLAB


还有一个


peaks


函数,称为多峰函数,常用于三维曲面的演示。






绘制标准三维曲面图形。



程序如下:



t=0:pi/20:2*pi;


[x,y,z]= cylinder(2+sin(t),30);


subplot(2,2,1);


surf(x,y,z);


subplot(2,2,2);


[x,y,z]=sphere;


surf(x,y,z);


subplot(2,1,2);


[x,y,z]=peaks(30);


surf(x,y,z);




其他三维图形



在介绍二维图形时,< /p>


曾提到条形图、


杆图、


饼图和填充图等特 殊图形,


它们还可以以三维形


式出现,使用的函数分别是


bar3



stem3



pie3



fill3




bar3


函数绘制 三维条形图,常用格式为:



bar3(y)


bar3(x,y)


stem3


函数 绘制离散序列数据的三维杆图,常用格式为:



stem3(z)


stem3(x,y,z)


pie3


函数绘制三维饼图,常用格式为:



pie3(x)


fill3


函数等效 于三维函数


fill


,可在三维空间内绘制出填充过的多边形, 常用格式为:



fill3(x,y,z,c)





绘制三维图形:



(1)


绘制魔方阵的三维条形图。



(2)


以三维杆图形式绘制曲线


y=2sin(x)

< br>。



(3)


已知


x=[2347,1827,2043,3025]


,绘制饼图。

< p>


(4)


用随机的顶点坐标值画出五个黄色三角形。



程序如下:



subplot(2,2,1);


bar3(magic(4))


subplot(2,2,2);


y=2*sin(0:pi/10:2*pi);


stem3(y);


subplot(2,2,3);


pie3([2347,1827,2043,3025]);


subplot(2,2,4);


fill3(rand(3,5),rand(3,5),rand(3,5), 'y' )





绘制多峰函数的瀑布图和等高线图。



程序如下:



subplot(1,2,1);


[X,Y,Z]=peaks(30);


waterfall(X,Y,Z)


xlabel('X-a xis'),ylabel('Y-axis'),zlabel('Z-axis');


subplot(1,2,2);


contour3(X,Y,Z,12,'k'); %


其中< /p>


12


代表高度的等级数



xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-ax is');



图形修饰处理




视点处理



MATLAB


提供了设置视点的函数


view

< br>,其调用格式为:



view(az,el)


其中


az


为方位角,


e l


为仰角,它们均以度为单位。系统缺省的视点定义为方位角


-


37.5°,


仰角


30°。

< p>




从不同视点绘制多峰函数曲面。




程序如下:



subplot(2,2,1);mesh(peaks);


view(-37.5,30); %


指定子图


1


的视点



title('azimuth=-37.5,elevation=30')


subplot(2,2,2);mesh(peaks);


view(0,90); %


指定子图


2


的视点



title('azimuth=0,elevation=90')


subplot(2,2,3);mesh(peaks);


view(90,0); %


指定子图


3


的视点



title('azimuth=90,elevation=0')


subplot(2,2,4);mesh(peaks);


view(-7,-10); %


指定子图


4

< br>的视点



title('azimuth=-7,elevation=-10')

-


-


-


-


-


-


-


-