后勤工程学院数学教研室数学建模与数学实验后勤工程学院数学教研室
MATLAB作图二维图形 三维图形 图形处理实例作业特殊二、三维图形
Matlab作图通过描点,连线实现,故在画一个曲线图形之前,必须先取得该图形上的一系列的点的坐标 ( 即横坐标,纵坐标 ),然后将该点集的坐标传给 Matlab函数画图 。
命令:
PLOT(X,Y,S)
PLOT(X,Y)--画实线
PLOT(X1,Y1,S1,X2,Y2,S2,……,Xn,Yn,Sn)
--将多条线画在一起
X,Y:向量,分别表示点集的横坐标和纵坐标线型
y 黄色,点 - 连线
m 洋红 o 圈,短虚线
c 蓝绿色 x x-符号 -,长短线
r 红色 + 加号 -- 长虚线
1.曲线图解
0 1 2 3 4 5 6 7
- 1
- 0,8
- 0,6
- 0,4
- 0,2
0
0,2
0,4
0,6
0,8
1
Matlab liti101
例 在 [0,2*pi]用红线画 sin(x),用绿圈画 cos(x).
x=linspace(0,2*pi,30);
y=sin(x);
z=cos(x);
plot(x,y,'r',x,z,’g0')
2.符号函数(显函数、隐函数、参数方程)画图
( 1) ezplot
ezplot(‘x(t)’,’y(t)’,[tmin,tmax]),
在区间 tmin<t<tmax绘制参数方程 x=x(t),y=y(t)的函数图
ezplot(‘f(x)’,[a,b]),在 a<x<b内绘制显函数 f=f(x)的函数图
ezplot(‘f(x,y)’,[xmin,xmax,ymin,ymax]),
在区间 xmin<x<xmax,ymin<y<ymax绘制隐函数 f(x,y)=0
的函数图例 在 [0,pi]上画 y=cos(x)的图形解 输入命令
ezplot(‘sin(x)’,[0,pi]) Matlab liti102
解 输入命令
ezplot(‘cos(t)^3’,’sin(t)^3’,[0,2*pi]) Matlab liti103
例 在 [ - 2,0,5 ],[0,2] 上画隐函数 0)s i n ( xye x 的图解 输入命令
ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2]) Matlab liti104
例 在 [ 0,2 * p i ] 上画 tx 3c o s?,ty 3s i n? 星形图
( 2) fplot
注意:
[1]fun必须是 M文件的函数名或是独立变量为 x的字符串
[2]fplot函数不能画参数方程和隐函数图形,
但在一个图上可以画多个图形。
fplot(‘fun’,lims):
绘制字符串 fun指定的函数在 lims=[xmin,xmax]图形例 在 [ - 1,2] 上画 )3s i n ( 22 xey x 的 图形解 先建 M文件 myfun1.m:
function Y=myfun1(x)
Y=exp(2*x)+sin(3*x^2)
再输入命令:
fplot(‘myfun1’,[-1,2])
Matlab liti105
Matlab liti106
解 输入命令,
fplot(‘[tanh(x),sin(x),cos(x)]’,2*pi*[-1,1,–1,1])
例 在 [-2,2]范围内绘制函数 tanh的图形解 fplot(‘tanh’,[-2,2])
Matlab liti107
例 x,y的取值范围都在 [-2π,2π],
画函数 tanh(x),sin(x),cos(x)的图形。
,
3,对数坐标图说明:
很多工程问题,通过对数据进行对数转换可更清晰地看出数据的某些特征,在对数坐标系中描绘数据点的曲线,可直接地表现对数转换。
对数转换有双对数坐标转换和单轴对数坐标转换两种。
双对数坐标转换,loglog函数单轴对数坐标转换,semilogx,semilogy函数
loglog(X,Y),x,y坐标都是以 10为底的对数比例坐标系
semilogx(X,Y),x坐标轴是对数坐标系
semilogy(…),y坐标轴是对数坐标系
plotyy,两个 y坐标轴,左、右边各一个例 用方形标记创建一个简单的 loglog
解 输入命令,
x=logspace(-1,2);
loglog(x,exp(x),’-s’)
grid on %标注格栅
Matlab liti108
例 创建一个简单的半对数坐标图解 输入命令,
x=0:.1:10;
semilogy(x,10.^x) Matlab liti109
例 绘制 y=x3的函数图、对数坐标图、半对数坐标图
Matlab liti110 返回三维图形
1,空间曲线
2,空间曲面返回空 间 曲 线
1,一条曲线例 在区间 [0,10*pi]画出参数曲线 x=sin(t),y=cos(t),
z=t,
Matlab liti201
解 t=0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
rotate3d %旋转
n维向量,分别表示曲线上点集的横坐标、纵坐标、函数值指定颜色、
线形等
PLOT3(x,y,z,s)
2,多条曲线例 画多条曲线观察函数 Z=(X+Y)2,
meshgrid(x,y) 作用:
产生一个以向量 x为行、向量 y为列的矩阵
Matlab liti202
其中 x,y,z都是 m× n矩阵,对应的每一列表示一条曲线解 x=-3:0.1:3;y=1:0.1:5;
[X,Y]=meshgrid(x,y);
Z=(X+Y).^2;
plot3(X,Y,Z)
返回
PLOT3(x,y,z)
例 画函数 Z=(X+Y)2的图形,
解 x=-3:0.1:3;
y=1:0.1:5;
[X,Y]=meshgrid(x,y);
Z=(X+Y).^2;
surf(X,Y,Z)
shading flat %将当前图形变得平滑
Matlab liti203
(1) surf(x,y,z) 画出数据点( x,y,z)表示的曲面数据矩阵。分别表示数据点的横坐标、纵坐标、函数值空 间 曲 面
( 2) Mesh(x,y,z)
解 x=-3:0.1:3; y=1:0.1:5;
[X,Y]=meshgrid(x,y);
Z=(X+Y).^2;
mesh(X,Y,Z)
Matlab liti205
例 画出曲面 Z=(X+Y)2在不同视角的网格图,
画网格曲面数据矩阵。分别表示数据点的横坐标、纵坐标、函数值
(3)meshz(X,Y,Z) 在网格周围画一个 curtain图 (如,参考平面 )
解 输入命令,
[X,Y]=meshgrid(-3:.125:3);
Z=peaks(X,Y);
Meshz(X,Y,Z)
例 绘 peaks的网格图
Matlab liti206
返回在图形上加格栅、图例和标注定制坐标图形保持分割窗口缩放图形改变视角图形处理返回动 画处理图形
( 1) GRID ON,加格栅
GRID OFF,删除格栅
( 2) hh = xlabel(string),在当前图形 x轴上加图例 string
hh = title(string),在当前图形顶端上加图例 string
hh = zlabel(string),在当前图形 z轴上加图例 string
hh = ylabel(string),在当前图形 y轴上加图例 string
1、在图形上加格栅、图例和标注例 在区间 [0,2*pi]画 sin(x)的图形,并加注图例“自变量
X”、“函数 Y”、“示意图”,并加格栅,
解 x=linspace(0,2*pi,30);
y=sin(x);
plot(x,y)
xlabel(‘自变量 X')
ylabel(‘函数 Y')
title('示意图 ')
grid on
Matlab liti301
解 x=linspace(0,2*pi,30);
y=sin(x);
z=cos(x);
plot(x,y,x,z)
gtext(‘sin(x)’);gtext(’cos(x)’)
Matlab liti302
返回命令 gtext(‘string’):在现有图上用鼠标放置标注。
说明:
运行命令 gtext(‘string’)时,屏幕上出现当前图形,在图形上出现一个交叉的十字,该十字随鼠标的移动移动,当按下鼠标左键时,该标注 string放在当前十交叉的位置。
例 在区间 [0,2*pi]画 sin(x),cos(x),并分别标注
,sin(x)”,”cos(x)”。
( 3) hh = gtext(‘string’)
2、定制坐标
Axis([xmin xmax ymin ymax zmin zmax])
解 x=linspace(0.0001,0.01,1000);
y=sin(1./x);
plot(x,y)
axis([0.005,0.01,–1,1])
Matlab liti303
返回定制图形坐标将坐标轴返回到自动缺省值Axis auto
x,y,z的最大、最小值例 在区间 [0.005,0.01]显示 sin(1/x)的图形。
3、图形保持
(1) hold on
hold of
解 x=linspace(0,2*pi,30);
y=sin(x);
z=cos(x)
plot(x,z,’ro:’)
hold on
Plot(x,y)
Matlab liti304
保持当前图形,以便继续画图到当前图上释放当前图形窗口例 将 y=sin(x),y=cos(x)分别用点和线画出在同一屏幕上。
(2) figure(h)
例 区间 [0,2*pi]新建两个窗口 分别画出
y=sin(x); z=cos(x)。
解 x=linspace(0,2*pi,100);
y=sin(x);z=cos(x);
plot(x,y);
title('sin(x)');
pause
figure(2);
plot(x,z);
title('cos(x)');
Matlab liti305
返回新建 h窗口,激活图形使其可见,并把它置于其它图形之上
4、分割窗口
h=subplot(mrows,ncols,thisplot)
划分整个作图区域为 mrows× ncols块(逐行对块访问)并激活第 thisplot块,其后的作图语句将图形画在该块上。
激活已划分为 mrows× ncols块的屏幕中的第 thisplot块,其后的作图语句将图形画在该块上。
命令 Subplot(1,1,1)返回非分割状态。
subplot(mrows,ncols,thisplot)
subplot(1,1,1)
解 x=linspace(0,2*pi,100);
y=sin(x); z=cos(x);
a=sin(x).*cos(x);b=sin(x)./(cos(x)+eps)
subplot(2,2,1);plot(x,y),title(‘sin(x)’)
subplot(2,2,2);plot(x,z),title(‘cos(x)’)
subplot(2,2,3);plot(x,a),title(‘sin(x)cos(x)’)
subplot(2,2,4);plot(x,b),title(‘sin(x)/cos(x)’)
例 将屏幕分割为四块,并分别画出
y=sin(x),z=cos(x),a=sin(x)cos(x),b=sin(x)/cos(x)
Matlab liti306
返回
5、缩放图形
zoom on
单击鼠标左键,则在当前图形窗口中,以鼠标点中的点为中心的图形放大 2倍;单击鼠标右键,则缩小 2倍解 x=linspace(0,2*pi,30);
y=sin(x);
Plot(x,y)
zoom on
Matlab liti307
例 缩放 y=sin(x)的图形
zoom off
为当前图形打开缩放模式关闭缩放模式返回
6,改变视角 view
( 1) view(a,b)
命令 view(a,b)改变视角到 (a,b),a是方位角,b为仰角。
缺省视角为( -37.5,30)。
解 x=-3:0.1:3; y=1:0.1:5;
[X,Y]=meshgrid(x,y);
Z=(X+Y).^2;
subplot(2,2,1),mesh(X,Y,Z)
subplot(2,2,2),mesh(X,Y,Z),view(50,-34)
subplot(2,2,3),mesh(X,Y,Z),view(-60,70)
subplot(2,2,4),mesh(X,Y,Z),view(0,1,1)
Matlab liti308
例 画出曲面 Z=(X+Y).^2在不同视角的网格图,
view用空间矢量表示的,三个量只关心它们的比例,与数值的大小无关,x轴 view( [1,0,0]),y轴 view( [0,1,0]),z
轴 view( [0,0,1])。
( 2) view( [x,y,z])
返回
7,动画
Moviein(),getframe,movie()
函数 Moviein()产生一个帧矩阵来存放动画中的帧;函数 getframe对当前的图象进行快照;函数 movie()按顺序回放各帧。
Matlab liti309
返回例 将曲面 peaks做成动画。
解 [x,y,z]=peaks(30);
surf(x,y,z)
axis([-3 3 -3 3 -10 10])
m=moviein(15);
for i=1:15
view(-37.5+24*(i-1),30)
m(:,i)=getframe;
end
movie(m)
特殊二、三维图形
1,特殊的二维图形函数
2,特殊的三维图形函数返回特殊的二维图形函数
1、极坐标图,polar (theta,rho,s)
theta:极角(弧度表示)
rho:极半径
s:线型例 的极坐标图形。? 2c o s2s i nr
解,theta=linspace(0,2*pi),
rho=sin(2*theta).*cos(2*theta);
polar(theta,rho,’g’)
title(‘Polar plot of sin(2*theta).*cos(2*theta)’);
Matlab liti1401
2,散点图,scatter( X,Y,S,C)
在向量 X和 Y的指定位置显示彩色圈,X和 Y必须大小相同.
解 输入命令:
load seamount
scatter(x,y,5,z)
Matlab liti402
3、平面等值线图,contour (x,y,z,n) 绘制 n个等值线的二维等值线图解 输入命令:
[ X,Y] =meshgeid(-2:.2:2,-2:.2:3);
Z=X.*exp(-X.^2-Y.^2);
[C,h]=contour(X,Y,Z);
clabel(C,h)
colormap cool Matlab liti403
例 绘制 seamount散点图例 在范围 - 2 <x <2,- 2 <y <3 内绘 22 yxxez 的等值线图返回特殊的三维图形函数
1、空间等值线图,contour 3(x,y,z,n)
其中 n表示等值线数。
例 山峰的三维和二维等值线图。
解 [x,y,z]=peaks;
subplot(1,2,1)
contour3(x,y,z,16,'s')
grid,xlabel('x-axis'),ylabel('y-axis')
zlabel('z-axis')
title('contour3 of peaks');
subplot(1,2,2)
contour(x,y,z,16,'s')
grid,xlabel('x-axis'),ylabel('y-axis')
title('contour of peaks');
Matlab liti404
3,三维散点图 scatter3( X,Y,Z,S,C)
在向量 X,Y和 Z指定的位置上显示彩色圆圈,
向量 X,Y和 Z的大小必须相同,
解 输入命令,
[x,y,z]=sphere(16);
X=[x(:)*.5 x(:)*.75 x(:)];
Y=[y(:)*.5 y(:)*.75 y(:)];
Z=[z(:)*.5 z(:)*.75 z(:)];
S=repmat([1,75,5]*10,prod(size(x)),1);
C=repmat([1 2 3],prod(size(x)),1);
scatter3(X(:),Y(:),Z(:),S(:),C(:),'filled'),
view(-60,60)
例 绘制三维散点图。
Matlab liti405
返回绘制山区地貌图要在某山区方圆大约 27平方公里范围内修建一条公路,
从山脚出发经过一个居民区,再到达一个矿区。横向纵向分别每隔 400米测量一次,得到一些地点的高程,(平面区域 0<=x<=5600,0<=y<=4800),需作出 该山区的地貌图和等高线图。
Matlab shanqu
返回返回实验作业
6、在同一平面中的两个窗口分别画出心形线和马鞍面。
要求,1,在图形上加格栅、图例和标注
2,定制坐标
3、以不同角度观察马鞍面
7、以不同的视角观察球面 和圆柱面 所围区域。
2222 rzyx
rxyx 22
1、用 plot,fplot绘制函数 y=cos(tan(πx))图形
3、用 ezplot绘制摆线 x=a(t-sint),y=a(1-cost),
t∈ [0,2π]上图形。
2、用 ezplot绘制函数 exy-sin(x+y)=0在 [-3,3]上图形。
4、用 surf,mesh绘制曲面 z=2x2+y2。
5、用 polar绘阿基米德螺线和三叶玫瑰线 。
ar?
3c o sar?
MATLAB作图二维图形 三维图形 图形处理实例作业特殊二、三维图形
Matlab作图通过描点,连线实现,故在画一个曲线图形之前,必须先取得该图形上的一系列的点的坐标 ( 即横坐标,纵坐标 ),然后将该点集的坐标传给 Matlab函数画图 。
命令:
PLOT(X,Y,S)
PLOT(X,Y)--画实线
PLOT(X1,Y1,S1,X2,Y2,S2,……,Xn,Yn,Sn)
--将多条线画在一起
X,Y:向量,分别表示点集的横坐标和纵坐标线型
y 黄色,点 - 连线
m 洋红 o 圈,短虚线
c 蓝绿色 x x-符号 -,长短线
r 红色 + 加号 -- 长虚线
1.曲线图解
0 1 2 3 4 5 6 7
- 1
- 0,8
- 0,6
- 0,4
- 0,2
0
0,2
0,4
0,6
0,8
1
Matlab liti101
例 在 [0,2*pi]用红线画 sin(x),用绿圈画 cos(x).
x=linspace(0,2*pi,30);
y=sin(x);
z=cos(x);
plot(x,y,'r',x,z,’g0')
2.符号函数(显函数、隐函数、参数方程)画图
( 1) ezplot
ezplot(‘x(t)’,’y(t)’,[tmin,tmax]),
在区间 tmin<t<tmax绘制参数方程 x=x(t),y=y(t)的函数图
ezplot(‘f(x)’,[a,b]),在 a<x<b内绘制显函数 f=f(x)的函数图
ezplot(‘f(x,y)’,[xmin,xmax,ymin,ymax]),
在区间 xmin<x<xmax,ymin<y<ymax绘制隐函数 f(x,y)=0
的函数图例 在 [0,pi]上画 y=cos(x)的图形解 输入命令
ezplot(‘sin(x)’,[0,pi]) Matlab liti102
解 输入命令
ezplot(‘cos(t)^3’,’sin(t)^3’,[0,2*pi]) Matlab liti103
例 在 [ - 2,0,5 ],[0,2] 上画隐函数 0)s i n ( xye x 的图解 输入命令
ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2]) Matlab liti104
例 在 [ 0,2 * p i ] 上画 tx 3c o s?,ty 3s i n? 星形图
( 2) fplot
注意:
[1]fun必须是 M文件的函数名或是独立变量为 x的字符串
[2]fplot函数不能画参数方程和隐函数图形,
但在一个图上可以画多个图形。
fplot(‘fun’,lims):
绘制字符串 fun指定的函数在 lims=[xmin,xmax]图形例 在 [ - 1,2] 上画 )3s i n ( 22 xey x 的 图形解 先建 M文件 myfun1.m:
function Y=myfun1(x)
Y=exp(2*x)+sin(3*x^2)
再输入命令:
fplot(‘myfun1’,[-1,2])
Matlab liti105
Matlab liti106
解 输入命令,
fplot(‘[tanh(x),sin(x),cos(x)]’,2*pi*[-1,1,–1,1])
例 在 [-2,2]范围内绘制函数 tanh的图形解 fplot(‘tanh’,[-2,2])
Matlab liti107
例 x,y的取值范围都在 [-2π,2π],
画函数 tanh(x),sin(x),cos(x)的图形。
,
3,对数坐标图说明:
很多工程问题,通过对数据进行对数转换可更清晰地看出数据的某些特征,在对数坐标系中描绘数据点的曲线,可直接地表现对数转换。
对数转换有双对数坐标转换和单轴对数坐标转换两种。
双对数坐标转换,loglog函数单轴对数坐标转换,semilogx,semilogy函数
loglog(X,Y),x,y坐标都是以 10为底的对数比例坐标系
semilogx(X,Y),x坐标轴是对数坐标系
semilogy(…),y坐标轴是对数坐标系
plotyy,两个 y坐标轴,左、右边各一个例 用方形标记创建一个简单的 loglog
解 输入命令,
x=logspace(-1,2);
loglog(x,exp(x),’-s’)
grid on %标注格栅
Matlab liti108
例 创建一个简单的半对数坐标图解 输入命令,
x=0:.1:10;
semilogy(x,10.^x) Matlab liti109
例 绘制 y=x3的函数图、对数坐标图、半对数坐标图
Matlab liti110 返回三维图形
1,空间曲线
2,空间曲面返回空 间 曲 线
1,一条曲线例 在区间 [0,10*pi]画出参数曲线 x=sin(t),y=cos(t),
z=t,
Matlab liti201
解 t=0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
rotate3d %旋转
n维向量,分别表示曲线上点集的横坐标、纵坐标、函数值指定颜色、
线形等
PLOT3(x,y,z,s)
2,多条曲线例 画多条曲线观察函数 Z=(X+Y)2,
meshgrid(x,y) 作用:
产生一个以向量 x为行、向量 y为列的矩阵
Matlab liti202
其中 x,y,z都是 m× n矩阵,对应的每一列表示一条曲线解 x=-3:0.1:3;y=1:0.1:5;
[X,Y]=meshgrid(x,y);
Z=(X+Y).^2;
plot3(X,Y,Z)
返回
PLOT3(x,y,z)
例 画函数 Z=(X+Y)2的图形,
解 x=-3:0.1:3;
y=1:0.1:5;
[X,Y]=meshgrid(x,y);
Z=(X+Y).^2;
surf(X,Y,Z)
shading flat %将当前图形变得平滑
Matlab liti203
(1) surf(x,y,z) 画出数据点( x,y,z)表示的曲面数据矩阵。分别表示数据点的横坐标、纵坐标、函数值空 间 曲 面
( 2) Mesh(x,y,z)
解 x=-3:0.1:3; y=1:0.1:5;
[X,Y]=meshgrid(x,y);
Z=(X+Y).^2;
mesh(X,Y,Z)
Matlab liti205
例 画出曲面 Z=(X+Y)2在不同视角的网格图,
画网格曲面数据矩阵。分别表示数据点的横坐标、纵坐标、函数值
(3)meshz(X,Y,Z) 在网格周围画一个 curtain图 (如,参考平面 )
解 输入命令,
[X,Y]=meshgrid(-3:.125:3);
Z=peaks(X,Y);
Meshz(X,Y,Z)
例 绘 peaks的网格图
Matlab liti206
返回在图形上加格栅、图例和标注定制坐标图形保持分割窗口缩放图形改变视角图形处理返回动 画处理图形
( 1) GRID ON,加格栅
GRID OFF,删除格栅
( 2) hh = xlabel(string),在当前图形 x轴上加图例 string
hh = title(string),在当前图形顶端上加图例 string
hh = zlabel(string),在当前图形 z轴上加图例 string
hh = ylabel(string),在当前图形 y轴上加图例 string
1、在图形上加格栅、图例和标注例 在区间 [0,2*pi]画 sin(x)的图形,并加注图例“自变量
X”、“函数 Y”、“示意图”,并加格栅,
解 x=linspace(0,2*pi,30);
y=sin(x);
plot(x,y)
xlabel(‘自变量 X')
ylabel(‘函数 Y')
title('示意图 ')
grid on
Matlab liti301
解 x=linspace(0,2*pi,30);
y=sin(x);
z=cos(x);
plot(x,y,x,z)
gtext(‘sin(x)’);gtext(’cos(x)’)
Matlab liti302
返回命令 gtext(‘string’):在现有图上用鼠标放置标注。
说明:
运行命令 gtext(‘string’)时,屏幕上出现当前图形,在图形上出现一个交叉的十字,该十字随鼠标的移动移动,当按下鼠标左键时,该标注 string放在当前十交叉的位置。
例 在区间 [0,2*pi]画 sin(x),cos(x),并分别标注
,sin(x)”,”cos(x)”。
( 3) hh = gtext(‘string’)
2、定制坐标
Axis([xmin xmax ymin ymax zmin zmax])
解 x=linspace(0.0001,0.01,1000);
y=sin(1./x);
plot(x,y)
axis([0.005,0.01,–1,1])
Matlab liti303
返回定制图形坐标将坐标轴返回到自动缺省值Axis auto
x,y,z的最大、最小值例 在区间 [0.005,0.01]显示 sin(1/x)的图形。
3、图形保持
(1) hold on
hold of
解 x=linspace(0,2*pi,30);
y=sin(x);
z=cos(x)
plot(x,z,’ro:’)
hold on
Plot(x,y)
Matlab liti304
保持当前图形,以便继续画图到当前图上释放当前图形窗口例 将 y=sin(x),y=cos(x)分别用点和线画出在同一屏幕上。
(2) figure(h)
例 区间 [0,2*pi]新建两个窗口 分别画出
y=sin(x); z=cos(x)。
解 x=linspace(0,2*pi,100);
y=sin(x);z=cos(x);
plot(x,y);
title('sin(x)');
pause
figure(2);
plot(x,z);
title('cos(x)');
Matlab liti305
返回新建 h窗口,激活图形使其可见,并把它置于其它图形之上
4、分割窗口
h=subplot(mrows,ncols,thisplot)
划分整个作图区域为 mrows× ncols块(逐行对块访问)并激活第 thisplot块,其后的作图语句将图形画在该块上。
激活已划分为 mrows× ncols块的屏幕中的第 thisplot块,其后的作图语句将图形画在该块上。
命令 Subplot(1,1,1)返回非分割状态。
subplot(mrows,ncols,thisplot)
subplot(1,1,1)
解 x=linspace(0,2*pi,100);
y=sin(x); z=cos(x);
a=sin(x).*cos(x);b=sin(x)./(cos(x)+eps)
subplot(2,2,1);plot(x,y),title(‘sin(x)’)
subplot(2,2,2);plot(x,z),title(‘cos(x)’)
subplot(2,2,3);plot(x,a),title(‘sin(x)cos(x)’)
subplot(2,2,4);plot(x,b),title(‘sin(x)/cos(x)’)
例 将屏幕分割为四块,并分别画出
y=sin(x),z=cos(x),a=sin(x)cos(x),b=sin(x)/cos(x)
Matlab liti306
返回
5、缩放图形
zoom on
单击鼠标左键,则在当前图形窗口中,以鼠标点中的点为中心的图形放大 2倍;单击鼠标右键,则缩小 2倍解 x=linspace(0,2*pi,30);
y=sin(x);
Plot(x,y)
zoom on
Matlab liti307
例 缩放 y=sin(x)的图形
zoom off
为当前图形打开缩放模式关闭缩放模式返回
6,改变视角 view
( 1) view(a,b)
命令 view(a,b)改变视角到 (a,b),a是方位角,b为仰角。
缺省视角为( -37.5,30)。
解 x=-3:0.1:3; y=1:0.1:5;
[X,Y]=meshgrid(x,y);
Z=(X+Y).^2;
subplot(2,2,1),mesh(X,Y,Z)
subplot(2,2,2),mesh(X,Y,Z),view(50,-34)
subplot(2,2,3),mesh(X,Y,Z),view(-60,70)
subplot(2,2,4),mesh(X,Y,Z),view(0,1,1)
Matlab liti308
例 画出曲面 Z=(X+Y).^2在不同视角的网格图,
view用空间矢量表示的,三个量只关心它们的比例,与数值的大小无关,x轴 view( [1,0,0]),y轴 view( [0,1,0]),z
轴 view( [0,0,1])。
( 2) view( [x,y,z])
返回
7,动画
Moviein(),getframe,movie()
函数 Moviein()产生一个帧矩阵来存放动画中的帧;函数 getframe对当前的图象进行快照;函数 movie()按顺序回放各帧。
Matlab liti309
返回例 将曲面 peaks做成动画。
解 [x,y,z]=peaks(30);
surf(x,y,z)
axis([-3 3 -3 3 -10 10])
m=moviein(15);
for i=1:15
view(-37.5+24*(i-1),30)
m(:,i)=getframe;
end
movie(m)
特殊二、三维图形
1,特殊的二维图形函数
2,特殊的三维图形函数返回特殊的二维图形函数
1、极坐标图,polar (theta,rho,s)
theta:极角(弧度表示)
rho:极半径
s:线型例 的极坐标图形。? 2c o s2s i nr
解,theta=linspace(0,2*pi),
rho=sin(2*theta).*cos(2*theta);
polar(theta,rho,’g’)
title(‘Polar plot of sin(2*theta).*cos(2*theta)’);
Matlab liti1401
2,散点图,scatter( X,Y,S,C)
在向量 X和 Y的指定位置显示彩色圈,X和 Y必须大小相同.
解 输入命令:
load seamount
scatter(x,y,5,z)
Matlab liti402
3、平面等值线图,contour (x,y,z,n) 绘制 n个等值线的二维等值线图解 输入命令:
[ X,Y] =meshgeid(-2:.2:2,-2:.2:3);
Z=X.*exp(-X.^2-Y.^2);
[C,h]=contour(X,Y,Z);
clabel(C,h)
colormap cool Matlab liti403
例 绘制 seamount散点图例 在范围 - 2 <x <2,- 2 <y <3 内绘 22 yxxez 的等值线图返回特殊的三维图形函数
1、空间等值线图,contour 3(x,y,z,n)
其中 n表示等值线数。
例 山峰的三维和二维等值线图。
解 [x,y,z]=peaks;
subplot(1,2,1)
contour3(x,y,z,16,'s')
grid,xlabel('x-axis'),ylabel('y-axis')
zlabel('z-axis')
title('contour3 of peaks');
subplot(1,2,2)
contour(x,y,z,16,'s')
grid,xlabel('x-axis'),ylabel('y-axis')
title('contour of peaks');
Matlab liti404
3,三维散点图 scatter3( X,Y,Z,S,C)
在向量 X,Y和 Z指定的位置上显示彩色圆圈,
向量 X,Y和 Z的大小必须相同,
解 输入命令,
[x,y,z]=sphere(16);
X=[x(:)*.5 x(:)*.75 x(:)];
Y=[y(:)*.5 y(:)*.75 y(:)];
Z=[z(:)*.5 z(:)*.75 z(:)];
S=repmat([1,75,5]*10,prod(size(x)),1);
C=repmat([1 2 3],prod(size(x)),1);
scatter3(X(:),Y(:),Z(:),S(:),C(:),'filled'),
view(-60,60)
例 绘制三维散点图。
Matlab liti405
返回绘制山区地貌图要在某山区方圆大约 27平方公里范围内修建一条公路,
从山脚出发经过一个居民区,再到达一个矿区。横向纵向分别每隔 400米测量一次,得到一些地点的高程,(平面区域 0<=x<=5600,0<=y<=4800),需作出 该山区的地貌图和等高线图。
Matlab shanqu
返回返回实验作业
6、在同一平面中的两个窗口分别画出心形线和马鞍面。
要求,1,在图形上加格栅、图例和标注
2,定制坐标
3、以不同角度观察马鞍面
7、以不同的视角观察球面 和圆柱面 所围区域。
2222 rzyx
rxyx 22
1、用 plot,fplot绘制函数 y=cos(tan(πx))图形
3、用 ezplot绘制摆线 x=a(t-sint),y=a(1-cost),
t∈ [0,2π]上图形。
2、用 ezplot绘制函数 exy-sin(x+y)=0在 [-3,3]上图形。
4、用 surf,mesh绘制曲面 z=2x2+y2。
5、用 polar绘阿基米德螺线和三叶玫瑰线 。
ar?
3c o sar?