绪论
对于数值计算和符号计算,无论计算多么完善,结果多么准确,人们还是难以直接从大量的数据中感受它们的具体含义和内在规律。因此对于人们得到的数据函数需进行绘图工作,以便更直观的感受科学计算结果的全局意义与更多内在本质。本研究旨在通过对MATLAB中二维数据曲线图的介绍与MATLAB二维作图能力的展示使得我们能够使用MATLAB的二维作图能力来解决现实生活及学习生活中的相应问题。
MATLAB中有两类绘图命令,一类是直接对图形句柄进行操作的低层绘图命令,另一类是在低层命令基础上建立起来的高层绘图命令。高层绘图命令简单明了、方便高效。利用高层绘图函数,用户不需过多的考虑绘图细节,只需给出一些基本参数就能得到所学图形。本研究主要介绍MATLAB中的二维高层绘制函数以及二维图像效果的控制。
   
2 MATLAB二维数据曲线绘制的基本函数
二维数据曲线图是将平面坐标是的数据点连接起来的平面图形。因而可采用不同的坐标系进
行绘图。本节将对应不同的坐标系对MATLAB的二维数据曲线图的基本函数进行介绍。
2.1 直角坐标系中的绘图函数
在人们日常生活中最常用到的就是直角坐标系的绘图。因此本研究将重点对此小节进行介绍。而在MATLAB中最主要的直角坐标系的绘图函数就是plot以及其衍生的函数。
2.1.1 plot函数
plot函数是MATLAB中最基本且应用最为广泛的绘图函数。其基本的调用格式为:
              plot(x,y,选项)
plot函数的输入参数是矩阵形式。其操作方法为:先取足够稠密的自变量向量x,然后算出函数值向量y,对应用于绘图。其中x数据的选取为等间隔采样。因此在将x视为自变量时,需选取x的绘图区间以及数据选取的等间隔大小,即生成x向量。x向量的生成语句如下:
                x=下区间:间隔大小:上区间
              x=linspace(下区间,间隔大小,上区间)
x=0pi/1002*pi
其结果为选区x02π区间进行作图。等间隔π/100选取数据。同时对应x y的输入可得到不同的绘制结果:
(1) xy是长度相同的向量时,plot函数绘制出单根二维曲线。这时x y
分别用于存储x坐标和y坐标数据。
    应用示例:在MATLAB中建立M文件如下:
x=[3,15,21,30,34,36];
y=[10,13,27,29,40,41];
plot(x,y)
程序的运行结果见图2-1
                    2-1 x y同长度向量的plot绘图
(2) x是向量,y是有一维与x同维的矩阵时,plot函数绘制出多根不同颜
的曲线。曲线条数等于y的另一维数,x被视为这些曲线的共同横坐标。
    应用示例:建立M文件:
        x=0:2*pi:100;
y=[sin(x);50+sin(x);x+sin(x)];
plot(x,y,'*')
程序的运行结果见图2-2,程序首先产生一个行向量x,然后对应求得三个y向量作图,所以图中的数据点的x坐标都相同(数据点由星号标出),同时又产生了三条二维曲线。
(3) xy是同维矩阵时,以xy对应列元素为横,纵坐标分别绘制曲线,曲
线条数等于矩阵的列数。
应用示例:建立M文件:
x1=linspace(0,2*pi,100);
x2=linspace(0,3*pi,100);
x3=linspace(0,4*pi,100);
x=[x1;x2;x3]';
y=[sin(x1);5+sin(x2);x3+sin(x3)]';
plot(x,y,'*')
    程序的运行结果见图2-3,可见图中三条曲线的数据点的x坐标并不相同(数据点由星号标出)。
                        2-2 x为向量,y为矩阵的plot绘图
              2-3 x y为同维矩阵的plot绘图
4 plot函数只输入了一个参数时,即plot(x)。如果x是实数向量,则以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线。这实际上是绘制折线图。如果x是复数
向量,则分别以向量元素实部和虚部为横,纵坐标绘制一条曲线。             
应用示例:建立M文件如下:
t=0:0.01:2*pi;
x=exp(i*t);
y=[x;2*x;t]';
plot(y,'*')
    程序的运行结果见图2-4。其中两个同心圆为取虚数参数的结果,横线为实数参数的结果。
linspace函数调用的格式为同时plot可含多个输入参数进行使用,其格式为:
        plot(x1,y1,选项1,x2,y2,选项2……,xn,yn,选项n)
其效果为对应xy进行绘图。即相当于运行
plot(x1,y1,选项)
        plot(x2,y2,选项)
        ……
        plot(xn,yn,选项)
并将这n个二维曲线显示在同一个坐标上。(函数调用中“选项”部分会在后文中解释其应用,因为其在函数调用中可舍去不写,故在此不再赘述。)
              2-4 只输入一个参数的plot绘图
    2.1.2 plotyy函数
为了更有利于图形数据的对比分析,可以在同一坐标中建立两个纵坐标。因此在MATLAB中可使用plotyy函数进行这一操作。plotyy函数的常用调用格式为:
plotyy(x1,y1,选项1,x2,y2,选项2)
其中,x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标标度相同,纵坐标有两个,左纵坐标对应x1,y1图,右纵坐标对应x2,y2图。
其应用示例如下:建立M文件:
x=0:pi/100:2*pi;
y1=0.2*exp(-0.5*x).*cos(4*pi*x);
y2=2*exp(-0.5*x).*cos(pi*x);
plotyy(x,y1,x,y2)
程序的运行结果见图2-5
                          2-5 plotyy函数应用示例
    2.1.3 fplot函数
    前文已提到,plot函数的绘制是等间隔采样自变量x,然后计算出函数值y用于绘图。这
对绘制高频率变化的函数不够精确。如,函数f(x)=cos(tan(πx)),在(01)范围有无限多个振荡周期,函数变化率大。为提高精度,绘制出比较真实的函数曲线,就不能等间隔采样,而必须在变化率大的区段密集采样。为此MATLAB提供了fplot函数。fplot函数可自适应地对函数进行采样,能够更好地反应函数的变化规律。fplot函数的调用格式为:
        fplot(fname,lims,tol,选项)
其中,fname为函数名,以字符串形式出现。它可以是由多个分量函数构成的行向量,分量函数可以是函数的直接字符串,也可以是内部函数名或函数文件名,但自变量都必须是xlimsxy的取值范围,以行向量出现,取二元向量[xmin,xmax]时,x轴的范围被人为确定,取四元向量[xmin,xmax,ymin,ymax]时,xy轴的范围被人为确定。tol为相对允许误差,其系统默认值为2e-3.
其应用示例如下:解决函数f(x)=cos(tan(πx))(0,1)范围的绘图问题。
解:建立M文件:
fplot('cos(tan(pi*x))',[0,1],1e-4)
程序的运行结果见图2-6,由图中可见在(0,1)区间原函数无法用plot函数精确绘出。
2.1.4 ezplot函数
前文提到的绘图函数都是对应一个显函数的。但如果目标函数为隐函数时我们如何绘出二维曲线图。因此,对应隐函数,MATLAB提供了一个ezplot函数用于绘制隐函数。下面介绍其用法:
(1) 对于函数f=f(x),ezplot函数的调用格式为:
ezplot(f) :在默认区间-2π<x<2π绘制f=f(x)的图形。
ezplot(f,[a,b]) :在区间a<x<b绘制f=f(x)的图形。
(2) 对于隐函数f=f(x,y),ezplot函数的调用格式为:
ezplot(f) : 在默认区间-2π<x<2π和-2π<y<2π绘制f(x,y)=0的图形。
ezplot(f,[xmin,xmax,ymin,ymax]) :在区间xmin<x<xmaxymin<y<ymax绘制f(x,y)=0的图形。
ezplot(f,[a,b]) :在区间a<x<ba<y<b绘制f(x,y)=0的图形。
(3) 对于参数方程x=x(t)y=y(t)ezplot函数的调用格式为:
    ezplot(x,y) :在默认区间0<t<2π绘制参数方程的图形。
    ezplot(x,y,[tmin,tmax]) :在区间tmin<t<tmax绘制参数方程图形。
其应用示例如下:建立M文件(见附录A-1)。
  程序的运行结果如图2-7所示。
          2-6 fplot函数应用示例
            2-7 隐函数绘图示例
2.2 其他坐标系下的绘图函数
    在现实生活中人们也会遇到其他非直角坐标系下的绘图要求。针对此MATLAB还提供了
众多的非直角坐标系下的绘图函数。本节将介绍两类常用的非直角坐标系下的绘图函数。
2.2.1 对数坐标系下的绘图函数
在工程应用中,经常用到对数坐标,如控制理论中的Bode图就采用对数坐标。MATLAB提供了绘制对数和半对数坐标曲线的函数,调用格式为:
    semilogx(x1,y1,选项1,x2,y2,选项2……)
    semilogy(x1,y1,选项1,x2,y2,选项2……)
    loglog(x1,y1,选项1,x2,y2,选项2……)
其中,semilogx函数使用半对数坐标,x轴为常用对数刻度,y轴仍保持线性刻度。Semilogy函数也使用半对数坐标,y轴为常用对数刻度,x轴保持线性刻度。loglog函数使用全对数坐标,x轴、y轴都采用常用对数刻度。
其应用示例如下:建立M文件(见附录A-2)。
程序的运行结果如图2-8所示:
                        2-8 对数坐标图
2.2.2 极坐标系下的绘图函数
MATLAB提供的极坐标绘图函数为polar函数,其调用格式为:
    polar(theta,rho,选项)
其中,theta为极坐标角,rho为极坐标矢径。
应用示例如下:绘制r=sintcost的极坐标图,并标记数据点。
解:建立M文件:
        clear all;
t=0:pi/50:2*pi;
r=sin(t).*cos(t);
polar(t,r,'-*')

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。