资源预览内容
第1页 / 共100页
第2页 / 共100页
第3页 / 共100页
第4页 / 共100页
第5页 / 共100页
第6页 / 共100页
第7页 / 共100页
第8页 / 共100页
第9页 / 共100页
第10页 / 共100页
亲,该文档总共100页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第三章 数据与函数的作图n本章导读n作图功能是MATLAB的特长之一,MATLAB提供高端和低端作图命令,我们可以非常方便地将数据绘制成二维、三维的图形,而高端命令可以让我们随心所欲地画出各种函数图形。作图分为两大类,一类是数据作图,如给定数组x,y作数据的图形。一类是给一个函数直接作图,如做的图形。事实上图形正在演变成一种语言,它可以用更直观的形式展示问题的内涵。 在数学建模竞赛中,我们的论文广泛使用图文并茂的形式,可以更好地说明解决问题的思路。特别是在国际数学建模竞赛MCM、ICM中,由于中国学生的语言表达能力,特别是书面表达能力不如以英语为母语的美国、英国、澳大利亚的等国家,因此在论文中多插图形往往可以收到事半功倍的效果。n nMATLABMATLAB作图功能十分强大,在三维作图中甚至物体在视角、作图功能十分强大,在三维作图中甚至物体在视角、光线以及材质上都能反映出来。我们将介绍图形的根本概念,以光线以及材质上都能反映出来。我们将介绍图形的根本概念,以及用构架数组描述图形的机理,一些根本的命令和方法,其他命及用构架数组描述图形的机理,一些根本的命令和方法,其他命令可以举一反三。在本章的后半局部介绍图形界面的产生,可视令可以举一反三。在本章的后半局部介绍图形界面的产生,可视化方法产生图形界面的方法。利用可视化界面可以让我们构造一化方法产生图形界面的方法。利用可视化界面可以让我们构造一个实验环境,对研究和探讨问题有一定的帮助。个实验环境,对研究和探讨问题有一定的帮助。 3.1 作图命令的搜索在界面上点击help功能,然后进行plot关键字的搜索见图在这里列出了几乎所有和plot有关的图形命令,单击任何你需要的命令,在右边的窗口中可以看到该命令的语法、使用方法和一些例如。例如翻开plot,下面的例子初步展示MATLAB作离散图和连续图的例子。【例3.1.1】翻开plot,我们可以看到有关plot的语法说明,实例等。见图根据帮助功能我们就可以方便地编程,例如作函数的图形,这里用数据作图。x = -pi:pi/10:pi; % 产生自变量数组x-pi,piy = tan(sin(x) - sin(tan(x); % 产生相应因变量点的数组yplot(x,y,-rs,LineWidth,2, MarkerEdgeColor,k,. MarkerFaceColor,g,.MarkerSize,10) % 作数据x,y的图形,并定义线的颜色、点的形状等。【例3.1.2】用图形表示连续调制波形。t1=(0:11)/11*pi;% 产生12个自变量的点y1=sin(t1).*sin(9*t1); t2=(0:100)/100*pi; 产生101个自变量的点y2=sin(t2).*sin(9*t2);subplot(2,2,1),plot(t1,y1,r.),axis(0,pi,-1,1),title(子图 (1)subplot(2,2,2),plot(t2,y2,r.),axis(0,pi,-1,1),title(子图 (2)subplot(2,2,3),plot(t1,y1,t1,y1,r.)axis(0,pi,-1,1),title(子图 (3)subplot(2,2,4),plot(t2,y2),axis(0,pi,-1,1)title(子图 (4) 【例3.1.4】用曲面图表现函数。首先取x,y轴的点,利用meshgrid命令产生x-y平面的网格点,在每个网格点上计算函数的值。x=-4:4;y=x;X,Y=meshgrid(x,y); %生成 x-y 坐标网格点矩阵Z=X.2+Y.2;%计算格点上的函数值surf(X,Y,Z);hold on,colormap(hot)stem3(X,Y,Z,bo) %用来表现在格点上计算函数值3.2 图形根本概念和图形设置命令3.2.1 图形根本概念 图形事实上是我们使用计算机命令在计算机屏幕root上绘制的各种对象object的组合,这些对象包括图形显示框及其子对象,如各种菜单、各种工具图标和正方形的空白绘图显示区,以及在这个区域中用plot、surf等命令作出的图形对象、颜色对象、光线对象、注释对象等等。众多的对象组成的有机体形成了特色鲜明的计算机图形。下面我们列出主要的对象及其注释,见表 对象是分层次的,在一个图形中有父对象、子对象、兄妹对象等。如Root是Fiugre的父对象,Image是Figure的孙对象,而Axes和Uicontrol等是同辈对象。此图形结构可以用构架数组来表示,如MATLAB特有的句柄构架数组handle structure。典型的层次见图 在一个图形中除了图形本身外还有各种修饰命令,例如图形的标题、坐标的名称、线条的颜色和粗细,在三维图形中还要考虑立体光线等等。合理地使用这些修饰命令将使我们的图形更好看,更具说服力。下例是由多个对象组成的图形。3.2.2 图形各目标的设置命令set和信息传递命令get当我们用高端作图命令如plot、surf进行作图时,实际是调用个图形的构架数组。包括图形框架、菜单、工具图标、坐标、图形背景颜色以及图形等等各种层次对象objects。有关这些对象的设置都是系统内定的值,如果想改变某一个对象的属性的值,使用set命令来重新设置。 在一个图形界面上对各对象之间进行信息传递,可以用get命令获取某窗口中的信息。先介绍图形句柄的概念。我们来看几个术语:gcf:为当前图形句柄current figure handle,即获得由作图命令产生的图的图形层次结构。 gca:为图形当前的坐标系统 the handle to the current axes。设置图形参数命令set的语法和获取属性信息的命令get:set(H,PropertyName,PropertyValue,.) % 对句柄H各种属性重新设置set(H,a) % 和上面命令等价,而将参数全部放入构架数组aset(H,pn,pv.) % 和上面命令等价,而将参数全部放入元胞数组pn和pvset(H,pn,) % 对多个句柄进行同时设置a= set(h) % 对象h的属性和值放到构架数组a中a= get(0,Factory) % 将当前整个句柄所有属性的值放到构架数组a中a= get(0,FactoryObjectTypePropertyName) % 将当前句柄的某个属性和值放入a中a= set(h,Default) % 将对象h的内定值放到构架数组中a= set(h,DefaultObjectTypePropertyName) % 将某个属性放到构架数组中 = set(h,PropertyName) % 将某个属性值放到元胞数组中H:为句柄,如gcf、gca等等。PropertyName:为该句柄下的属性名,如线型、点的颜色等。PropertyValue:一个属性名的值,如线型实线或虚线等,点可以取红、蓝等等。a:为一个构架数组,用于存放参数PropertyName,PropertyValue,.,当参数很多时用构架数组进行说明较为方便。pn:为元胞数组,存放各种属性名PropertyName1,PropertyName2,vp:为元胞数组,存放各种属性名相应的值PropertyValue1,PropertyValue2,【例3.2.1】作两幅图,并用set命令重设一些属性,用get显示属性的改变。x=linspace(-pi,pi,10);y=sin(x)subplot(1,2,1),h=plot(x,y) % 用系统内定的参数作图a= get(h) % 显示图形的每种特性的参数subplot(1,2,2),h=plot(x,y) set(h,LineStyle,-,LineWidth,1,Marker,d)b=get(h) % 显示修改正的特性的参数属性参数为:b = BeingDeleted: off BusyAction: queue ButtonDownFcn: Children: 0 x1 double Clipping: onColor: 0 0 1 CreateFcn: DeleteFcn: EraseMode: normal HandleVisibility: on HitTest: on Interruptible: on LineStyle: - % 已改变 LineWidth: 1 % 已改变 Marker: diamond % 已改变 MarkerEdgeColor: auto MarkerFaceColor: none MarkerSize: 6 Parent: 150.0005 Selected: off SelectionHighlight: on Tag: Type: line UIContextMenu: UserData: Visible: on XData: 1x10 double YData: 1x10 double ZData: 1x0 double【例3.2.2】对于例可以用构架数组来改变特性的参数,以下程序可以获得一样的结果。x=linspace(-pi,pi,10);y=sin(x)subplot(1,2,1),h=plot(x,y) % 用系统内定的参数作图a= get(h)subplot(1,2,2),h=plot(x,y) b=get(h)act.LineStyle=-; % 定义构架数组中线形的参数act.LineWidth=1; % 定义构架数组中线宽的参数act.Marker=d; % 定义构架数组中点型的参数set(h,act)set和get命令在作图,特别是以后介绍的界面设计中起着关键性的作用,在后面的局部还有介绍。进一步的学习可查阅help中的set和get的关键字。3.3 数据二维作图和图形编辑3.3.1 二维作图 表列出了作图的大概步骤 【例3.3.1】以我国国民生产总值的数据为例,进行作图和拟合研究,首先作出数据的图形,然后我们进行拟合的各种实验,从中找出满意的结果。A=load(e:datazggdp.txt) % 定义n行两列的时间序列数组x=A(:,1) % 将时间定义为数组xy=A(:,2) % 将gdp国民生产总值定义为yplot(x,y,r*) % 将数据点用红色,*形绘制图形结果我们可以看界面图翻开界面菜单Tools,并点击Basic Fitting 我们就可以看到以下界面。见图 在Basic Fitting栏下我们可以选择各种拟合方法,选择线性linear和7阶多项式进行拟合。对作残差图Plot residuals进行勾选,表示要做残差分析。我们可以明显地看出7阶多项式拟合明显好与线性拟合。在第二张图形上显示了两种拟合的残差,残差图更证明了我们的判断。见图二维图形的编辑与完善 另一方法是直接在图形窗口上对图形进行编辑。一、用图形修饰命令对图形进行编辑用命令来完整地修饰图形,事实上是编一套程序,其具体格式为:作图命令 数据,子命令,子命令,子命令 修饰命令1修饰命令2 修饰命令n以下将二维作图的曲线线型选择和颜色选择命令罗列为表 点的颜色、点边界的颜色、点的大小设置等见表3.3.3 点型的选择见表 图形标注辅助修饰命令与图形子命令不同,它不在图形命令内,而是作为独立的命令紧跟在图形命令后面。主要的图形辅助修饰命令见表【例3.3.2】利用上面的修饰命令作一个完的整修饰图形,图形标题为“我的完善图。x = -pi:pi/10:pi;y = tan(sin(x) - sin(tan(x); %准备数据%作曲线图,曲线设为虚线,线宽为2,红颜色。点的边界为黑色,点面色为绿色,%点的大小设为10。plot(x,y,-rs,LineWidth,2,. MarkerEdgeColor,k,. MarkerFaceColor,g,. MarkerSize,10); legend(tan(sin(x)-sin(tan(x),1) % 在图内标注公式xlabel(时间) % 坐标x标为时间ylab
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号