《Matlab在编程方面的应用》由会员分享,可在线阅读,更多相关《Matlab在编程方面的应用(44页珍藏版)》请在金锄头文库上搜索。
1、作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供了大量的二维、三维图形函数。由于系统采用面向对象的技术和丰富的矩阵运算,所以在图形处理方面即常方便又高效。,二维图形,一、 plot函数 函数格式:plot(x,y) 其中x和y为坐标向量 函数功能:以向量x、y为轴,绘制曲线。 【例1】 在区间0X2内,绘制正弦曲线Y=SIN(X),其程序为: x=0:pi/100:2*pi; y=sin(x); plot(x,y),【例2】同时绘制正、余弦两条曲线Y1=SIN(X)和Y2=COS(X),其程序为: x=0:pi/100:2*pi; y1=sin(x); y2=cos(x);
2、 plot(x,y1,x,y2) plot函数还可以为plot(x,y1,x,y2,x,y3,)形式,其功能是以公共向量x为X轴,分别以y1,y2,y3,为Y轴,在同一幅图内绘制出多条曲线。,4.1 二维图形,一、 plot函数,(一)线型与颜色 格式:plot(x,y1,cs,.) 其中c表示颜色, s表示线型。,4.1 二维图形,一、 plot函数,【例3】 用不同线型和颜色重新绘制例4.2图形,其程序为: x=0:pi/100:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,go,x,y2,b-.) 其中参数go和b-.表示图形的颜色和线型。g表示绿色,o表示
3、图形线型为圆圈;b表示蓝色,-.表示图形线型为点划线。,(二)图形标记 在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的含义、坐标说明等,将这些操作称为添加图形标记。 title(加图形标题); xlabel(加X轴标记); ylabel(加Y轴标记); text(X,Y,添加文本);,4.1 二维图形,一、 plot函数,(三)设定坐标轴 用户若对坐标系统不满意,可利用axis命令对其重新设定。 axis(xmin xmax ymin ymax) 设定最大和最小值 axis (auto) 将坐标系统返回到自动缺省状态 axis (square) 将当前图形设置为方形 ax
4、is (equal) 两个坐标因子设成相等 axis (off) 关闭坐标系统 axis (on) 显示坐标系统,4.1 二维图形,一、 plot函数,【例4】 在坐标范围0X2,-2Y2内重新绘制正弦曲线,其程序为: x=linspace(0,2*pi,60);生成含有60个数据元素的向量X y=sin(x); plot(x,y); axis (0 2*pi -2 2);设定坐标轴范围,4.1 二维图形,一、 plot函数,(四)加图例 给图形加图例命令为legend。该命令把图例放置在图形空白处,用户还可以通过鼠标移动图例,将其放到希望的位置。 格式:legend(图例说明,图例说明);,
5、4.1 二维图形,一、 plot函数,【例5】 为正弦、余弦曲线增加图例,其程序为: x=0:pi/100:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2, -); legend(sin(x),cos(x);,(一)subplot(m,n,p) 该命令将当前图形窗口分成mn个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。,4.1 二维图形,二、 subplot函数,【例6】 在一个图形窗口中同时绘制正弦、余弦、正切、余切曲线,程序为: x=linspace(0,2*pi,60); y=sin(x); z=cos(x); t=si
6、n(x)./(cos(x)+eps); eps为系统内部常数 ct=cos(x)./(sin(x)+eps); subplot(2,2,1); 分成22区域且指定1号为活动区 plot(x,y); title(sin(x); axis (0 2*pi -1 1); subplot(2,2,2);,plot(x,z); title(cos(x); axis (0 2*pi -1 1); subplot(2,2,3); plot(x,t); title(tangent(x); axis (0 2*pi -40 40); subplot(2,2,4); plot(x,ct); title(cotan
7、gent(x); axis (0 2*pi -40 40);,4.1 二维图形,二、subplot函数,(二)多图形窗口 需要建立多个图形窗口,绘制并保持每一个窗口的图形,可以使用figure命令。 每执行一次figure命令,就创建一个新的图形窗口,该窗口自动为活动窗口,若需要还可以返回该窗口的识别号码,称该号码为句柄。句柄显示在图形窗口的标题栏中,即图形窗口标题。用户可通过句柄激活或关闭某图形窗口,而axis、xlabel、title等许多命令也只对活动窗口有效。,4.1 二维图形,二、subplot函数,重新绘制上例4个图形,程序变动后如下: x=linspace(0,2*pi,60);
8、 y=sin(x); z=cos(x); t=sin(x)./(cos(x)+eps); ct=cos(x)./(sin(x)+eps); H1=figure; 创建新窗口并返回句柄到变量H1 plot(x,y); 绘制图形并设置有关属性 title(sin(x); axis (0 2*pi -1 1); H2=figure; 创建第二个窗口并返回句柄到变量H2 plot(x,z); 绘制图形并设置有关属性 title(cos(x);,axis (0 2*pi -1 1); H3=figure; 同上 plot(x,t); title(tangent(x); axis (0 2*pi -40
9、40); H4=figure; 同上 plot(x,ct); title(cotangent(x); axis (0 2*pi -40 40);,4.1 二维图形,二、subplot函数,(三)hold命令 若在已存在图形窗口中用plot命令继续添加新的图形内容,可使用图形保持命令hold。发出命令hold on后,再执行plot命令,在保持原有图形或曲线的基础上,添加新绘制的图形。,4.1 二维图形,二、subplot函数,阅读如下程序: x=linspace(0,2*pi,60); y=sin(x); z=cos(x); plot(x,y,b); 绘制正弦曲线 hold on; 设置图形保
10、持状态 plot(x,z,g); 保持正弦曲线同时绘制余弦曲线 axis (0 2*pi -1 1); legend(cos,sin); hold off 关闭图形保持,4.1 二维图形,二、subplot函数,三、 函数f(x)曲线 fplot函数则可自适应地对函数进行采样,能更好地反应函数的变化规律。 fplot函数格式:fplot(fname,lims,tol) 其中fname为函数名,以字符串形式出现,lims为变量取值范围,tol为相对允许误差,其其系统默认值为2e-3。 例:fplot(sin(x),0 2*pi,-+) fplot(sin(x),cos(x),0 2*pi,1e-
11、3,) 同时绘制正弦、余弦曲线,4.1 二维图形,为绘制f(x)=cos(tan(x)曲线,可先建立函数文件fct.m,其内容为: function y=fct(x) y=cos(tan(pi*x); 用fplot函数调用fct.m函数,其命令为: fplot(fct,0 1,1e-4),4.1 二维图形,三、 函数f(x)曲线,4.2 特殊坐标图形,一、 对数坐标图形 (一)loglog(x,y) 双对数坐标 【例7】 绘制y=|1000sin(4x)|+1的双对数坐标图。程序为: x=0:0.1:2*pi; y=abs(1000*sin(4*x)+1; loglog(x,y); 双对数坐标
12、绘图命令,(二)单对数坐标 以X轴为对数重新绘制上述曲线,程序为: x=0:0.01:2*pi y=abs(1000*sin(4*x)+1 semilogx(x,y); 单对数X轴绘图命令 同样,可以以Y轴为对数重新绘制上述曲线,程序为: x=0:0.01:2*pi y=abs(1000*sin(4*x)+1 semilogy(x,y); 单对数Y轴绘图命令,4.2特殊坐标图形,二、 极坐标图 函数polar(theta,rho)用来绘制极坐标图,theta为极坐标角度,rho为极坐标半径 【例8】 绘制sin(2*)*cos(2*)的极坐标图,程序为: theta=0:0.01:2*pi;
13、rho=sin(2*theta).*cos(2*theta); polar(theta,rho); 绘制极坐标图命令 title(polar plot);,4.2特殊坐标图形,4.3 其它图形函数,除plot等基本绘图命令外,Matlab系统提供了许多其它特殊绘图函数,这里举一些代表性例子,更详细的信息用户可随时查阅在线帮助,其对应的M-file文件存放在系统matlabtoolboxmatlab目录下。,4.3 其它图形函数,一、阶梯图形 函数stairs(x,y)可以绘制阶梯图形,如下列程序段: x=-2.5:0.25:2.5; y=exp(-x.*x); stairs(x,y); 绘制阶
14、梯图形命令 title(stairs plot);,4. 3 其它图形函数,4.3 其它图形函数,二、条形图形 函数bar(x,y)可以绘制条形图形,如下列程序段将绘制条形图形 x=-2.5:0.25:2.5; y=exp(-x.*x); bar(x,y); 绘制条形图命令,4. 3 其它图形函数,4.3 其它图形函数,三、填充图形 fill(x,y,c)函数用来绘制并填充二维多边图形,x和y为二维多边形顶点坐标向量。字符 c 规定填充颜色,其取值前已叙述。 下述程序段绘制一正方形并以黄色填充:,4. 3 其它图形函数,4.3 其它图形函数,x=0 1 1 0 0; 正方形顶点坐标向量 y=0
15、 0 1 1 0; fill(x,y,y);绘制并以黄色填充正方形图 再如: x=0:0.025:2*pi; y=sin(3*x); fill(x,y,0.5 0.3 0.4); 颜色向量 Matlab系统可用向量表示颜色,通常称其为颜色向量。基本颜色向量用r g b表示,即RGB颜色组合;以RGB为基本色,通过 r,g,b在01范围内的不同取值可以组合出各种颜色。,4. 3 其它图形函数,二维绘图函数小结,plot 二维图形基本函数 fplot f(x)函数曲线绘制 fill 填充二维多边图形 polar 极坐标图 bar 条形图 loglog 双对数坐标图 semilogx X轴为对数的坐标图 semilogy Y轴为对数的坐标图 stairs 阶梯形图 axis 设置坐标轴 clf 清除图形窗口内容 close 关闭图形窗口,figure 创建图形窗口 grid 放置坐标网格线 gtext 用鼠标放置文本 hold 保持当前图形窗口内容 subplot 创建子图 text 放置文本 title 放置图形标题 xlabel 放置X轴坐标标记 ylabel 放置Y轴坐标标记,