MATLAB程序设计教程Word文档格式.docx
《MATLAB程序设计教程Word文档格式.docx》由会员分享,可在线阅读,更多相关《MATLAB程序设计教程Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
教学基本内容和过程第五章MATLAB绘图
5.1绘制二曲线的基本函数
5.1.1绘制单根二维曲线
plot函数的基本调用格式为:
plot(x,y)
其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。
-0.5x例5-1在0?
x?
2,区间内,绘制曲线y=2ecos(4πx)
程序如下:
x=linspace(0,2*pi,100);
y=2.*exp(-0.5.*x).*cos(4.*pi.*x);
第页1
运行结果:
plot函数最简单的调用格式是只包含一个输入参数:
plot(x)
在这种情况下,当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘制折线图。
5.1.2绘制多根二维曲线
1(plot函数的输入参数是矩阵形式
(1)当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同颜色的曲线。
曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。
(2)当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。
(3)对只包含一个输入参数的plot函数,当输入参数是实矩阵时,则按列绘制每列元素值相对其下标的曲线,曲线条数等于输入参数矩阵的列数。
当输入参数是复数矩阵时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。
2(含多个输入参数的plot函数
调用格式为:
plot(x1,y1,x2,y2,…,xn,yn)
(1)当输入参数都为向量时,x1和y1,x2和y2,…,xn和yn分别组成一组向量对,每一组向量对的长度可以不同。
每一向量对可以绘制出一条曲线,这样可以在同一坐标内绘制出多条曲线。
(2)当输入参数有矩阵形式时,配对的x,y按对应列元素为横、纵坐标分别绘
第页2
制曲线,曲线条数等于矩阵的列数。
例5-2在图形窗口中,以子图形yxyxyyyyx1sin()2cos()312,4^3,,,,,,,式同时绘制多根曲线。
x=linspace(-2*pi,2*pi,1000);
y1=sin(x);
y2=cos(x);
y3=y1.*y2;
y4=x.^3;
subplot(2,3,1);
plot(x,y1);
title('
y1=sin(x)'
);
subplot(2,2,2);
plot(x,y2);
y2=cos(x)'
subplot(2,2,3);
plot(x,y3);
y3=y1.*y2'
)subplot(2,2,4);
plot(x,y4);
y4=x.^3'
)
第页3
5.3分段函数的绘图
2,ln(sin()1)0xxx,,,,,例5-3已知,在[-2*pi,2*pi],区间绘制函数曲线。
y,,cos(4)x,x,0,2e,
方法1源程序:
x=linspace(-2*pi,2*pi,1000);
y=(log(sin(x)+sqrt(1+x.^2))).*(x<
=0)+(cos(4.*x)./exp
(2)).*(x>
0);
plot(x,y);
方法2源程序:
x1=linspace(-2*pi,0,100);
y1=(log(sin(x1)+sqrt(1+x1.^2)));
x2=linspace(0,2*pi,100);
y2=(cos(4.*x2)./exp
(2));
plot(x1,y1,'
r'
x2,y2,'
b'
第页4
5.4其他形式的线性直角坐标图在MATLAB中,二维统计分析图形很多,常见的有条形图、阶梯图、杆图和
填充图等,所采用的函数分别是:
bar(x,y,选项)
stairs(x,y,选项)
stem(x,y,选项)
fill(x1,y1,选项1,x2,y2,选项2,…)
例5-4分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。
x=0:
pi/10:
2*pi;
y=2*sin(x);
subplot(2,2,1);
bar(x,y,'
g'
'
)'
axis([0,7,-2,2]);
stairs(x,y,'
stem(x,y,'
k'
subplot(2,2,4);
fill(x,y,'
y'
第页5
5.5极坐标图
polar函数用来绘制极坐标图,其调用格式为:
polar(theta,rho,选项)
其中theta为极坐标极角,rho为极坐标矢径,选项的内容与plot函数相似。
例5-5绘制r=sin(t)cos(t)的极坐标图,并标记数据点。
程序如下:
a=input('
inputa:
b=input('
inputb:
n=input('
inputn:
t=0:
pi/50:
r=a*sin(b+n*t).*cos(b+n*t);
polar(t,r,'
-*'
2
pi
4
第页6
5.6绘制空间曲线
5.6.1三维曲线
plot3函数与plot函数用法十分相似,其调用格式为:
plot3(x1,y1,z1,选项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对应列元素绘制三维曲线,曲线条数等于矩阵列数。
xt,sin,
ytt,,,cos020,,例5-6绘制三维曲线。
曲线所对应的参数方程为:
zttt,sincos,
pi/100:
20*pi;
x=sin(t);
y=cos(t);
z=t.*sin(t).*cos(t);
plot3(x,y,z);
Linein3-DSpace'
xlabel('
X'
ylabel('
Y'
zlabel('
Z'
gridon;
5.7绘制三维曲面的函数
第页7
5.7.1产生三维数据
在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。
其格式为:
x=a:
d1:
b;
y=c:
d2:
d;
[X,Y]=meshgrid(x,y);
语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数
5.7.2绘制三维曲面的函数
surf函数、mesh函数和contour3函数的调用格式为:
mesh(x,y,z)
surf(x,y,z)
contour3(x,y,z,5);
一般情况下,x,y,z是维数相同的矩阵。
x,y是网格坐标矩阵,z是网格点上的高度矩阵。
x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。
例5-7绘制三维曲面图z=sin(x+sin(y))-x/10。
[x,y]=meshgrid(0:
0.25:
4*pi);
z=sin(x+sin(y))-x/10;
mesh(x,y,z);
axis([04*pi04*pi-2.51]);
此外,还有带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz。
其用法与mesh类似,不同的是meshc还在xy平面上绘制曲面在z轴方向的等高线,meshz还在xy平面上绘制曲面的底座。
第页8
mesh()
Surf()
5.8隐函数绘图
5.8.1MATLAB提供了一个ezplot函数绘制隐函数图形,下面介绍其用法。
1(对于函数f=f(x),ezplot函数的调用格式为:
ezplot(f):
在默认区间-2π<
x<
2π绘制f=f(x)的图形。
ezplot(f,[a,b]):
在区间a<
b绘制f=f(x)的图形。
2(对于隐函数f=f(x,y),ezplot函数的调用格式为:
2π和-2π<
y<
2π绘制f(x,y)=0的图形。
ezplot(f,[xmin,xmax,ymin,ymax]):
在区间xmin<
xmax和ymin<
ymax绘制f(x,y)=0的图形。
b和a<
b绘制f(x,y)=0的图形。
第页9
3(对于参数方程x=x(t)和y=y(t),ezplot函数的调用格式为:
ezplot(x,y):
在默认区间0<
t<
2π绘制x=x(t)和y=y(t)的图形。
ezplot(x,y,[tmin,tmax]):
在区间tmin<
t<
tmax绘制x=x(t)和y=y(t)的图形。
5.8.2三维曲面图的绘制函数ezsurf的格式为:
ezsurf(f,[xmin,xmax,ymin,ymax])
功能:
绘制符号表达式f代表的x、y二元函数的在[xmin,xmax,ymin,ymax]范围内的三维曲面。
ezsurf(x,y,z,[smin,smax,tmin,tmax])
绘制在[smin,smax,tmin,tmax]范围内x=x(s,t),y=y(s,t)和z=z(s,t)的三维曲面。
s,xet,cos
,s,yetst,,,,,sin0805,,例5-8绘制曲面图形,,并进行插值着色处理。
zt,,
源程序:
s=linspace(0,8,100);
t=linspace(0,5*pi,100);
ezsurf('
exp(-s).*cos(t)'
'
exp(-s).*sin(t)'
t'
[0,8],[0,5*pi]);
shadinginterp;
%ezsurf参考p114,