天津大学matlab讲义应用基础第三章1.docx
- 文档编号:30495414
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:70
- 大小:1.11MB
天津大学matlab讲义应用基础第三章1.docx
《天津大学matlab讲义应用基础第三章1.docx》由会员分享,可在线阅读,更多相关《天津大学matlab讲义应用基础第三章1.docx(70页珍藏版)》请在冰豆网上搜索。
天津大学matlab讲义应用基础第三章1
第3章MATLAB的图形功能
MATLAB可以给计算数据以二维、三维的图形表现。
通过对图形线型、色彩、光线、视角等的指定和处理,可把计算数据的特征更好地表现出来。
在MATLAB中有两个层次的绘图命令:
高层与底层绘图命令。
高层命令简单实用,底层命令有更强、更灵活的控制和表现图形的能力。
本章将先后介绍上述两类绘图命令。
但重点介绍高层绘图命令。
3.1二维图形
3.1.1基本二维绘图命令–plot
1、调用格式
格式1:
plot(x,y)
功能:
(1)若x,y为同规模的向量,则绘制以x为横坐标、y为纵坐标的一条曲线。
例如:
x=0:
0.02:
6;
y=1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6;
plot(x,y)运行结果如下图所示:
(2)若x为向量、y是二维数组,则绘制以x为横坐标、y的每一列为纵坐标的多条曲线。
例如:
x=0:
0.02:
6;
y=[sin(x);cos(x)]';
plot(x,y)运行结果如下图所示:
(3)若x,y均为二维数组(必须相同规模),则绘制以它们的对应列为横、纵坐标的多条曲线。
例如:
x=[0:
0.02:
6;0:
0.02:
6];
y=[sqrt(x(1,:
));exp(-x(2,:
))];
plot(x.',y.')运行结果如下图所示:
注意:
在绘图时,以上x或y中的虚部将被忽略。
例如:
x=0:
0.2:
10*pi;
y=sqrt(sin(x));
plot(x,y)运行结果如下图所示:
格式2:
plot(y)
功能:
(1)若y为向量,其元素为实数,则绘制以其下标为横坐标、以y为纵坐标的图形,即相当于plot(1:
length(y),y)。
例如:
x=0:
0.02:
6;
y=1./((x–0.3).^2+0.01)+1./((x–0.9).^2+0.04)-6;
plot(y)
运行结果如下图所示:
(1)若y为复数向量,则绘制以其实部为横坐标,以其虚部系数为纵坐标的图形,即相当于plot(real(y),imag(y))。
例如:
x=0:
0.2:
2*pi;
y=sqrt(sin(x))
plot(y)
运行结果如下图所示:
y=
Columns1through4
00.44570.62400.7514
Columns5through8
0.84700.91730.96540.9927
Columns9through12
0.99980.98680.95360.8992
Columns13through16
0.82190.71800.57880.3757
Columns17through20
0+0.2416i0+0.5055i0+0.6652i0+0.7822i
Columns21through24
0+0.8699i0+0.9336i0+0.9755i0+0.9968i
Columns25through28
0+0.9981i0+0.9792i0+0.9399i0+0.8791i
Columns29through32
0+0.7945i0+0.6816i0+0.5286i0+0.2883i
(3)若是按y绘制曲线,曲线条线等于y的列数。
例如:
x=0:
0.2:
10*pi;
y=[sin(x);cos(x)]';
plot(y)
运行结果如下图所示:
格式3:
plot(x1,y1,x2,y2,…)
功能:
分别以(x1,y1)为二元组,(x2,y2)为二元组,…,按照plot(x,y)命令规则,绘出各组图形。
如:
x=0:
0.02:
2*pi;
y=sin(x);z=cos(x);
plot(x,y,x,z)运行结果如下图所示:
格式4:
(指定曲线线型、颜色和标记的)
plot(x,s)
plot(x,y,s)
plot(x1,y1,s1,x2,y2,s2…)
其中s为一字符串,用于指定绘图时的曲线线型、曲线颜色和线的标记。
曲线线型:
-(实线,缺省设置)
:
(虚线)
-.(点划线)
--(双划线)
例如:
x=0:
0.02:
2*pi;
y=sin(x);z=cos(x);
plot(x,y,':
',x,z,'-.')
运行结果如下图所示
曲线颜色
yyellow(黄色)
mmagenta(品红)
ccyan(青)天兰
rred(红)
ggreen(绿)
bblue(兰)
wwhite(白)
kblack(黑)
例如:
x=0:
0.02:
2*pi;
y=sin(x);z=cos(x);
plot(x,y,'c',x,z,'r')
运行结果如下图所示:
曲线标记
·point(点)
Xx-mark(叉号)
Ocircle(圆_字母O)
+plus(加号)
*star(星号)
ssquare(方块)
ddiamond(点)
vtriangle(down)(下三角)
^triangle(up)(上三角)
>triangle(right)(右三角) ppentagram(空心五角星) hhexagram(空心六角星) x=0: 0.2: 2*pi; y1=sin(x);y2=cos(x);y3=sqrt(x); holdon plot(x,y1,'.') plot(x,y2,'s') plot(x,y3,'^') 运行结果如下图所示: 实际上,可以同时指定曲线的颜色、标记和线型。 例如: x=0: 0.2: 2*pi; y1=sin(x); y2=cos(x); y3=sqrt(x); holdon plot(x,y1,'bp-') plot(x,y2,'rh--') plot(x,y3,'g^') 运行结果如下图所示: 3.1.2坐标网格、标注和图例说明 1、坐标网格 gridon在当前图中加网格线 gridoff去掉当前图中的网络线 2、标注 title(字符串) 功能: 当前坐标系顶部加标题 xlabel(字符串) 功能: 当前坐标系x轴旁加标题(下方) ylabel(字符串) 功能: 当前坐标系y轴旁加标题(左侧) text(x,y,字符串) 功能: 当前坐标系指定位置处加文本 gtext(字符串) 功能: 在鼠标单击处加文本 3、图例说明 legend(字符串1,字符串2,…) 功能: 在当前图形内建立一图例说明框,框内显示各字符串。 并且图形的曲线与字符串依次对应,可用鼠标拖动图例框改变其位置。 legendoff 功能: 删掉图例说明框 例如: x=linspace(0,2*pi); y=sin(x);z=cos(x); plot(x,y,'b: ',x,z,'m+') xlabel('变量X') ylabel('函数Y、Z') title('正弦与余弦曲线') gridon text(3.3,0.1,'sin(x)') %gtext('cosx')本命令要用鼠标,在Notebook中不能用 legend('sin(x)','cos(x)') 运行结果如下图所示: 3.1.3坐标轴的形式和刻度 在缺省状态下,坐标轴自动显示、自动刻度、且为笛卡儿直角坐标系。 MATLAB中有以下对坐标轴操作的命令: axis([Xmin,Xmax,Ymin,Ymax]) 功能: 设定坐标范围 v=axis 功能: 获取当前坐标范围,存入v中(v为行向量[Xmin,Xmax,Ymin,Ymax]) axis('auto') 功能: 恢复缺省坐标设置 axis('xy') 功能: 使用笛卡儿坐标轴(即缺省) axis('ij') 功能: 使用矩阵坐标轴() axis(‘square’) 功能: 显示矩形坐标框 axis(‘equal’) 功能: 使各坐标轴刻度增量相同 axis(‘normal’) 功能: 使以上两个命令失效 axis(‘off’) 功能: 隐去坐标轴 axis(‘on’) 功能: 显示坐标轴 [s1,s2,s3]=axis(‘state’) 返回当前坐标轴的属性: s1: ‘anto’—自动刻度 ‘manual’—人工刻度 s2: ‘on’—显示坐标轴 ‘off’—隐去坐标轴 s3: ‘xy’—笛卡儿坐标轴 ‘ij’—矩阵坐标轴 例如: x=linspace(0,2*pi); y=sin(x);z=cos(x); plot(x,y,'b: ',x,z,'k--') axis('off') gridoff xlabel('变量X') ylabel('函数Y、Z') title('正弦与余弦曲线') text(2.5,0.7,'sin(x)') text(4.8,0.7,'cos(x)') legend('sin(x)','cos(x)') 运行结果如下图所示: 3.1.4图形窗口操作 1、创建图形窗口 figure 功能: 创建一个新的图形窗口。 在第一个绘图命令运行后,将自动创建名为"FigureNo.1"的图形窗口,后续的绘图命令均是在该窗口中作用的。 figure命令,将顺序地创建"FigureNo.2"、"FigureNo.3"、…等图形窗口,但是,如若"FigureNo.1"不存在,则创建该窗口。 2、创建或选择第n个图形窗口 figure(n) 功能: 选择第n个图形窗口为当前窗口,若该窗口不存在,则创建它。 3、子坐标系统 在同一图形窗口中,可以创建n个子坐标系统,并指定其中之一为当前坐标系统。 subplot(m,n,p) 将当前窗口划分为m×n个子坐标系统,并选择其中第p个坐系统为当前坐标系统。 各子坐标系统按行排序,编号分别为1,2,…,m×n。 特别地subplot(1,1,1)将删除所有子坐标系统而生成一个占满窗口的坐标系统。 例如: x=linspace(0,2*pi,30); y=sin(x);z=cos(x); a=2*sin(x).*cos(x); b=sin(x)./(cos(x)+eps); subplot(2,2,1) plot(x,y) axis([0,2*pi,-1,1]) title('sin(x)') subplot(2,2,2) plot(x,z) axis([0,2*pi,-1,1]) title('cos(x)') subplot(2,2,3) plot(x,a) axis([0,2*pi,-1,1]) title('2sin(x)cos(x)') subplot(2,2,4) plot(x,b) axis([0,2*pi,-20,20]) title('sin(x)/cos(x)') 运行结果如下图所示: 4、图形重叠绘制 holdon 功能: 保留当前图形及其坐标轴,允许后续图形附加到原图上。 holdoff 功能: 其后的绘图命令将抹掉原图而重新绘制(缺省设置) hold 功能: on与off的状态切换 5、图形缩放 zoomon 功能: 使当前图形窗口的图形可放缩。 在此状态下,单击右键放大,单击右键缩小,直至恢复原大小。 或者拖动出一个矩形框而放大。 注意: 本命令与legend命令均可拖动鼠标,应互斥使用。 zoomoff 功能: 关闭放缩状态 zoom 功能: 切换on与off状态 3.1.5其它二维图形命令 1、坐标轴刻度改变后的绘图命令(用法与plot同) loglog(x,y) 功能: x,y轴均采用对数刻度绘制图形 semilogx(x,y) 功能: 仅x轴采用对数刻度,y轴仍采用线性刻度 semilogy(x,y) 功能: 仅y轴采用对数刻度,x轴仍采用线性刻度 2、特殊图形绘制命令 bar(x,y) 功能: 绘制条状图 例如: x=-2.9: 0.2: 2.9; y=exp(-x.*x); bar(x,y); title('BarchartofaBellcurve'); 运行结果如下图所示: stairs(x,y) 功能: 绘制阶梯状图 例如: x=-2.9: 0.2: 2.9; y=exp(-x.*x); stairs(x,y); title('StairschartofaBellcurve'); 运行结果如下图所示: stem(x,y) 功能: 绘制火柴杆状图 例如: x=0: 0.2: 4*pi; y=exp(-0.3*x).*sin(x); stem(x,y); title('Stemplot'); 运行结果如下图所示: hist(x,y) 功能: 绘制在y的每个分量附近x中的元素出现的频数直方图 例如: x=-2.9: 0.2: 2.9; y=randn(5000,1); hist(y,x);%统计y所出现的频数图 title('Histogramofrandomdata'); 运行结果如下图所示: errorbar(x,y,e) 功能: 函数y=f(x)在x各分量处的误差条状图 例如: x=0: 0.2: 2*pi; y=sin(x); e=rand(size(x))/5;%随机误差值 errorbar(x,y,e); title('Errorbarplot'); 运行结果如下图所示: 3、极坐标下的曲线绘制 polar(θ,ρ) 功能: 在θ的范围内ρ的曲线图 例如: t=0: 0.1: 8*pi; r=2*sin(t/2); polar(t,r); title('双心脏线'); 运行结果如下图所示: 4、玫瑰图 rose(v) 功能: 在极坐标中将[0,2π]等分20份,以极轴表示v在不同分量处频率的扇形玫瑰图 rose(v,n) 功能: 将[0,2π]等分n份,绘制v中元素在不同分量处频率的玫瑰图 v=randn(100,1)*pi; rose(v); title('玫瑰图'); 运行结果如下图所示: 5、二维函数专用命令 fplot(fname,lims,marker,tol) 功能: 绘制fname所包含二维函数的曲线 其中: fname—函数字符串向量 lims—自变量取值区值,形为[Xmin, Xmax]或[Xmin,Xmax,Ymin,Ymax] marker—绘制曲线所用标记,缺省为 ‘-’。 可接受的标记还有: ‘-+’、‘-×’、‘-0’、‘-*’。 tol—相对误差上限,缺省为2*10–3. x的最大数为 。 marker和tol可以省略。 [x,y]=fplot(fname,lims,…) 功能: 将返回绘图时所用的向量x和相应y。 如: fplot(‘[sin(x),cos(x)]’,[0,4*pi]) fplot('tan(sin(x))-sin(tan(x))' [0,4*pi]) fplot(‘sin(x)’,[0,4*pi],‘0’) 这种自适应绘图一般绘图质量较好,但速度稍慢。 此外,ezplot(fname,lims)也有类似功能。 6、拓扑关系绘图命令 gplot(A,xy,lc) 其中: A为一个图G的邻接矩阵,即若a(i,j)非0,则从结点i到结点j有一条边,但A未必为方阵。 xy为一个n×2的矩阵,表示各结点的位置。 即xy(i,: )=[x(i),y(i)] lc为线型和颜色,缺省为‘r–’,其指明方式与plot命令相同。 例如: a=[0,1,0,1,0; 1,0,0,0,1; 0,0,0,0,1; 1,1,0,0,0; 0,1,1,0,0]; xy=[1,5; 4,7.4; 6,3.5; 5,2; 2,3]; gplot(a,xy) text(1.1,5,'1') text(4,7.4,'2') text(5.9,3.6,'3') text(5.1,2.1,'4') text(2,2.8,'5') 运行结果如下图所示: 7、填充多边形命令 fill(x,y,c) 功能: 填充由点(x1,y1),(x2,y2),…,(xn,yn)构成的多边形,其颜色由c指明。 例如: x=1: 5; y=[0,-1,1,-1,0]; fill(x,y,'r') 运行结果如下图所示: 8、区域填充命令 area(x,y,'属性名1',属性值1,…) 功能: 对x、y界定的区域填充,并对各属性设置对应属性值。 例如: t=linspace(0,2*pi,14); x=sin(2*t); y=cos(2*t); area(x,y,'facecolor','r') 运行结果如下图所示: 9、对比绘图命令 plotyy(x1,y1,x2,y2) 功能: 在同一坐标系中使用不同坐标绘制两个图形 例如: x=-2*pi: pi/10: 2*pi; y=sin(x); z=2*abs(cos(x)); subplot(2,1,1) plot(x,y,x,z) title('按相同坐标刻度绘制两个图形') subplot(2,1,2) plotyy(x,y,x,z,'plot','semilogy') title('按不同坐标刻度绘制两个图形') 运行结果如下图所示: 10、带状图绘制命令 ribbon(x,y,c) 功能: 绘制三维带状图 例如: x=-2*pi: pi/30: 2*pi; y=sin(x); ribbon(x,y,'b') 运行结果如下图所示: 在MATLAB中,还有一些其它二维绘图命令,如pie(饼图)、barh(二维水平条状图)等。 即使这里介绍的命令,也有其它不同的形式,请大家自学。 3.2.2曲面网线图和表面图 1、曲面的彩色网线图 如果已知n维的向量x和m维的向量y及相应的二元函数z=f(x,y)的离散值zij=f(xj,yi)(其中: I=1,2,…,m,j=1, 2,…,n),则绘制二元函数空间曲面网线图 的基本步骤如下: 1)生成网格结点矩阵X和Y: [X,Y]=meshgrid(x,y) 其中: X为m×n的矩阵,其每一行都是x向量的复制,而Y也为m×n矩阵,其每列均为y向量的复制。 2)由X,Y计算函数值矩阵Z 3)使用命令mesh绘制曲面网线彩图 mesh(X,Y,Z) 绘制由X,Y,Z决定的网线图,图中以(Xij,Yij,Zij)作为结点,结点间互连,网线颜色随Z值大小而变化。 mesh(x,y,Z) 绘制由向量x,y和矩阵Z决定的网线图,网线结点为(xj,yi,Zij)。 mesh(Z) 绘制由(1: n,1: m,Z)决定的网线图。 网线结点为(i,j,Zij) 例如: x=-7.5: 0.5: 7.5; y=x; [X,Y]=meshgrid(x,y); r=sqrt(X.^2+Y.^2)+eps; Z=sin(r)./r; mesh(X,Y,Z) title('阔边帽网线图') 运行结果如下: 2、曲面彩色图形 如果已知x和y,并已生成了网络点矩阵X,Y,以及函数值矩阵Z(方法与曲面网线图一样),则要绘制曲面彩色图形可使用如下命 令: 1)surf(X,Y,Z,C) 其中: c指定表面色彩,缺省为c=Z,即按Z值(高度)填充各图块。 2)surf(x,y,Z) 3)surf(Z) 例如: x=-7.5: 0.5: 7.5; y=x; [X,Y]=meshgrid(x,y); r=sqrt(X.^2+Y.^2)+eps; Z=sin(r)./r; surf(X,Y,Z) title('阔边帽网线图') 运行结果如下: 3、平面等值线图 如果已知x,y并已生成了网格点矩阵X和Y,以及函数值矩阵Z(方法与曲面网线图一样),则要绘制以Z为高程值,以x,y为模纵坐标的平面等值线图,可使用如下命令: 1)contour(X,Y,Z) 2)contour(X,Y,Z,n) 其中: n为等值线条数,缺省值为10。 3)contour(X,Y,Z,v) 以向量v中的值绘制相应等值线,等值线条线为length(v)。 4)contour(Z) 以Z下标为横纵坐标值绘等值线。 5)contour(Z,n) 6)contour(Z,v) 7)[C,H]=contour(…) 将Z值送入C中,并把每条等值线的图形句柄送入H,以便控制其线型、颜色、线宽等。 例如: [X,Y,Z]=peaks; contour(X,Y,Z) title('PEAKS函数的等值线图 (1)') pause contour(X,Y,Z,10) title('PEAKS函数的等值线图 (2)') pause contour(X,Y,Z,[35710]) title('PEAKS函数的等值线图(3)') pause contour(Z) title('PEAKS函数的等值线图(4)') pause contour(Z,10) title('PEAKS函数的等值线图(5)') 运行结果如下: 4、三维等值线的绘制 当网线矩阵X,Y已知,并已计算出相应函数值矩阵Z后,可使用下述命令绘制三维等值线图: 1)contour3(Z) 2)contour3(Z,n) 其中: n缺省为10 3)contour3(X,Y,Z) 4)contour3(X,Y,Z,n) 5)[C,H]=contour3(…) 6)contour3(X,Y,Z,v) 各项含义同contour命令。 例如: z=peaks; contour3(z) pause contour3(z,20) 运行结果如下: 5、二元函数的伪彩色图(等值线) 即用颜色表示平面图表中二元函数值的大小(高度)、方法如下: 1)首先指定颜色集 pcolor(X,Y,Z) 表示在由X,Y构造的平面上,用Z的元素确定相应小格子的颜色。 pcolor(Z) 表示在由Z的下标值构造的平面上,用Z的元素确定相应小格子的颜色。 2)使用命Shading令控制着色模式 Shadingflat|interp|faceted 缺省为faceted,即着色网格并附加黑色网线。 若为flat,无网线,且
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 天津大学 matlab 讲义 应用 基础 第三