Matlab之绘图函数
为了显示三维图形,MATLAB提供了各种各样的函数。有一些函数可在三维空间中画线,而另一些可以画曲面与线格框架。另外,颜可以用来代表第四维。当颜以这种方式使用时,由于它不再象照片中那样显示信息的自然属性----彩,而且也不是基本数据的内在属性,所以它称作伪彩。为了简化对三维图形的讨论,对颜的介绍推迟到下一章。在这一章,主要讨论绘制三维图形的基本概念。 以下所讨论的函数和它们的特征总结在表2、表3、表4和表5中: 表2
| ||||||||||||||||||||||||||||
表示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=0,el=90 |
view(3) | 设置缺省的三维视图,az=-37.5,el=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 | 用滑标来调整视角 |
另外提醒一点,Matlab的reshape函数是列优先的,如:
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/
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
一、直接绘图函数
直接绘图函数有两个,fplot和ezplot
1.fplot
fplot命令的调用格式主要有:
(1)fplot(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)。
(2)fplot(fun,lims,n):用最少n+1个点来绘制函数fun的图形,其中n大于等于1。
>>fplot('x^2',[-1 1]) %在[-1,1]范围内绘制函数y=x^2
直接绘图函数有两个,fplot和ezplot
1.fplot
fplot命令的调用格式主要有:
(1)fplot(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)。
(2)fplot(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л,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л,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,所以其调用格式简单,绘图方便。
y =
-1/3*x^3+1/3*x^4
>>ezplot(y) %绘制符号函数y在[-2л,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用于
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)
例:
用曲面图表现函数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小时内删除。
发表评论