二维图形提供了plot函数,同样,三维图形也有自己的函数plot3,能够在一个三维空间内绘制出三维的曲线,函数调用格式如下:
plot(x,y,z,选项) x,y,z为维数相同的向量,分别存储了三个坐标的值,选项的意义,同plot函数选项。
>>clear all;
>>t=0:pi/50:10*pi;
>>plot3(sin(t),cos(t),t)
>>grid on
>>axis square
matlab提供了绘制三维表面网格图的函数,调用格式:mesh(x,y,z,c)
x,y,z,c分别构成三维曲线的x,y和z向量;c为色彩矩阵,表示不同高度z下的色彩范围值。
meshgrid函数是平面网格坐标矩阵的表示函数,调用格式如下:
[X,Y]=meshgrid(x,y)
[X,Y]=meshgrid(x)
[X,Y,Z]=meshgrid(x,y,z)
>>[X,Y]=meshgird(1:3,10:14)
>>X=
> 1 2 3
> 1 2 3
> 1 2 3
> 1 2 3
> 1 2 3
>>Y=
> 10 10 10
> 11 11 11
> 12 12 12
> 13 13 13
> 14 14 14
>>[X,Y]=meshgrid(-2:.2:2,-2:.2:2);
>>Z=X.*exp(-X.^2-Y.^2);
>>surf(X,Y,Z)
surf(x,y,z) %绘制三维表面图形
surc(x,y,z) %绘制带有等高线的三维表面图形
surfl(x,y,z) %绘制带有阴影的三维表面图形
coutour(x,y,z) %等高线图形
例题1:绘制 z = − x 2 + y 2 z=-\sqrt{x^2+y^2} z=−x2+y2 的网线图和曲面。
>>clear all;
>>x=-9:0.5:9;
>>y=x;
>[x,y]=meshgrid(x,y); %坐标网格函数
>>z=-sqrt(x.^2+y.^2); %函数表达式
>>z=-z.*z;
>>surf(x,y,z); %三维曲面图,如图1-1
>>pause;
>>mesh(x,y,z) %三维曲面图,如图1-2
例题2:利用meshz绘制三维曲线
>>clear all;
>>x=-3:.125:3;
>>[X,Y]=meshgrid(x);
>>Z=peaks(X,Y);
>>meshz(X,Y,Z)