MATLAB基础1314实验.docx
- 文档编号:3639867
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:20
- 大小:266.44KB
MATLAB基础1314实验.docx
《MATLAB基础1314实验.docx》由会员分享,可在线阅读,更多相关《MATLAB基础1314实验.docx(20页珍藏版)》请在冰豆网上搜索。
MATLAB基础1314实验
实验十三MATLAB图形绘制基础
(一)
一、实验目的:
(1)掌握基本的绘图命令;
(2)了解各种图形注视方法;
二、实验内容和步骤:
1、基本的绘图命令
MATLAB7语言在绘图方面的功能非常全面,可以很方便地绘制二维、三维甚至多维图形。
(1)、图形窗口简介:
MATLAB7语言的绘图函数和工具可将所绘制的图形在“图形”窗口中显示出来,该窗口将与MATLAB7的主窗口隔离出来,如图13-1所示。
在默认情况下,MATLAB7语言使用不同的线型和颜色来区分图形中的数据。
用户可以修改图形中各元素的线型和颜色,或是在图形中增加注释,从而更好地表达图形。
图13-1图形窗口
(2)、基本的绘图命令:
MATLAB7语言提供了一系列的函数来将向量数据以线性图形的方式表示出来,以及一些注释和打印图形的函数。
表13-1列出了一些绘制基本线性图形的函数。
这些函数与坐标轴的比例关系各不相同,但是它们的输入都是向量或是矩阵的形式,并自动按比例调整坐标轴的比例来适应这些数据。
表13-1绘制基本图形的函数表
函数名
功能描述
plot
在x轴和y轴都按线性比例绘制二维图形
plot3
在x轴、y轴和z轴都按线性比例绘制三维图形
loglog
在x轴和y轴按对数比例绘制二维图形
semilogx
在x轴按对数比例,y轴按线性比例绘制二维图形
semilogy
在y轴按对数比例,x轴按线性比例绘制二维图形
plotyy
绘制双y轴图形
(3)、绘图的一般步骤:
创建一个基本图形的过程如表13-2所示,该表显示了一些典型的步骤以及每个步骤的典型实例。
如果用户只是进行分析操作,那么只需要将各种数据在图形中显示出来,在这种情况下,只需要进行第1步和第3步即可;如果用户需要创建描述性的详图,那么就需要进行诸如图形定位、设置线型和颜色、增加注释等操作。
表13-2基本绘图步骤
步骤
典型代码
1.准备绘图数据
x=0:
0.2:
12;y1=bessel(1,x);
2.选择一个窗口并在窗口中给图形定位
figure
(1),subplot(2,2,1)
3.调用基本的绘图函数
h=plot(x,y1,x,y2,x,y3);
4.选择线型和标记特性
set(h,'LineWidth',2,{'LineStyle'},{'--';':
';'-.'})
5.设置坐标轴的极限值、标记符号和网格线
axis([012-0.51])
6.使用坐标轴标签、图例和文本对图形进行注释
xlabel('Time')ylabel('Amplitude')
2、绘制二维图形曲线:
(1)、二维曲线图在MATLAB7中的绘制是最为简便的。
如果将X轴和Y轴的数据分别保存在两个向量中,同时向量的长度完全相等,那么可以直接调用函数进行二维图形的绘制。
在MATLAB7中,使用plot函数进行二维曲线图的绘制。
●plot(y)命令当y是实向量时,则以该向量元素的下标为横坐标,元素值为纵坐标画出一条曲线。
如果y属于复数向量时,那么plot(y)等价于plot(real(y),imag(y)),即以real(y)为横坐标,imag(y)为纵坐标来绘制二维图形。
若y为实矩阵时,则按列绘制每列元素值相对其下标的曲线,曲线条数等于y阵中的列数。
当输入参数是复数矩阵时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。
●plot(x,y)命令用于绘制向量y相对于向量x的图形。
当x是向量,y是一维与x同维的矩阵时,则绘制出多根不同色彩的曲线。
曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。
当x,y为同维矩阵时,则以x、y对应列元素为横、纵坐标绘制曲线,曲线条数等于矩阵列数。
例13-1在同一坐标中同时绘出正弦和余弦曲线。
>>x=linspace(0,2*pi,100);
>>y=[sin(x);cos(x)];%矩阵y是一维与x同维的矩阵
>>plot(x,y)
或
>>t=linspace(0,2*pi,100);
>>x=[t;t]’;%矩阵x、y是同维
>>y=[sin(t);cos(t)]’;
>>plot(x,y)
所得图形如图13-2所示。
图13-2使用plot函数绘制正弦和余弦曲线
●plot(x,y,s)命令用来绘制不同线型、标识和颜色的图形,其中s为一个字符串,他们的意义如表13-3所示。
例如:
plot(x,y,’c+:
’)所绘制的曲线在每个数据点都是有“+”组成。
而plot(x,y,’bd’)所绘制的曲线在每个数据点都是由蓝色的棱形组成,并且在这些点之间没有线相连。
表13-3曲线的色彩、线型和数据点型参数定义
颜色符号
含义
数据点型
含义
线型
含义
b
蓝色
.
点
-
实线
g
绿色
x
X符号
:
点线
r
红色
+
+号
-.
点划线
c
篮绿色
h
六角星形
--
虚线
m
紫红色
*
星号
(空白)
不画线
y
黄色
s
方形
k
黑色
d
菱形
●plot(x1,y1,s1,x2,y2,s2,…)命令可以将多个图形放置在一个图形框里,其中x1和y1等为向量或矩阵,s1等为字符串。
如果只调用一次命令来绘制多线图,MATLAB7将自动使用预定颜色来分配给不同的曲线,从而有效区分各条曲线。
例13-2使用plot函数绘制用户所选线型、数据点型和色彩的二维多线图形。
>>x=0:
.1:
2;
>>y1=sin(x);
>>y2=sin(x-0.25);
>>y3=sin(x-0.5);
>>plot(x,y1,'-.b',x,y2,'--r*',x,y3,'-.gh')
所得图形如图13-3所示。
图13-3使用plot函数绘制多线图
(2)、双纵坐标函数plotyy:
在MATLAB中,如果需要绘制出具有不同纵坐标度的两个图形,可以使用plotyy函数。
这种图形能把函数值具有不同量纲、不同数量级的两个函数绘制在同一坐标中,有利于图形数据的对比分析。
其使用格式如下:
●plotyy(x1,y1,x2,y2),其中x1,y1对应一条曲线,x2,y2对应另一条曲线。
横坐标的标度相同,纵坐标有两个,左纵坐标用x1,y1数据对,右纵坐标用于x2,y2数据对。
例13-3用不同标度在同一坐标内绘制曲线
及曲线
。
>>x1=0:
pi/100:
2*pi;
>>x2=0:
pi/100:
3*pi;
>>y1=exp(-0.5*x1).*sin(2*pi*x1);
>>y2=1.5*exp(-0.2*x2).*sin(x2);
>>plotyy(x1,y1,x2,y2)
所得图形如图13-4所示。
图13-4用plotyy绘制的曲线
3、二维图形处理
(1)、图形标注:
在绘制图形时,可以对图形加上一些说明,如图形名称,坐标轴说明以及某一部分的含义等等,在MATLAB中图形标注函数的调用方式如下:
●title(图形名称)、xlabel(x轴说明)、ylabel(y轴说明)、text(x,y,图形说明)、legend(图例1,图例2,…),其中,title和xlabel、ylabel函数分别用于说明图形和坐标轴的名称,text函数在(x,y)坐标处添加图形说明。
添加文本说明也可用gtext函数,调用该函数时,十字光标自动随鼠标移动,单击鼠标即可将文本放置在十字光标处。
如命令gtext(‘sin(x)’),即可放置字符串’sin(x)’。
legend函数用于绘制曲线所用线型、颜色或数据点标记图例,图例放置在图形空白处,用户还可以通过鼠标移动图例,将其放到所希望的位置。
需要注意的是,除legend函数外,其他函数均可用于三维图形,z轴说明用zlabel函数。
例13-4给图形添加注释。
>>x=(0:
0.1:
2*pi)';
>>y1=2*exp(-0.5*x)*[1,-1];
>>y2=2*exp(-0.5*x).*sin(2*pi*x);
>>x1=(0:
12)/2;
>>y3=2*exp(-0.5*x1).*sin(2*pi*x1);
>>plot(x,y1,'g:
',x,y2,'b-',x1,y3,'rp')
>>xlabel('变量x');
>>ylabel('变量y');
>>text(3.2,0.5,'包络线');
>>text(0.5,0.5,'曲线y');
>>text(1.4,0.15,'离散点');
>>legend('包络线','包络线','曲线y','离散点')
所得图形如图13-5所示。
图13-5添加图形标注
(2)、坐标控制:
在绘制图形时,MATLAB可以自动根据绘制曲线数据的范围选择合适的坐标刻度,使得曲线能够尽可能清晰地显示出来,所以,在一般情况下用户不必选择坐标轴的刻度范围。
但是,如果用户对坐标系不满意,可以利用axis函数对其重新设定。
该函数的调用格式为:
●axis([xmin,xmax,ymin,ymax,zmin,zmax]),如果只给出前4个参数,则MATLAB按照给出的x、y轴的最小值和最大值选择坐标系范围,以便绘制出合适的二维曲线。
如果给出了全部参数,则系统按照给出的3个坐标轴的最小值和最大值选择坐标系范围,绘制出合适的三维图形。
●axis函数功能丰富,通常还有以下几种用法:
axisequal纵、横坐标轴采用等长刻度
axissqure产生正方形坐标系(默认为矩形)
axisauto使用默认设置
axisoff取消坐标轴
axison显示坐标轴
●一般情况下,绘图命令每执行一次就刷新当前图形窗口,图形窗口原有的图形将被覆盖掉。
若希望在已存在的图形上再继续添加新的图形,可使用图形保持命令hold。
holdon/off命令控制是保持原有图形还是刷新原有图形,不带参数的hold命令在两种状态之间切换。
●给坐标轴加网格线用grid命令来控制。
gridon/off命令控制是画还是不画网格线,不带参数的grid命令在两种状态之间切换。
●给坐标加边框用box命令来控制。
boxon/off命令控制是加还是不加边框线,不带参数的box命令在两种状态之间进行切换。
例13-5对图13-5采取下列方法来绘图。
>>x=(0:
0.1:
2*pi)';
>>y1=2*exp(-0.5*x)*[1,-1];
>>y2=2*exp(-0.5*x).*sin(2*pi*x);
>>x1=(0:
12)/2;
>>y3=2*exp(-0.5*x1).*sin(2*pi*x1);
>>plot(x,y1,'g');
>>holdon
>>plot(x,y2,'b-')
>>plot(x1,y3,'rp')
>>gridon;
>>boxoff;
>>holdoff;
所得图形如图13-6所示。
图13-6给坐标轴加网格线
(3)、图形窗口的分割:
在实际应用中,经常需要在一个图形窗口内绘制若干独立的图形,这就需要对图形窗口进行分割。
分割后的图形窗口由若干个绘图区组成,每一个绘图区可以建立独立的坐标系并绘制图形。
同一图形窗口中的不同的图形称为子图。
MATLAB系统提供了subplot函数,用来将当前图形窗口分割成若干绘图区。
每个区域代表一个独立的子图,也是一个独立的坐标系,可以通过subplot函数激活某一区,该区为活动区,所发出的绘图命令都作用于活动区域。
其调用格式为:
●subplot(m,n,p)该函数将当前图形窗口分成m行n列个绘图区,区号按行优先编号,且选定第p个区为当前活动区。
在每一个绘图区允许以不同的坐标系单独绘制图形。
例13-6在同一图形窗口绘出多幅子图。
>>t=(0:
10:
360)*pi/180;
>>y=sin(t);
>>subplot(2,1,1),plot(t,y)
>>subplot(2,2,3),stem(t,y)%stem是绘制火柴杆图的函数
>>subplot(2,2,4),polar(t,y)%polar是绘制极坐标图的函数
所得图形如图13-7所示。
图13-7同一个图形窗口绘制多幅子图
subplot()函数所产生的子图彼此间独立而且具有排他性,所有的绘图命令都可以在子图中使用。
在执行完上面的命令以后,当前的绘图区域处于第2行、第2列的位置,在上述程序段的基础上增加以下代码,继续执行下段程序,将产生如图13-8所示的图形。
>>y2=cos(t);y3=y.*y2;
>>plot(t,y,'--or',t,y2,'-h',t,y3,'-xb')
>>xlabel('时间')
>>ylabel('幅值')
>>axis([-1,8,-1.2,1.2]);
图13-8多子图绘制命令的效果
还可以进一步对第2行、第2列的部分进行再分割,只需要在在上述程序段的基础上增加以下代码,继续执行下段程序,结果如图13-9所示。
%增加以下5行命令绘制图13-9
>>subplot(4,4,11),fill(t,y,'r')
>>subplot(4,4,12),plot(t,y,'r')
>>subplot(4,4,15),plot(t,y2,'r')
>>subplot(4,4,16),plot(t,y3,'r')
图13-9图形窗口的再分割
(4)、文字在图形中显示:
MATLAB允许用户在图形中任意位置加注一串文字。
加注文字的时候,MATLAB提供了两种确定文字的操作方式,即用坐标确定文字的位置和用鼠标确定文字的位置。
●用坐标确定文字位置:
MATLAB允许用户在图形窗口的任意位置用低级命令书写一串字符,调用格式如下。
text(x,y,string,option)命令的主要功能是在图形的指定坐标位置(x,y)处,写出string所给出的字符串。
其中(x,y)的单位是由选项参数option决定的,如果不给出该选项参数,则坐标(x,y)的单位与图中的单位是一致的,如果选项参数为’sc’,则(x,y)坐标表示规一化的窗口相对坐标,其变化范围为0-1,及该窗口绘图范围在左下角坐标为(0,0),右下角坐标为(1,1)。
●用鼠标确定文字位置:
MATLAB也允许用户用鼠标移动的方式在图形窗口的某一位置放置一个字符串。
其对应函数为gtext,利用该函数可以通过光标在图形的某一位置写出由string所给出的字符串。
gtext是交互式文本框标注函数,其常用语法格式如下。
gtext(‘string’)%可以在鼠标单击位置标注一个单行文本框
gtext({‘string1’,‘string2’…})%可以在鼠标单击位置标注一个多行文本框
gtext({‘string1’;‘string2’…})%可以通过鼠标多次单击标注多个文本框
三、实验要求:
1、熟练掌握MATLAB7基本的绘图命令。
2、熟悉各种图形的注释方法。
3、熟练掌握MATLAB7绘制二维曲线图的方法。
4、完成下列习题:
(1)在一个图形窗口中以子图形式同时绘制正弦、余弦、正切、余切曲线。
(2)利用gtext函数对y=2sinx+2cosx进行文本框标注,其中x在区间[0,2π]间。
实验十四MATLAB图形绘制基础
(二)
一、实验目的:
(1)掌握绘制二维图形的其他函数;
(2)掌握MATLAB的三维绘图。
二、实验内容和步骤:
1、绘制二维图形的其他函数
(1)、在线性直角坐标系中,其他形式的图形有条形图、阶梯图、杆图和填充图等,所采用的函数分别是:
bar(x,y,选项)
stairs(x,y,选项)
stem(x,y,选项)
fill(x1,y1,选项1,x2,y2,选项2,…)
前3个函数的用法与plot函数相似,只是没有多输入变量形式。
fill函数按向量元素下表渐增次序依次用直线段链接x、y对应元素定义的数据点。
假如这样所得折线不封闭,那么MATLAB将自动把改折线的首位连接起来,构成封闭多边形然后将多边形内部涂满颜色。
例14-1分别以条形图、填充图、阶梯图和杆图形式绘制曲线y=2e-0.5x。
x=0:
0.35:
7;
y=2*exp(-0.5*x);
subplot(2,2,1);bar(x,y,'g');
title('bar(x,y,''g'')');axis([0,7,0,2]);
subplot(2,2,2);fill(x,y,'r');
title('fill(x,y,''r'')');axis([0,7,0,2]);
subplot(2,2,3);stairs(x,y,'b');
title('stairs(x,y,''b'')');axis([0,7,0,2]);
subplot(2,2,4);stem(x,y,'k');
title('stem(x,y,''k'')');axis([0,7,0,2]);
绘制图14-1如下所示。
图14-1几种不同形式的二维图
(2)、对函数自适应采样的绘图函数
前面介绍的绘图函数,其基本的操作方式为:
先取足够稠密的自变量向量x,然后计算出函数值向量y,最后用绘图函数绘图。
在取数据点时一般都是等间隔采样,这对绘制高频率变化函数不够精确。
例如函数f(x)=cos(tan(πx)),在(0,1)范围有无限多个振荡周期,函数变化率大。
为了提高精度,绘制出比较真实的函数曲线,就不能等间隔采样,而必须再变化率大的区间密集采样,以充分反映函数的实际变化规律,提高图形的真实性。
fplot函数可自适应地对函数进行采用,其调用格式如下。
●fplot(fname,lims,tol,选项)其中fname为函数名,以字符串形式出现。
它可以是由多个分量函数构成的行向量,分量函数可以使函数的直接字符串,也可以使内部函数明或函数文件名,但自变量必须为x。
lims为x、y的取值范围,以行向量形式出现。
tol为相对允许误差,其系统默认值为2e-3。
选项定义与plot相同。
例14-2用fplot函数绘制f(x)=cos(tan(πx))的曲线。
>>fplot('cos(tan(pi*x))',[-0.4,1.4],1e-4)
或先建立函数文件myf.m:
functiony=myf(x)
y=cos(tan(pi*x));
再用fplot函数绘制myf.m函数的曲线:
>>fplot('myf',[-0.4,1.4],1e-4)
2、三维图形的绘制
MATLAB语言提供了三维图形的处理。
与二维图形相似,绘制三维图形时可以使用MATLAB语言提供的相关函数。
(1)、“三维线图命令”plot3
与二维图形绘图函数相对应,绘制三维图形可以使用plot3函数,该函数允许用户在三维空间内绘制三维曲线。
使用格式如下。
●plot3(x,y,z,s)其中x、y、z分别为坐标x轴、y轴和z轴数据的矩阵或向量,而且矩阵或向量的长度相等,s为定义曲线的线型和颜色等的参数。
当x、y、z为同维矩阵时,则x、y、z对应列元素绘制三维曲线,曲线条数等于矩阵列数。
若为同维向量时,则x、y、z对应元素绘制一条三维曲线。
例14-3使用plot3命令绘制三维曲线图。
>>t=0:
pi/50:
20*pi;plot3(sin(t),cos(2*t),sin(t)+cos(t));
上述命令所得图形如图14-2所示。
图14-2plot3函数的使用
(2)、平面网格坐标矩阵的生成:
绘制z=f(x,y)所代表的三维曲面图,先要在xy平面上选定一矩形区域,假定矩形区域D=[a,b]×[c,d],然后将[a,b]在x方向上分成m份,将[c,d]在y方向上分成n份,由各分点分别作平行于两坐标轴的直线,将区域D分成m×n个小矩形,生成代表每一个小矩形顶点坐标的平面网格坐标矩阵,最后利用有关函数绘图。
产生平面区域内的网络坐标矩阵有两种方法。
●利用矩阵运算生成。
x=a:
dx:
b;y=(c:
dy:
d)';
X=ones(size(y))*x;
Y=y*ones(size(x));
执行上述语句后,矩阵X的每一行都是向量x,行数等于向量y的元素个数,矩阵Y的每一行都是向量y,行数等于向量x的元素个数。
于是X和Y相同位置上的元素(X(i,j),Y(i,j))是区域D(i,j)的网格点的坐标。
●利用meshgrid函数生成。
x=a:
dx:
b;y=c:
dy:
d;
[X,Y]=meshgrid(x,y);
当x=y时,meshgrid函数可以写成meshgrid(x)。
例14-4已知8 >>x=9: 29; >>y=13: 34; >>[X,Y]=meshgrid(x,y);%在[8,29]×[13,34]区域生成网格坐标 >>z=3*X+4*Y; >>k=find(z==135); >>X(k)' ans=913172125 >>Y(k)' ans=2724211815 即方程共有5组解。 (3)、三维网格图: 可以使用mesh函数来绘制三维网格图形。 其使用格式如下。 ●mesh(x,y,z,c)命令通过4个矩阵参数绘制彩色的三维网格图形。 其中,图形的各轴范围由x、y和z或者通过当前的axis函数值定义;图形的颜色范围由c定义。 一般情况下,x、y、z是维数相同的矩阵。 x、y是网格坐标矩阵,z是网格点上的高度矩阵。 ●mesh(x,y,z)命令,即c省略时,MATLAB认为c=z,因此图形的颜色随高度按比例变化。 ●mesh(x1,y1,z)命令和mesh(x1,y1,z,c)命令,使用两个向量x1和y1代替矩阵x和y,必须满足条件length(x1)=n和length(y1)=m,而size[z]=[m,n]。 x1和y1向量元素的组合构成网格点x和y的坐标,z坐标则取自z矩阵。 ●mesh(z)命令和mesh(z,c)命令默认x=1: n和y=1: m。 即把z矩阵的列下标当做x轴坐标,把z矩阵的行下标当做y轴坐标。 三维曲面图: 可以使用surf函数来绘制三维曲面图形,其使用格式与mesh函数相同。 例14-5绘制z=sinycosx三维图。 程序1: x=0: 0.1: 2*pi; [x,y]=meshgrid(x); z=sin(y).*cos(x); mesh(x,y,z); xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');title('mesh'); 程序2: x=0: 0.1: 2*pi; [x,y]=meshgrid(x); z=sin(y).*cos(x); surf(x,y,z); xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');title('surf'); 程序3: x=0: 0.1: 2*pi; [x,y]=meshgrid(x); z=sin(y).*cos(x); plot3(x,y,z); xlabel('x-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 基础 1314 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)