天津大学matlab讲义应用基础第三章1.docx

上传人:b****8 文档编号:30495414 上传时间:2023-08-15 格式:DOCX 页数:70 大小:1.11MB
下载 相关 举报
天津大学matlab讲义应用基础第三章1.docx_第1页
第1页 / 共70页
天津大学matlab讲义应用基础第三章1.docx_第2页
第2页 / 共70页
天津大学matlab讲义应用基础第三章1.docx_第3页
第3页 / 共70页
天津大学matlab讲义应用基础第三章1.docx_第4页
第4页 / 共70页
天津大学matlab讲义应用基础第三章1.docx_第5页
第5页 / 共70页
点击查看更多>>
下载资源
资源描述

天津大学matlab讲义应用基础第三章1.docx

《天津大学matlab讲义应用基础第三章1.docx》由会员分享,可在线阅读,更多相关《天津大学matlab讲义应用基础第三章1.docx(70页珍藏版)》请在冰豆网上搜索。

天津大学matlab讲义应用基础第三章1.docx

天津大学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,无网线,且

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1