1、MATLAB基础及应用课件第5-6章第5章 MATLAB数值计算 本章要点本章要点 数据的分析与统计 数值插值 曲线拟合 求解常微分方程 交互式工具 5.1 数据分析一、数据统计 函数名称功能函数名称功能max(x)找x各列的最大元素min(x)找x各列的最小元素mean(x)求x各列的平均值sum(x)求x各列元素之和median(x)找x各列的中间值元素sort(x)使x的各列元素按递增排序prod(x)求x各列元素之积二、离差和相关 函数名称功能函数名称功能var(x)x各列的方差cov(x,y)两个矩阵x和y的协方差std(x)x各列的标准差corrcoef(x)x的自相关阵range
2、(x)x各列的极差corrcoef(x,y)两个矩阵x和y的互相关系数,结果为方阵cov(x)x的协方差阵corr2(x,y)两个矩阵x和y的相关系数5.2 数值运算 一、多项式 名称函数格式说明创建多项式P=a0 a1 a2 an-1 anP为多项式(以下各函数中P均为多项式),a0 a1 a2 an-1 an为按降幂顺序排列的多项式系数P=poly(A)A为向量。创建以向量A中元素为根的多项式求根roots(P)求该多项式的根,以列向量的形式给出求值polyval(P,A)当A为标量时,求多项式P在自变量x=A时的值;当A为向量时,求x分别等于A中每个元素时,多项式的值polyvalm(P
3、,m)m为nn阶方阵。求x分别等于m中每一个元素时,多项式的值(结果为nn阶方阵)多项式乘法conv(P1,P2)P1多项式与P2多项式相乘多项式除法q,r=deconv P1,P2)P1多项式与P2多项式相除。q为商,r为余数多项式求导p=polyder(P)多项式P的导函数P=polyder(P1,P2)P1多项式与P2多项式乘积的导函数q,r=polyder(P1,P2)P1多项式与P2多项式相除后的导函数,导函数的分子放入q,分母放入r二、插值与拟合 1数值插值(1)一维插值函数:Z1=interp1(X,Y,X1,参数)说明:X是向量,表示采样点;Y是采样点上的样本值,与X等长;X1
4、可是向量或标量,表示欲插值的点;Z1是与X1等长的插值结果。(2)二维插值函数:Z1=interp2(X,Y,Z,X1,Y1,参数)说明:X是长度为M的向量、Y是长度为N的向量,表示采样点;Z是与采样点对应的样本值,长度为NM;X1、Y1是向量或标量,长度可以不等,表示欲插值的点;Z1是插值结果。二维插值是对双变量函数同时做插值。线性插值主要参数 参数名称说明特点nearest邻近点插值法。根据已知两点间的插值点与这两点之间的位置远近插值。当插值点距离前点近时,取前点的值,否则取后点的值速度最快,但平滑性差linear线性插值。把相邻的数据点用直线连接,按所生成的曲线进行插值,是默认的插值方法
5、占有的内存较邻近点插值方法多,运算时间也稍长,与邻近点插值不同,其结果是连续的,但在顶点处的斜率会改变spline三次样条插值。用已知数据求出样条函数后,按照样条函数插值运算时间长,但内存的占有较立方插值方法要少,三次样条插值的平滑性很好,但如果输入的数据不一致或数据点过近,可能出现很差的插值结果cubic立方插值法,也称三次多项式插值。用已知数据构造出三次多项式进行插值需要较多的内存和运算时间,平滑性很好bicubic双立方插值法。利用已知的数据点拟合一个双立方曲面,然后根据插值点的坐标插值,每个插值点的值由该点附近的六个点的坐标确定二维插值函数独有。插值点处的值和该点值的导数都连续2曲线拟
6、合MATLAB的曲线拟合函数如下:函数:P,S=polyfit(X,Y,N)说明:X、Y是两个等长的向量,X是采样点,Y是采样点函数值,N是多项式的次数;P是一个长度为N+1的向量,代表N次多项式;S是采样点的误差向量。三、函数的极值和零点 函数名称函数格式说明函数极小值x=fminbnd(fun,a,b)fun为待求极值的单变量函数,a、b为求极值的区间。x为函数极值点,y为极值点的函数值x,y=fminbnd(fun,a,b)函数零点x=fzero(fun,a)a为极值点附近的初始值,a b为求零点的区间,x为函数零点,y为零点的函数值。若没有零点,则返回Nan(非数)x=fzero(fu
7、n,a b)x,y=fzero(fun,a)x,y=fzero(fun,a b)5.3 常微分方程的数值求解一、常微分方程的解法数值解法的基本思想是:先取一系列离散的点,通常取等步长h,使 ,再求每个点对应的y(xn),用y(xn)近似(n=1,2,)的值。主要有欧拉法、线性多步法、预估校正法、龙格库塔法等,其中以龙格库塔法使用最多。x=0:6;n y=0,20,60,68,77,110,152;n建立完分析数据后,在命令行窗口输入 cftool 后回车,即可打开Curve Fitting Tool窗口。如图5-4所示。5.4.3 交互式拟合工具图5-4 Curve Fitting Tool窗
8、口n单击图5-4中的“X data”下拉框,从中选择自变量“x”,同样在“Y data”下拉框中选择因变量“y”。MATLAB就会使用相应的数据绘图,并自动为数据集指定一个名字,也可以在“Fit name”输入框中自己命名。n图5-4中间的下拉框可以选择拟合算法,可以试用多种拟合算法,以找出最佳拟合图形。例如选择Smoothing Spline(平滑样条函数),观察Curve Fitting Tool窗口,如图5-5所示。图5-5 拟合曲线 MATLAB的图形窗口中提供了简单方便的数据拟合和基本统计工具。数据拟合工具可以对所绘制的曲线使用多种方法进行拟合;基本统计工具可提供最小值、最大值、平均
9、值、中位值、标准差、数据范围等统计运算。5.4.4 图形窗口的拟合和统计工具1数据拟合工具n使用数据拟合工具首先需要创建一幅图形,在命令行窗口输入以下程序:n x=0:5;n y=0,17,50,63,74,102;n plot(x,y,o)n axis(-1,7,-15,125)n在打开的图形窗口中,单击“工具”“基本拟合”菜单,则打开“基本拟合”窗口。如图5-6所示。图5-6 基本拟合窗口 在图5-6中的“绘制拟合图”中选择拟合方法(可同时选多种);“显示方程”复核框可以选择是否在图形上显示拟合多项式;“绘制残差图”复核框选中时会产生第二幅图形,该图形显示了每一个数据点与计算出来的拟合曲线
10、之间的距离。例如选择“线性”和“三次方”拟合方法,同时选中两个复核框,产生图形如图5-7所示。图5-7 拟合曲线和残差图2基本统计工具 MATLAB的图形窗口中还提供了基本统计工具,可以对所绘制的曲线进行各种统计运算。和使用数据拟合工具相同,先要创建一幅图形。在打开的图形窗口中,单击“工具”“数据统计信息”选项,则打开数据统计信息窗口。如图5-8所示。图5-8 数据统计信息窗口MATLAB基础及应用(第5版)第6章 图形用户界面本章要点本章要点 GUIDE开发工具 图形对象句柄的使用 控件、菜单和对话框的应用 图形用户界面的设计过程6.1 认识GUI GUI(Graphical User In
11、terfaces)是由窗口、图标、菜单、文本、按钮等图形对象构成的用户界面。一、GUI开发环境 1启动GUIDE 在命令行窗口输入“guide”后,按Enter键。弹出的“GUIDE 快速入门”对话框,如图6-1所示。图6-1 “GUIDE 快速入门”对话框“GUIDE 快速入门”对话框由“新建GUI”和“打开现有 GUI”两个选项卡组成。1)“新建GUI”选项卡包含四个初始化设计模板:Blank GUI(Default)创建一个空白的GUI(系统默认的)、GUI with Uicontrols创建一个带有控制组件的GUI、GUI with Axes and Menu创建一个带有轴对象和菜单的
12、GUI、Model Question Dialog创建一个问题对话框。2)“打开现有 GUI”选项卡含有一个“最近打开的文件”选择框,可以从中选择要打开的文件。2创建GUI 选择Blank GUI(Default)模板,单击【确定】按钮,打开GUI设计窗口。单击设计窗口“文件”“预设”选项,打开“预设项”对话框,勾选“在组件选项板中显示名称”选项,可以在组件面板中显示控件名称。设置后的GUI设计窗口如图6-2所示。注意:选择不同的设计模板,版面设计窗口是不同的,如何选择取决于设计的需要。图6-2 GUI设计窗口3运行和保存GUI 设计窗口的右边为版面设计区,向版面设计区添加控件,可以用鼠标从组
13、件面板拖动来完成。版面设计完成后,单击工具栏的运行按钮 即可运行GUI。首次运行 GUI 时,系统会提示存盘。存盘完成后,系统会打开运行界面窗口和M文件编辑窗口,同时生成两个文件:一个是fig文件,包含对GUI及其组件的完整描述;另一个是M文件,包含GUI的程序代码和组件回调事件代码。二、GUI设计规范 1界面一致性(1)显示信息(2)桌面布局 2界面易用性 3界面规范性6.2 GUIDE常用工具一、控件(1)普通按钮 普通按钮是一个矩形的凸出对象。在普通按钮上标有一个字符串,用于标识普通按钮。单击普通按钮,按钮会凹下,并产生相应的动作(执行一个程序或命令),当松开鼠标后,普通按钮又会弹起。(
14、2)滑动条 滑动条由3个部分组成,分别是滑动槽、滑动槽内的滑块和滑动槽两端的箭头。用鼠标拖动滑块、单击滑动槽两端的箭头都可以改变滑块是的位置,滑块的位置表示滑动条的当前值。可以设置滑动条的最小值、最大值与当前值。(3)单选按钮 单选按钮有一个标志文本,在标志文本的左边有一个小圆圈,当选中按钮时,小圆圈内有一个黑点,当没有选中时,小圆圈为空。用鼠标单击单选按钮,使按钮在“选中”与“不选中”两种状态间进行切换,这对于用户进行功能互斥的选择是很有用的。(4)复核框 复核框有一个标志文本,在标志文本的左边有一个小方框,可以使用鼠标单击小方框,使复核框在“选中”与“不选中”两种状态间进行切换。当选中时,
15、复核框的小方框内会有一个,当没有选中时,复核框的小方框内为空。当需要向用户提供多个互相独立的选项时,可以使用复核框。(5)可编辑文本 使用可编辑文本,用户能够交互地输入或修改已经存在的文本,这与文本编辑器的功能是一样的。可编辑文本可以是单行或多行文本模式。(6)静态文本 静态文本用于显示文本字符串。静态文本通常用于显示别的控件的有关信息。例如,与滑动条相连,可以在静态文本框中显示滑动条的取值范围。与可编辑文本不同,用户不能交互地改变静态文本框中的内容。(7)弹出式菜单 弹出式菜单有一个显示信息的框,框的右边有一个下拉式箭头。单击下拉箭头,就会显示一个列表,当没有打开列表时,信息框内显示的是当前
16、选择的表项。当打开列表,从中选择一个选项并单击后,该选项就会出现在信息显示框内。弹出式菜单没有多选功能,对于用户进行大量的互斥选择是很有用的,如果不用弹出式菜单,那么就必须设置大量互斥的单选按钮。(8)列表框 用于向用户显示一个或多个选项,用户可以选择一个或多个列表项。与弹出式菜单功能相同,但选项多时,占用的空间位置较大。(9)切换按钮 切换按钮与普通按钮在外观上非常相似,不同的是用鼠标单击切换按钮并松开后,切换按钮不会弹起,再单击一次,才会弹起,这可以表明切换按钮的所处状态。切换按钮的“按下”和“弹起”可执行不同的动作,在进行工具栏设计时,切换按钮是非常有用的。(10)表在设计窗口建立一个表
17、格,使用MATLAB工作区中的数据,也可以和EXCEL电子表格联合使用。(11)坐标区在设计窗口建立一个具有坐标区的绘图区域,用于绘制或显示图形。(12)面板面板用于控件的分组管理和显示,可以将一组类似的控件围在一个方框内,使界面显示整齐。移动面板时,面板内的控件会随着移动。使用时,先将面板拖动到设计窗口,再向里面拖动控件,以免控件被面板遮住显示不出来。(13)按钮组 按钮组类似于面板,但按钮组只包括单选按钮或者切换按钮。按钮组中的多个单选按钮之间具有互斥性,但与按钮组外的单选按钮无关。(14)ActiveX控件 MATLAB7.0新增加的控件,用来调用外部控件,例如调用VB、VC中常用的一些
18、控件。这个控件使得用GUI进行界面制作变得更有价值。6.2.2 排列工具排列工具 排列工具的作用是对选定的两个或两个以上的控件进行水平排列、垂直排列和均匀分布。单击GUI设计窗口工具栏上的 按钮,或者单击“工具”“对齐对象”菜单,都可以打开排列工具对话框。图6-3 排列工具对话框6.2.3 对象属性检查器对象属性检查器 利用对象属性检查器,可以查看每个对象的属性值,也可以修改、设置对象的属性值。选中某个控件,单击GUI设计窗口工具栏上 按钮 ;单击“视图”“属性检查器”菜单;或直接双击控件,都可以打开对象属性检查器。例如双击“普通按钮”控件,打开的“属性检查器”如图6-4所示。1外观及风格控制
19、类外观及风格控制类1)BackgroundColor:用于设置控件的背景颜色,默认值是系统定义的颜色。通过颜色设置对话框选择颜色。2)ForegroundColor:用于设置控件的前景颜色,即控件上显示文本的颜色,默认值是系统定义的颜色。通过颜色设置对话框选择颜色。3)Visible:属性取值可以是on或off,on是默认值。用于设置控件是否可见。4)Position:用于确定控件在图形窗口中的位置以及控件的大小。5)Units:设置控件的位置及大小的计量单位。2常规信息类常规信息类1)Enable:用于决定鼠标单击控件时控件的反应情况,有on、off和inactive三种取值。on是默认值,
20、表示控件是可用的;off表示控件不可用,而且控件外表看起来是灰色的;inactive也表示控件不可用,但控件外表与on是一样的。2)Style:用于设置控件的类型。3)Tag:属性取值是一个字符串,用于标记控件的名称,以便在程序设计时找到该控件,在一个程序中,控件的属性值是唯一的。2常规信息类常规信息类4)TooltipString:属性取值是一个字符串,用于提示信息显示。当鼠标移到控件上时,就会显示定义的字符串。5)FontName:用于设置文字的字体,默认值是系统定义的字体。属性取值是一个字符串,设置时可直接输入用户计算机支持的字体,例如宋体、黑体等。6)FontSize:用于设置文字的字
21、号,默认值是8.0。7)FontUnits:用于设置字号的单位,默认值是points(点)。3回调函数类回调函数类1)BusyAction:处理回调函数的中断。属性取值有两个选项:cancel取消中断事件,queue事件排队(默认设置)。2)ButtonDownFcn:用于定义鼠标在控件上单击、或在距离控件5个像素范围内单击时执行的函数。属性取值是一个字符串,可以是一个有效的MATLAB表达式或M文件名,用来表示要执行的函数。3)CallBack:是图形界面设计中最重要的属性之一,用于连接图形界面和整个程序系统。属性取值是一个可以直接求值的字符串,在该对象被选中和改变时,系统将自动对字符串进行
22、求值,执行该字符串所定义的函数。4)CreateFcn:用于定义创建控件时执行的回调函数。5)DeleteFcn:用于定义删除控件时执行的回调函数。6)Interruptibie:属性取值为on或off,用于定义当前的回调函数在执行时是否允许被中断。4当前状态信息属性1)String:属性取值是一个字符串,用于设置控件上显示的文本。2)Min:属性取值是一个标量,与Max属性配合使用,默认为0。3)Max:属性取值是一个标量,与Min属性配合使用,默认为1。4)Value:属性取值是一个标量或矢量,决定控件的当前值,在不同的控件类型中,该属性的意义不同。5)UIContextMenu:属性默认
23、取值是None,如果设置成一个Context Menu(上下文菜单)的标记,则将控件与菜单联系起来。当用鼠标右键单击该控件时,就会弹出与之联系的Context Menu菜单。四、图形窗口的属性(1)Color属性(2)MenuBar属性(3)Name属性(4)NumberTitle属性(5)Units属性(6)Position属性(7)Resize属性(8)Visible属性(9)回调函数1)BusyAction:处理中断事件的方式,默认queue排队,cancel取消中断事件。2)ButtonDownFcn:按下窗口界面上的按钮时执行的函数。3)Callback:回调函数,对象被选中时执行的
24、函数。4)CreateFcn:产生图形对象的处理函数。5)KeypressFcn:在键盘按下时执行的函数。(9)回调函数6)DeleteFcn:删除图形对象时执行的函数。7)ResizeFcn:图形窗口大小改变时执行的函数。8)WindowButtonDownFcn:在图形窗口中单击鼠标时执行的函数。9)WindowButtonMotionFcn:在图形窗口中移动鼠标时执行的函数。6.3 菜单和对话框一、图形对象句柄函数 1图形对象句柄函数函数名称说明函数名称说明gcf获得当前图形窗口的句柄gcbf获得当前正在调用的图形的句柄gca获得当前坐标轴的句柄gco获得当前对象的句柄gcbo获得当前正
25、在调用的对象的句柄2对象属性函数6.3.2 菜单菜单 在GUIDE窗口中,单击“工具”“菜单编辑器”菜单、或者单击工具栏中的菜单编辑器 按钮,都能够打开菜单编辑器。菜单编辑器包括“菜单栏”和“上下文菜单”两个选项卡,分别用于创建菜单栏和上下文菜单。在打开的菜单编辑器中,单击新建菜单图标,然后单击“Untitled1”菜单项,如图6-7所示图6-7 菜单编辑器1菜单属性(1)文本 显示菜单项的标识字符串,在标识字符串中的某字母前加字符则定义一个快捷键,由Alt键+该字符来激活。(2)标记 菜单项的标识项。一般用来标识某个菜单,在一个图形窗口中是唯一的,菜单的句柄能够利用Tag获取。例如某菜单Ta
26、g标识为menu1,其句柄可通过handle=findobj(tag,menu1)获得。(3)快捷键 定义菜单项的快捷键,第2层以下的菜单项可以使用。与Ctrl键组合使用。(4)在此菜单项上方放置分隔线 勾选后,可在当前菜单项下(至少要有两个同级菜单项)显示一个分隔线。(5)在此菜单项前添加复选框 勾选后,在当前菜单项前(该菜单项下没有子菜单)显示校验标记。(6)启用此项 设置菜单项使能状态,勾选后使能。(7)MenuSelectedFcn输入框 设置菜单回调函数,可以直接输入字符串或用【查看】按钮打开M文件编辑器来编辑回调函数。(8)更多属性 设置菜单属性。单击该按钮,可打开菜单的属性设置检
27、查器。2上下文菜单 上下文菜单选项卡用于创建弹出式菜单,多数是用鼠标右键单击某个图形对象时,在屏幕上弹出的菜单。这种菜单出现的位置是不固定的,而且总是和某个图形对象的UIContextMenu属性相联系。可先创建上下文菜单,再将图形对象的UIContextMenu属性设置为菜单的标记。二、对话框 1公用对话框函数功能函数格式说明打开文件fname=uigetfile列出当前目录下MATLAB能识别的所有文件,fname为返回选定的文件名uigetfile(FilterSpec,DTitle)列出当前目录下由参数FilterSpec指定类型的文件,DTitle为打开对话框的标题保存文件F,P=u
28、iputfile(InitFile,DTitle)显示用于保存文件的对话框,InitFile为保存类型,DTitle为对话框的标题。F为返回的文件名,P为文件路径。F,P可缺省颜色设置uisetcolor(h,DTitle)设置图形对象的颜色。h为图形对象句柄,DTitle为打开的颜色对话框标题字体设置uisetfont(h,DTitle)设置文本字符串、坐标轴或控件的字体。参数同颜色设置打印预览printpreview当前图形窗口的打印预览对话框打印设置printdlg当前图形窗口的打印对话框2专用对话框 函数功能函数格式说明帮助helpdlg(string,DTitle)显示帮助信息对话框
29、。参数string为信息对话框,参数DTitle为对话框标题错误信息errordlg(string,DTitle)显示错误信息对话框。参数同帮助对话框信息提示msgbox(string,DTitle,icon)显示信息提示对话框。参数icon用于指定图标,有none(默认,无图标)、error_help、warn、custom(用户自定义)四种问题提示questdlg(string,DTitle,str1,str2,str3,default)显示问题提示对话框。参数str1、str2、str3代表三个按钮,default必须是这三个按钮中的一个,表示默认选项警告信息warndlg(string,DTitle)显示警告信息对话框进程条waitbar(x,DTitle)以图形方式显示运算或处理的进程。参数x为进程比例长度,必须在01之间;参数DTitle为进程条标题waitbar(x,h)在同一进程条中,显示进程的变化。参数h为进程条的句柄。常用在循环语句中变量输入inputdlg(prompt,DTitle,line,def,resize)显示变量输入对话框。参数prompt定义输入窗口及显示信息,DTitle为对话框标题,line定义每个窗口的行数,def为输入的数据,resize定义对话框大小是否可调,可选on或off