您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > matlab中关于图像.
绘图命令plot绘制x-y坐标图;loglog命令绘制对数坐标图;semilogx和semilogy命令绘制半对数坐标图;polor命令绘制极坐标图。1、基本形式如果y是一个向量,那么plot(y)绘制一个y中元素的线性图。假设我们希望画出y=[0.,0.48,0.84,1.,0.91,6.14]则用命令plot(y)。它相当于命令plot(x,y),其中x=[1,2,...,n]或x=[1;2;...;n],即向量y的下标编号n为它的长度。MATLAB会产生一个图形窗口,显示如图1所示,请注意:坐标x和y是由计算机自动生成的。图1上面的图形没有加上x轴和y轴的标注,也没有标题。用xlabel,ylabel,title命令可以加上。表1MATLAB图形命令title图形标题xlabelx坐标轴标注ylabely坐标轴标注text标注数据点grid给图形加上网络hold保持图形窗口的图形如果x、y是同样长度的向量,plot(x,y)命令可画出相应的x元素与y元素的x-y坐标图。例如:plot(y)x=0:0.05:4*pi;y=sin(x);plot(x,y)gridon,title('y=sin(x)曲线图')xlabel('x=0:0.05:4pi')结果见图2。图2y=sin(x)的图形2、多重线在一个单线图上,绘制多重线有三种方法.第一种方法是利用plot的多变量方式绘制:plot(x1,y1,x2,y2,…,xn,yn)x1,y1,x2,y2,…,xn,yn是成对的向量,每一对x,y在图上产生如上方式的单线。多变量方式绘图允许不同长度的向量显示在同一图形上。第二种方法也是利用plot绘制,但加上holdon/off命令的配合:plot(x1,y1)holdonplot(x2,y2)holdof第三种方法还是利用plot绘制,但带入矩阵。如果plot用于两个变量plot(x,y),并且x,y是矩阵,则有以下情况:(1)如果y是矩阵,x是向量,plot(x,y)用不同的画线形式绘出y的行或列及相应的x向量,y的行货列的方向与x向量元素的值选择是相同的。(2)如果x是矩阵,y是向量,则除了x向量的线族及相应的y向量外,以上的规则也适用。(3)如果x,y是同样大小的矩阵,plot(x,y)绘制x的列及y相应的列。3、线型和颜色的控制线型、点标记和颜色的取值有以下几种(表2)。表2线型和颜色控制符线型点标记颜色线型点标记颜色-实线.点y黄色^朝上三角k黑色:虚线o小圆圈m棕色v朝下三角-.点画线x叉字符c青色朝右三角--间断点+加号r红色朝左三角*星号g绿色p五角星s方格b蓝色h六角形d棱形w白色如果不指定画线方式和颜色,MATLAB会自动为您选择点的表示方式及颜色。你也可以用不同的符号指定不同的曲线绘制方式。例如:t=-3.14:0.2:3.14;x=sin(t);y=cos(t);plot(t,x,'+r',t,y,'-b')图3不同线型、颜色的sin、cos图形4、对数图、极坐标图及条形图Loglog、semilogx、semilogy和polar等的用法和plot相似。这些命令允许数据在不同的graphpaper上绘制,例如不同的坐标系统。先介绍的fplot是扩展来的可用于符号作图的函数。(1)、fplot(fname,lims)绘制fname指定的函数的图形。(2)、polar(theta,rho)使用相角theta为极坐标形式绘图,相应半径为rho,其次可使用grid命令画出极坐标网格。(3)、loglog用log10-log10标度绘图。(4)、semilogx用半对数坐标绘图,x轴是log10,y是线性的。(5)、semilogy用半对数坐标绘图,y轴是log10,x是线性的。(6)、bar(x)显示x向量元素的条形图,bar不接受多变量。(7)、hist绘制统计频率直方图。(8)、histfit(data,nbins)绘制统计直方图与其正态分布拟合曲线。fplot函数的绘图区域为lims=[xmin,xmax],也可以用lims=[xmin,xmax,ymin,ymax]指定y轴的区域。函数表达式可以是一个函数名,如sin,tan等;也可以是带上参数x的函数表达式,如sina(x),diric(x,10);也可以是一个用方括号括起来的函数组,如[sincos]。例:fplot('sin',[04*pi])fplot('sin(1./x)',[0.01,0.1])fplot('abs(exp(-j*x*(0:9))*ones(10,1))',[02*pi],'-o')fplot('[sin(x),cos(x),tan(x)]',[-2*pi2*pi-2*pi2*pi])下面介绍其他几个作图函数的应用:例1半对数坐标绘图:t=0.001:0.002:20;y=5+log(t)+t;semilogx(t,y,'b')holdonsemilogx(t,t+5,'r')图4半对数图例2极坐标绘图:t=0:0.01:2*pi;polar(t,sin(6*t))图5极坐标绘图例3正态分布图:可以用命令normrnd生成符合正态分布的随机数。normrnd(u,v,m,n)其中,u表示生成随机数的期望,v代表随机数的方差。a=normrnd(10,2,10000,1);histfit(a)图6正态分布的统计直方图与其正态分布拟合曲线例4:比较正态分布(a)与平均分布(b)的分布图:%正态分布yn=randn(30000,1);x=min(yn):0.2:max(yn);subplot(121)hist(yn,x)xlabel('(a)')%平均分布yu=rand(30000,1);subplot(122)hist(yu,25)xlabel('(b)')图7正态分布与平均分布的分布图5、子图在绘图过程中,经常要把几个图形在同一图形窗口中表现出来,而不是简单的叠加。这就用到函数sunplot。其调用格式如下:subplot(m,n,p)subplot函数把一个图形窗口分割成mxn个子区域,用户可以通过参数p调用各个子绘图区域进行操作。子绘图区域的编号为按行从左至右编号。例5:绘制字图x=0:0.1*pi:2*pi;subplot(2,2,1)plot(x,sin(x),'-*');title('sin(x)')subplot(2,2,2)plot(x,cos(x),'--o')title('cos(x)')subplot(2,2,3)plot(x,sin(2*x),'-.*')title('sin(2x)')subplot(2,2,4)plot(x,cos(3*x),':d')title('cos(3x)')得到的图形如图8所示:图8子图6、填充图利用二维绘图函数patch,可以绘制填充图。绘制填充图的另一个函数为fill。下面的例子绘出了函数humps(一个MATLAB演示函数)在指定区域内的函数图形。例6:用函数patch绘制填充图fplot('humps',[0,2],'b')holdonpatch([0.50.5:0.02:11],[0humps(0.5:0.02:1)0],'r');holdofftitle('Aregionunderaninterestingfunction.')grid图9填充图还可以用函数fill来绘制类似的填充图。例7:用函数fill绘制填充图x=0:pi/60:2*pi;y=sin(x);x1=0:pi/60:1;y1=sin(x1);plot(x,y,'r')holdonfill([x11],[y10],'g')图10填充图如何绘制统计直方图?统计直方图是人们根据已经得到的数据,将数据按不同的小区间分类,统计各小区间内数据出现的频率。由频率值画出的一种条形图。画直方图指令用hist。已知某班36个大学生的单科成绩,根据这些分数的数据画统计直方图。X=[84826075669292808689…851008489919578858185…91838287729181638888…889293988484];hist(X)上面第一条语句是给变量X赋值,X代表36名大学生的成绩分数数据;第二条指令是用绘直方图指令hist绘制出十等分直方图。如果将hist(X)改为指令hist(X,4)则绘出的是4等分直方图绘直方图指令中第一个参数代表数据集合,第二个参数控制直方图中的等分数,其默认值为10,要改变默认值就必须给出具体的数据。
本文标题:matlab中关于图像.
链接地址:https://www.777doc.com/doc-1798585 .html