MATLAB数据处理入门.ppt
第1章MATLAB数据处理入门,1.1数值矩阵的建立与基本操作,1.2基本数学运算与常用函数,1.3数据图形化的常用指令与图形的简单修饰,1.4运算流程的控制与指令集的函数化,1.0MATLAB工作环境简介,1.0MATLAB工作环境简介,运行MATLAB系统安装程序setup.exe,按照安装提示,一、安装MATLAB,二、启动与退出MATLAB,三、MATLAB主界面简介,当MATLAB安装完毕并首次启动时,展现在屏幕上的,界面为MATLAB的默认主界面,如下图所示:,双击桌面快捷方式图标即可启动MATLAB.,依次操作.,单击主窗口的“关闭”按钮即可退出MATLAB.,命令窗口(Command Window),工作空间窗口(Workspace),命令历史窗口(Command History),当前目录窗口(Current Directory),启动平台窗口(Launch Pad),菜单栏,工具栏,Workspace工具栏,命令窗口,命令窗口是MATLAB,的主要交互窗口,用于,输入命令并显示除图形,以外的所有执行结果.,MATLAB命令窗口中,的“”为命令提示符,,表示MATLAB正在处于准,备状态.在命令提示符后键入命令并按下回车键后,MATLAB,就会解释执行所输入的命令,并在命令后面给出计算结果.,存和删除.,将用户目录纳入MATLAB系统统一管理.,工作空间窗口,亦称“内存变量浏览器”,工作空间是MATLAB,用于存储各种变量和,结果的内存空间.在,该窗口中显示工作空,间中所有变量的名称、,大小、字节数和变量,类型说明,可对变量,进行观察、编辑、保,当前目录窗口,用户可以将自己的工作目录列入MATLAB搜索路径,从而,四、Notebook的启动,在Command Window中运行指令notebook setup,按照,提示安装Notebook.,首次使用Notebook,可在Command Window中运行指令,notebook,即可启动Notebook(在Word 中添加了一个新的,文档模板M-book).,M-book模板为用户提供了在Word环境下使用MATLAB的,功能.该模板定义了Word与MATLAB进行通讯的宏指令、文档,样式和工具栏.当调用该模板时的Word界面和通常的Word,界面主要有两点区别:,在菜单栏中多了一个Notebook菜单项,Notebook的许,多操作都可以通过该菜单项的命令来完成.,在“文件”菜单项下多了一个New M-book命令项.如果,在M-book模板下要建立新的M-book文档,可以选择该命令.,五、在Notebook中使用 MATLAB命令,最简单的的方法是:,在文档中输入MATLAB命令.,用鼠标选中命令行.,按组合键Ctrl+Enter执行所选命令.,命令行就变成了“绿色”,称为“输入单元”.,命令的执行结果“蓝色”输出,称为“输出单元”.,执行的结果是:,关于MATLAB的工作环境的更多介绍,关于Notebook使用方法的更多介绍,1.1数值矩阵的建立与基本操作,数值矩阵的建立,一、直接输入法,赋值语句的基本结构是:,变量 赋值表达式,矩阵 数据列表,矩阵定义符,赋值表达式任何合法的MATLAB表达式,排列成m行n列的数据.行用分号“;”区分,行中元素用逗号“,”(或一空格)区分,英文字母引导的,由字母、数字和下划线组成字符串命名,对字母的大小写敏感,特别的,建立二维数值矩阵的基本格式是:,二、文件装载法,对于大规模的矩阵,通常预先编写数据文件存盘,然后,MATLAB系统的“内存变量编辑器(Array Editor)”.,工具,方法,在指令窗口中向指定的新变量赋“空”矩阵,如byk=;,在“内存变量浏览器(Workspace)”中双击该变量,启,在“内存变量编辑器”弹出的空白表格中,每一个单元,保存该变量为数据文件,如文件名为byk,保存到用,调用,load byk.,在需要调用这个数据文件时,只需运行指令,使用“load”语句读入数据.,动“内存变量编辑器”;,格对应矩阵的一个元素,填写具体数值;,户指定的工作目录下.,三、函数生成法,使用构造特殊矩阵的MATLAB函数向系统输入数据.,使用MATLAB函数的方法称为函数的调用.,MATLAB函数调用语句的基本结构是:,返回变量列表=函数名(输入变量列表),常用的构造特殊矩阵的函数有:,函数功能,函数及调用格式,Z=zeros(r,c),生成元素全为0 的rc矩阵Z,O=ones(r,c),生成元素全为1 的rc矩阵O,D=diag(x),生成以向量x的元素为对角元的对角矩阵D,E=eye(r,c),生成对角线为1其它元素为零的rc矩阵E,建立数值矩阵的MATLAB实例,矩阵的基本操作,矩阵元素的寻访与修改,使用MATLAB进行数据处理所必须的基本技能.,矩阵的裁剪(提取某些行、列,或删除某些行、列),矩阵的拼接(已知矩阵的扩展,或几个矩阵合并成一个,矩阵的基本操作MATLAB实例,新矩阵),+-*/,1.2基本数学运算与常用函数,基本数学运算,一、矩阵的代数运算,MATLAB语言提供了如下矩阵代数运算的运算符:,转置,加法,减法,乘法,乘幂,左除,右除,上述运算遵循线性代数教程中的相关定义;,转置“”指矩阵的共轭转置;,矩阵的左除“”和右除“/”的含义是:,说明,XA=B的解是A右除B,即X=B/A(等价于X=BA-1).,AX=B的解是A左除B,即X=AB(等价于X=A-1B);,设A是可逆矩阵,则,二、矩阵的标量批处理运算,MATLAB在需要的时候可以将矩阵视为普通的行列排列整,矩阵与数组在形式上是一样的,但却是两个不同的概念.,当对一个矩阵(数组)施行标量批处理运算时,这个矩,MATLAB语言提供了如下标量批处理运算的运算符:,转置,乘法,乘幂,左除,右除,.*./,说明,俗称“点运算”,规则是两个数组对应元素之间的运算.,标量批处理运算要求数组的维数相同.,这里的转置“.”是非共轭转置.,齐的数据集合,通常称为数组.,阵就是失去了线性代数中矩阵的意义而成为一个数组了.,三、矩阵的关系运算,当关系运算作用于两个同型矩阵时,是两个矩阵的对应,MATLAB语言提供了如下关系运算符:,关系运算是在两个数值之间进行比较,当给定的关系,当关系运算作用于一个标量与一个矩阵时,是标量与矩,系假).,成立时返回数值1(表示关系真),否则返回数值0(表示关,的由0与1构成的矩阵.,阵的每一个元素进行比较,返回一个与参与运算的矩阵同型,元素之间进行比较,返回一个由0与1构成的同型矩阵.,符号,意义,=,=,=,=,小于,大于,不大于,不小于,等于,不等于,语法,A B,A B,A=B,A=B,A=B,A=B,0,四、矩阵的逻辑运算,当逻辑运算作用于两个同型矩阵时,运算在两个矩阵的,MATLAB语言提供了如下逻辑运算符:,逻辑运算也是在两个数值之间进行的,运算过程中将,当逻辑运算作用于一个标量与一个矩阵时,运算在标量,MATLAB关于运算优先级的规定与数学中的规定是一致的.,0,A=,B=,0,1,0,1,0,0,1,0,1,1,1,1,0,基本数学运算的MATLAB实例,符号,&,|,意义,与,或,非,语法,A&B,A|B,A,任何非零元素视为1(真).,同型的由0与1构成的矩阵.,与矩阵的每一个元素之间进行,返回一个与参与运算的矩阵,对应元素之间进行,返回一个由0与1构成的同型矩阵.,标量函数主要包含基本的数学函数,如三角函数、双曲,统计数据处理常用的函数,一、标量函数,MATLAB提供了大量的函数,种类繁多.按照函数的使用,标量函数的实质是矩阵元素的批处理运算,这些函数作,方法可以分为标量函数、向量函数和矩阵函数三种类型.,实质上是矩阵的元素).,用于矩阵时,是作用于矩阵的每一个元素(即函数的自变量,函数、指数函数、对数函数、取整函数等等.,doc sqrt,统计数据处理中常用的标量函数有:,调用格式可通过doc指令查询MATLAB系统帮助,如,函数,功能描述,abs(),求绝对值,sqrt(),求平方根,exp(),pow2(),求以e,2为底的指数,log10(),log(),log2(),求以10,e,2为底的对数,sign(),符号函数,gamma(),函数,round(),4舍5入取整,ceil(),向+取整,向0 取整,fix(),floor(),向-取整,设 f 是 MATLAB 的向量函数,仅当其作用于向量x时才有意义.,向量函数也可以作用于矩阵,此时其作用对象是矩阵的列,二、向量函数,统计数据处理中常用的向量函数有:,各种统计量的计算函数也都是向量函数.,函数,功能描述,sum(),求向量元素的和,cumsum(),求向量元素的累积和,prod(),求向量元素的积,cumprod(),求向量元素的累积积,max(),求向量元素的最大值,min(),求向量元素的最小值,length(),查询向量的维数,对向量元素的排序操作,sort(),向量,运算的结果是一个行向量.,三、矩阵函数,设 f 是 MATLAB 的矩阵函数,即当 f 作用于矩阵 A 时,遵循,MATLAB的矩阵函数按其作用可区分为:,统计数据处理几个常用矩阵处理函数:,函数,功能描述,reshape(),改变矩阵的型(将矩阵拉直为向量,或相反),fliplr(),左右翻转矩阵,flipud(),上下翻转矩阵,rot90(),90度旋转矩阵,tril(),取矩阵的下三角部分,triu(),取矩阵的上三角部分,矩阵生成与处理函数;,矩阵计算与线性方程组解算函数.,线性代数中有关矩阵运算的规则.,统计数据处理常用的矩阵函数有:,函数,功能描述,size(),求矩阵的行与列的维数,det(),求矩阵的行列式,rank(),求矩阵的秩,norm(),求矩阵的范数,inv(),求矩阵的逆矩阵,pinv(),求矩阵的广义逆矩阵,eig(),求矩阵的特征值与特征向量,eigs(),求矩阵某些特定的(如最大)特征值及相应的特征向量,常用函数功能的MATLAB例说,1.3 数据图形化的常用指令与图形的简单修饰,1.3.1 数据图形化的常用指令,一、数据图形化的几个常用指令简介,pie指令,pie(y,explode),绘制由数据向量y(表示各个因素所占的百分比)所,参数explode是一个与y的维数相同的由数字0和1构成,指令pie3绘制三维立体圆饼图,调用格式与pie相同.,参数explode可以缺省.,【扩展】,【说明】,【功能】,【格式】,定义的圆饼图.,形从圆饼图形中分离出来.,的向量,其作用是当其某个元素为1时,将对应的扇,bar指令,【格式】,bar(x,y,option),【功能】,绘制以向量x各个元素为横坐标,以向量y的各个,【说明】,向量x可以缺省,此时x1,2,3,.,在x缺省时,,参数 option 取值为 stacked 时绘制累加式条形图,以矩阵 y,参数 option 取值为 grouped 时绘制分组式条形图,以矩阵 y,参数 option 也可设置颜色,详见“图形的简单修饰”.,指定向量x时option只能引用颜色参数.,【扩展】,指令barh绘制水平放置的条形图,指令bar3绘制三维立体的垂直放置的条形图,指令barh3绘制三维立体的水平放置的条形图,调用格式均与bar类似.,对应元素为纵坐标所定义的条形图.,的各列向量的累加值为各矩形条的纵坐标.,的第 k 行数据为第 k 组中各矩形条的纵坐标.,plot指令,【格式】,plot(x,y,option),【功能】,在二维直角坐标平面上绘制由向量x和y的对应元素为,【说明】,向量x可以缺省,此时x1,2,3,.,参数option的取值是表示线型、数据点标识、颜色的1,参数option可以缺省.,【扩展】,指令plot3绘制3维点线图,调用格式与plot类似.,经常与plot指令配合使用的还有指令line,其最简单的,坐标的数据点或连接各个数据点的折线.,个或几个符号,具体取值详见后面的“图形的简单修饰”.,为plot图形中补充、添加辅助线.,对应坐标标识出的数据点之间的折线,通常用line指令,调用格式是 line(x,y),功能是绘制出由向量x和y的,二、多窗口绘图与点线图的单窗口多图方法,指令subplot(m,n,p)的功能是将当前图形窗口分割,多窗口绘图方法,subplot指令能够将当前的图形窗口分割成若干个子,【格式】,【功能】,subplot(m,n,p),撤销分割的方式是运行指令clf或subplot(1,1,1).,子窗口的编号是从1至mn,先上后下,先左后右.,m和n的最大取值是9,即最多允许99的分割.,成m行n列,并且现在正准备在第p个子窗口绘图.,窗口,实现在每个子窗口分别绘制不同的图形的目的.,点线图的单窗口多图方法,由plot指令的如下两种调用格式实现的:,plot(x,Y),这是一种简捷的调用格式,矩阵Y的行(列)维必须与,plot(x1,y1,option_1,xn,yn,option_n),这是一种细腻的调用格式,向量xk与yk等长,k=1,2,n,批命令方式,参数option_k的取法同前.,向量x的长度相等.,(不同的k,向量长度可以不相等).,追加式方式,要求plot指令与hold on/off指令配合使用,方法是:,hold off,指令plot执行时首先对当前图形窗口清屏,然后绘制图形.,在图形窗口只保留最新的plot图形.,在当前图形窗口中追加新 plot图形,首先要由 hold on,hold off指令的作用是是解除hold on指令.,plot(),hold on,plot(),指令通知系统保留当前图形窗口中的图形.,1.3.2 图形的简单修饰,一、点线图中的线型与数据点的标记,图形中的颜色,绘制点线图时,可以根据需要对线型、数据点标记及其,在绘图过程中,为使图形更加美观、易读,对图形进行,线型与参数取值,线型,实线(默认),点线,点划线,虚线,Option值,-,:,-.,-,颜色作出选择.,一些简单的修饰是必要的.,数据点形状与参数取值,颜色与参数取值,数据点形状,Option值,实心点(默认),.,加号形,+,雪花形,*,乘号形,x,空心圆形,o,数据点形状,Option值,空心正方形,s,空心菱形,d,空心三角形,v,空心五角星,p,空心六角星,h,颜色,Option值,蓝(默认),b,洋红,m,蓝绿,c,黄,y,红,r,绿,g,白,w,黑,k,二、图形的标记,图形的标记主要包括下列内容:,设置图形标题,设置坐标轴名称,添加图例,添加注释文字,下面介绍相关指令;,title指令,【格式】,title(string),【功能】,设置图形标题,【说明】,在所画图形的最上端显示说明该图形标题的,字符串string.,xlabel/ylabel指令,【格式】,xlabel(string),ylabel(string),【功能】,设置坐标轴名称,【说明】,xlabel(string)指令将字符串string水平放置,ylabel(string)指令将字符串string垂直放置,于横轴下方,以说明横轴数据的意义.,于纵轴左侧,以说明纵轴数据的意义.,legend指令,【格式】,legend(string1,string2,string3,option),【功能】,添加图例,【说明】,为图形按绘图的先后次序,用对应顺序的字符串,参数option可以省略,此时图例自动放置在图形视窗,string添加图例.,之内,当option=-1时,表示强行将图例放置到图形,视窗之外.,text指令,【格式】,text(x,y,string,cs),【功能】,添加注释文字,【说明】,在图形的指定坐标位置(x,y)处,添加由字符串,如不给出该选项,则(x,y)坐标的度量单位与图形中数据单位一致;,如果给出该选项,则(x,y)坐标表示规范化图形窗口的相对坐标,,cs是可选的引用参数:,在使用上述标记指令时,可以对字符串string所给出的文字,string所给出的注释文字.,其变化范围是01的实数,图形窗口的左下角坐标为(0,0),右上角坐标为(1,1).,在字符串string所给出的注释文字前(单引号内)添加控制参数,number的取值为整数,缺省值为10.,fontsizenumber,字号的大小进行控制,其设置方法是:,数据的图形化MATLAB实例,1.4.1 运算流程的控制,1.4运算流程的控制与指令集的函数化,for-end循环结构,【语法】,for i=a:k:b,end,【说明】,for循环结构的执行与C、VB语言相似.,i为循环变量,a为循环初值,k为步长,b为循环终值;,commands为循环体.,if-end分支结构,【语法】,if,end,【语法】,if,else,end,【语法】,if,elseif,else,end,【说明】,分支结构的执行与C、VB语言相似;,expression是关系或逻辑判断语句.,其它控制程序流程的指令,while-end循环结构,switch-case-end开关结构,try-catch-end探试结构,1.4.2 指令集的函数化,无论是计算还是绘图,都是根据问题的需要按照一定的顺,保存指令集为MATLAB语言的可执行文件,称为m-脚本文件.,文件名是一条可执行的、用户自定义指令,以后若再次执,M-脚本文件运行中所处理的数据及返回数据均在MATLAB的,适宜小规模计算或编写大规模计算程序的主程序.,序使用有关指令,这些指令构成了解决某一特定问题的指令集.,件名并运行即可.,行这一指令集,只需在指令窗口或Notebook环境中键入这个文,工作内存(Workspace)中.,一、m-脚本文件,二、m-函数文件,如果问题的规模较大、结构化程度高,相关算法在同类问,用户自定义的m-函数同MATLAB系统函数一样可以在需要.,除预先定义的全局(输入/输出)变量在MATLAB的工作内存,文件称为m-函数文件,通常用于子程序的编写.,指令进行函数化处理,规划和确定输入/输出参数,此类可执行,题中可重复使用时,则应当对相应的MATLAB指令集由function,时重复调用,与m-脚本不同,m-函数运行中所处理的数据及返回数据,,临时的局部变量空间.,时的局部变量空间中,该函数运行结束时系统自动删除这一,(Workspace)中,其余均在调用该函数时系统自动开辟的临,m-文件的编写通常在MATLAB程序编辑器(Editor)中,m-脚本文件与m-函数文件是MATLAB语言程序设计的两,若是在Notebook环境中已经编写出m-文件,则可将文,m-脚本文件和m-函数文件的编写,除m-函数文件必须,三、m-文件的编写环境,要有由“function”引导的函数申明行外,其它要求一样.,保存.,件中的全部指令复制/粘贴到程序编辑器,调试无错误即可,序编辑器.,进行.单击“New M-File”图标(或菜单选项),即可开启程,种源程序文件格式,统称m-文件,文件的扩展名均为m.,遵循m-函数文件的编写要求,可以将用户程序文件纳入,四、m-函数文件编写规范,函数申明行,function返回变量列表=funname(输入变量列表),H1(关键词)行,%FUNNAME(大写体函数名),关键词描述的函数功能,在线帮助文本区,%输入、输出变量的意义,调用格式说明,算法说明等,隔离行,无任何标记的空行,编写与修改记录,%编写者姓名,编写日期,修改日期等,隔离行,无任何标记的空行,函数体,Matlab命令集(为增强程序的可读性,在函数体中可,m-文件编写实例,配置适当的空行和%引导的注释),MATLAB系统进行管理.,1.4.3 m-文件的保护,m-脚本文件和m-函数文件均由ASC码构成,可以由任何,为防止有人擅自修改这个文件,可进行伪编译转化为二进,伪编译生成的文件称为P代码文件,即文件的扩展名为p.,生成P代码文件的指令是pcode,其使用方法是:,pcode FunName-inplace,在m-函数文件FunName.m所在的目录上生成FunName.p.,内存中P代码文件列表与清除:,inmem,clear FunName,clear functions,m-文件伪编译实例,列出内存中所有P代码文件,清除内存中FunName.p文件,清除内存中所有P代码文件,一种纯文本文件编辑器查看或修改文件的源代码.,制代码,不仅将文件保护起来,还可以提高程序的运行速度.,