Matlab之绘图函数
为了显示三维图形,MATLAB提供了各种各样的函数。有一些函数可在三维空间中画线,而另一些可以画曲面与线格框架。另外,颜可以用来代表第四维。当颜以这种方式使用时,由于它不再象照片中那样显示信息的自然属性----彩,而且也不是基本数据的内在属性,所以它称作伪彩。为了简化对三维图形的讨论,对颜的介绍推迟到下一章。在这一章,主要讨论绘制三维图形的基本概念。
以下所讨论的函数和它们的特征总结在表2、表3、表4和表5中:
2
contour
二维等值线图,即从上向下看contour3等值线图
contour3
等值线图
fill3
填充的多边形
mesh
网格图
meshc
具有基本等值线图的网格图
meshz
有零平面的网格图
pcolor
二维伪彩绘图,即从上向下看surf
plot3
直线图
quiver
二维带方向箭头的速度图
surf
曲面图
surfc
具有基本等值线图的曲面图
surfl
带亮度的曲面图
waterfall
无交叉线的网格图
 
                 
表示3
axis
修正坐标轴属性
clf
清除图形窗口
clabel
放置等值线标签
close
关闭图形窗口
figure
创建或选择图形窗口
getframe
捕捉动画桢
grid
放置网格
griddata
对画图用的数据进行内插
hidden
隐蔽网格图线条
hold
保留当前图形
meshgrid
产生三维绘图数据
movie
放动画
moviein
创建桢矩阵,存储动画
shading
在曲面图和伪彩图中用分块、平滑和插值加阴影
subplot
在图形窗口内画子图
text
在指定的位置放文本
title
放置标题
view
改变图形的视角
xlabel
放置x轴标记
ylabel
放置y轴标记
zlabel
放置z轴标记
4
view(az,el)
设置视图的方位角az和仰角el
view([az,el])
view([x,y,z])
在笛卡儿坐标系中沿向量[x,y,z]正视原点设置视图,例如view([0 0 1])=view(0,90)
view(2)
设置缺省的二维视图,az=0el=90
view(3)
设置缺省的三维视图,az=-37.5el=30
[az,el]=view
返回当前的方位角az和仰角el
view(T)
用一个4×4的转置矩阵T来设置视图
T=view
返回当前的4×4转置矩阵
5
mmcont2(X,Y,Z,C)
具有颜映象的二维等值线图
mmcont3(X,Y,Z,C)
具有颜映象的三维等值线图
mmspin3d(N)
旋转当前图形的三维方位角来制作动画
mmview3d
用滑标来调整视角
另外提醒一点,Matlabreshape函数是列优先的,如:
y =    1    2    3    4    5    6
reshape(y,3,2)=
    1    4
    2    5
    3    6
而不是      1 2  3
                4 5    6
zhanglili011282.blog.163/blog/static/816261002008111631157417/
 
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
一、直接绘图函数
直接绘图函数有两个,fplotezplot
1.fplot
fplot命令的调用格式主要有:
1fplot(fun,lims,str,tol):直接绘制函数y=fun(x)的图形。其中,lims为一个向量,若lims只包含两个元素则表示x轴的范围:[xmin,xmax]。若lims包含四个元素则前两个元素表示x轴的范围:[xmin,xmax],后两个元素表示y轴的范围:[ymin,ymax]str可以指定图形的线型和颜。tol的值小于1,代表相对误差,默认值为0.002,即0.2%
>>fplot(@humps,[-1,5])  %[-1,5]范围内绘制函数humps
上述命令中,@humps表示以函数句柄的形式引用函数。(C:\Program Files\MATLAB\R2009a\toolbox\matlab\demos\humps.m)
2fplot(fun,lims,n):用最少n+1个点来绘制函数fun的图形,其中n大于等于1
>>fplot('x^2',[-1 1])  %[-1,1]范围内绘制函数y=x^2


2. ezplot,ezplot3
ezplot命令是绘制符号表达式的自变量和对应各函数值的二维曲线,ezplot3命令用于绘制三维曲线。
(1) 曲线绘图
语法:
ezplot(F,[xmin,xmax],fig)  %画符号表达式F的图形
说明:F是将要画的符号函数;[xmin,xmax]是绘图的自变量范围,省略时默认值为[2л]fig是指定的图形窗口,省略时默认为当前图形窗口。
例:
>>y =sym('-1/3*x^3+1/3*x^4') 
y =
-1/3*x^3+1/3*x^4 
>>ezplot(y)   %绘制符号函数y[2л]中的图形
>>ezplot(y,[0,100])  %绘制符号函数y[0,100]中的图形
又例
 >>x=sym('sin(t)');
 >>y=sym('cos(t)');
 >>z=sym('t');
 >>ezplot3(x,y,z,[0,10*pi],'animate')  %绘制t[0,10*pi]范围的三维曲线 
(2)曲面绘制

>>ezmesh('sin(x)*exp(-t)','cos(x)*exp(-t)','x',[0,2*pi])
ezmesh意为Easy to use 3-D mesh plotter,所以其调用格式简单,绘图方便。

3)其它绘图命令
MATLAB还提供了如下表所示的较常用绘图命令。这些命令的举例都是对字符串函数进行绘图,同样也可用于符号表达式绘图。
命令名 含义 举例
ezcontour 画等高线 ezcontour('x*sin(t)',[-4,4])
ezcontourf 画带填充颜等高线 ezcontourf('x*sin(t)',[-4,4])
ezmesh 画三维网线图 ezmesh('sin(x)*exp(-t)','cos(x)*exp(-t)','x',[0,2*pi])
ezmeshc 画带等高线的三维网线图 ezmeshc('sin(x)*t',[-pi,pi])
ezpolar 画极坐标图  ezpolar('sin(t)',[0,pi/2])
ezsurf 画三维曲面图 ezsurf('x*sin(t)','x*cos(t)','t',[0,10*pi])
ezsurfc 画带等高线的三维曲面图 ezsurfc('x*sin(t)','x*cos(t)','t',[0,pi,0,2*pi])

二、网格法绘制三维曲面
1.产生三维数据
MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。其格式为:
x=a:d1:b; y=c:d2:d;
[X,Y]=meshgrid(x,y);
语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量matlab等高线间隔y,列数等于向量x的元素的个数。
2.绘制三维曲面的函数
surf函数和mesh函数的调用格式为:
mesh(x,y,z,c)
surf(x,y,z,c)
一般情况下,x,y,z是维数相同的矩阵。x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于
指定在不同高度下的颜范围。
例:
用曲面图表现函数y=x^2+y^2
clf,x=-4:4;y=x;[X,Y]=meshgrid(x,y);
Z=X.^2+Y.^2;
surf(X,Y,Z); %mesh(X,Y,Z) 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。