《Matlab数据分析方法-选修课讲义.ppt》由会员分享,可在线阅读,更多相关《Matlab数据分析方法-选修课讲义.ppt(285页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、项目1 matlab基础1.1 MATLAB概述1.1.1 MATLAB的发展历程的发展历程 1984年,MATLAB第1版(DOS版);1992年,MATLAB4.0版;1994年,MATLAB 4.2版; 1997年,MATLAB 5.0版;1999年,MATLAB 5.3版;2000年,MATLAB 6.0版;2001年,MATLAB 6.1版;2002年,MATLAB 6.5版;2004年,MATLAB 7.0版;。项目1 matlab基础1.1.2 MATLAB的主要功能(1)数值计算和符号计算功能MATLAB以矩阵作为数据操作的基本单位,还提供了十分丰富的数值计算函数。MATLAB
2、和著名的符号计算语言Maple、C、C+相结合,使得MATLAB具有符号计算功能项目1 matlab基础(2)绘图功能 MATLAB提供了两个层次的绘图操作:一种是对图形句柄进行的低层绘图操作,另一种是建立在低层绘图操作之上的高层绘图操作。项目1 matlab基础(3)编程语言 MATLAB具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。(4)MATLAB工具箱 MATLAB包含两部分内容:基本部分和各种可选的工具箱。 MATLAB工具箱分为两大类:功能性工具箱和学科性工具箱。项目1 matlab基础1.2 初识MATLAB例1-1 绘制正弦曲
3、线和余弦曲线。x=0:0.5:360*pi/180;plot(x,sin(x),x,cos(x);例1-2 求方程 3x4+7x3 +9x2-23=0的全部根。p=3,7,9,0,-23; %建立多项式系数向量x=roots(p) %求根项目1 matlab基础例1-3 求积分quad(x.*log(1+x),0,1)例1-3 求解线性方程组。a=2,-3,1;8,3,2;45,1,-9; b=4;2;17; x=inv(a)*b项目1 matlab基础1.3 MATLAB的安装 安装MATLAB 6.5系统,需运行系统自带的安装程序setup.exe,可以按照安装提示依次操作。1.3.1 启
4、动与退出MATLAB集成环境 MATLAB系统的启动 与一般的Windows程序一样,启动MATLAB系统有3种常见方法:(1)使用Windows“开始”菜单。(2)运行MATLAB系统启动程序matlab.exe。(3) 利用快捷方式。项目1 matlab基础 启动MATLAB后,将进入MATLAB 集成环境。MATLAB 集成环境包括MATLAB主窗口、命令窗口(Command Window)、工作空间窗口(Workspace)、命令历史窗口(Command History)、当前目录窗口(Current Directory)和启动平台窗口(Launch Pad)。项目1 matlab基础
5、 当MATLAB安装完毕并首次启动时,展现在屏幕上的界面为MATLAB的默认界面,如图1-1所示。图图1-1 1-1 MATLABMATLAB默认界面默认界面项目1 matlab基础(4)MATLAB系统的退出 要退出MATLAB系统,也有3种常见方法: 在MATLAB主窗口File菜单中选择Exit MATLAB命令。 在MATLAB命令窗口输入Exit或Quit命令。单击MATLAB主窗口的“关闭”按钮。项目1 matlab基础1.3.2主窗口 MATLAB主窗口是MATLAB的主要工作界面。主窗口除了嵌入一些子窗口外,还主要包括菜单栏和工具栏。(1)菜单栏 在MATLAB 6.5主窗口的
6、菜单栏,共包含File、Edit、View、Web、Window和Help六个菜单项。项目1 matlab基础 File菜单项:File菜单项实现有关文件的操作。 Edit菜单项:Edit菜单项用于命令窗口的编辑操作。 View菜单项:View菜单项用于设置MATLAB集成环境的显示方式。项目1 matlab基础Web菜单项:Web菜单项用于设置MATLAB的Web操作。Window菜单项:主窗口菜单栏上的Window菜单,只包含一个子菜单Close all,用于关闭所有打开的编辑器窗口,包括M-file、Figure、Model和GUI窗口。Help菜单项:Help菜单项用于提供帮助信息。项
7、目1 matlab基础(2)工具栏 以MATLAB 6.5为例,其主窗口的工具栏共提供了10个命令按钮。这些命令按钮均有对应的菜单命令,但比菜单命令使用起来更快捷、方便。项目1 matlab基础(3)命令窗口 命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。 MATLAB命令窗口中的“”为命令提示符,表示MATLAB正在处于准备状态。在命令提示符后键入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。项目1 matlab基础一般说来,一个命令行输入一条命令,命令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以“,”
8、逗号分隔,若前一命令后带有分号,则逗号可以省略。项目1 matlab基础 如果一个命令行很长,一个物理行之内写不下,可以在第一个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。3个“.”小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。 在MATLAB里,有很多的控制键和方向键可用于命令行的编辑。项目1 matlab基础(4)工作空间窗口(workspace) 工作空间是MATLAB用于存储各种变量和结果的内存空间。在该窗口中显示工作空间中所有变量的名称、大小、字节数和变量类型说明,可对变量进行观察、编辑、保存和删除。项目1 matlab基础(5)命令历史记
9、录窗口 在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令的再运行。如果要清除这些历史记录,可以选择点击Edit菜单中的Clear Command History命令。项目1 matlab基础1.4.1 帮助窗口进入帮助窗口可以通过以下3种方法:(1) 单击MATLAB主窗口工具栏中的Help按钮。(2) 在命令窗口中输入helpwin、helpdesk或doc。(3) 选择Help菜单中的“MATLAB Help”选项。1.4 MATLAB帮助系统项目1 matlab基础 MATLAB帮助命令包括h
10、elp、lookfor以及模糊查询。 (1)help命令 在MATLAB 6.5命令窗口中直接输入help命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。同样,可以通过help加函数名来显示该函数的帮助说明。项目1 matlab基础lookfor命令 help命令只搜索出那些关键字完全匹配的结果,lookfor命令对搜索范围内的M文件进行关键字搜索,条件比较宽松。 lookfor命令只对M文件的第一行进行关键字搜索。若在lookfor命令加上-all选项,则可对M文件进行全文搜索。项目1 matlab基础1.4.3 演示系统 在帮助窗口中选择演示系统(Demos)选项卡
11、,然后在其中选择相应的演示模块,或者在命令窗口输入Demos,或者选择主窗口Help菜单中的Demos子菜单,打开演示系统。项目1 matlab基础1.4.4 远程帮助系统 在MathWorks公司的主页(http:/)上可以找到很多有用的信息,国内的一些网站也有丰富的信息资源。项目1 matlab基础本章结束!项目2 变量与函数一、常量与变量 MATLAB的数据类型主要有数字、字符串、矩阵、单元型数据及结构型数据。限于课时,下面我们只介绍常用类型。项目2 变量与函数1.常量 MATLAB中的数据有常量和变量之分,常量也称数值。数值量包括实数和复数,其在形式上又分为标量、向量、数组和矩阵等一切
12、可以用数字表示的量。实数采用十进位制表示,下面的数值是全法的。5、+5、-5、0.005、6.5e5、0.060e0125可以对数值进行各种算术运算、关系运算和逻辑运算。项目2 变量与函数 MATLAB的计算都是以双精度(double)格式进行的,且所有数值量在内存中也是以双精度保存的,但其显示格式却有不同形式有不同形式。我们可以在命令窗口用format命令临时临时改变显示方式,如下例所示。 b=0.75; format rational bb = 3/4 项目2 变量与函数 为方便同学们调用,我们将常见的显示格式控制列于表1-1中了。表表1-1 数据输出格式控制数据输出格式控制项目2 变量与
13、函数练习1:请同学们在命令窗口输入x=0.23e-5然后以不同显示方式输出x的结果,观察结果显示的不同。项目2 变量与函数2.变量 Matlab中的变量可用来存放数据,也可以用来存放向量或矩阵,并进行各种运算。变量全名规则是:(1)变量名区分大小写;(2)变量名以字母开头,可以由字母、数字、下划线组成,但不能用标点;(3)变量名长不超过63位,最多只含有63个字符,后面的字符无效。 为阅读程序的方便,对变量可解释,“%”是注释符,“%”后面的内容为注释,对程序计算不产生任何影响。项目2 变量与函数3.永久变量 永久变量只变量中的一种特殊情况,它在工作空间中见不到,但我们可直接调用。表1-2列出
14、了永久变量。1表表1-2 永久变量表永久变量表项目2 变量与函数4.符号变量名 在MATLAB中进行符号运算时需要先用syms命令创建符号变量和表达式,如: syms syms不仅可以声明一个变量,还可以指定这个变量的数学特性,比如:声明x y变量是实数型,可用命令:syms x y real 声明x y变量是整数型,可用命令: syms x y positive项目2 变量与函数3. MATLAB 数据类型数据类型 基本运算符有:加 (+)、减 (-)、乘 (*)、除 (/)、 幂次方 ()。 对于简单的数字运算,可以直接在命令窗口以平常惯用的形式输入。 对于较复杂的运算需要首先定义变量,然
15、后由变量表达式计算得到结果。 MATLAB的数据类型主要包括:数字、字符串、矩阵、单元型数字、字符串、矩阵、单元型数据及结构型数据数据及结构型数据等,下面将重点介绍其中几个常用类型。 项目2 变量与函数5.变量的查询与清除 在命令窗口中,我们只要输入“who”,就能在工作空间见到所有曾经设定过的至今有效的变量。如果我们输入的是“whos”,不但会显示所有变量,还会显示该变量的名称、性质等,即系统会显示该变量的详细资料。如输入“clear”将会清除工作空间里的所有变量。如果输入“clear 变量名”,只会清除指定变量名的变量。项目2 变量与函数 数学函数都有一个共同特点:若自变量x为矩阵,则输出
16、函数也为一个矩阵,即对的每个元素分别求函数值;若自变量x为通常情况下的一个数,则输出函数对应的是x的一个值。项目项目3 3 矩阵及其运算矩阵及其运算 矩阵是MATLAB数据存储单元,而矩阵的运算是MATLAB语言怕核心,在MATLAB语言系统中几乎一切运算都是以矩阵为基础的,矩阵的运算是按一定的运算规则进行的,其规则又是以运算符决定的。一、操作符与运算符1.操作符项目3 矩阵及其运算 在编辑程序或命令中,当标点或其它符号表示特定的操作功能时就称其为操作符。表3-1是常用的操作符。表表3-1常用操作符常用操作符项目3 矩阵及其运算2.运算符 算术运算符是构成运算的最基本的操作命令,可以在命令窗口
17、中直接运行。运算符分为三类:算术运算符、关系运算符和逻辑运算符。运算符及其功能列于表3-2、表3-3和表3-4中。项目3 矩阵及其运算表3-2 算术运算符算术运算符项目3 矩阵及其运算表表3-3关系运算符关系运算符表表3-4 逻辑运算符逻辑运算符项目3 矩阵及其运算二、矩阵的输入、访问与运算1.矩阵的输入 矩阵输入常用的方法主要有矩阵的直接输入法、外部文件读入法(如,Excel 文件读取的语法表达:文件读取的语法表达:X,texdata=xlsread(盘符:/文件夹名/Excel文件名.xls)、 复制粘贴法和连接法。项目3 矩阵及其运算(1)矩阵的直接输入法如在Command Window
18、(当前命令窗口)中符号“”之后 ,输入指令:A =1 2 3然后回车,则出现运算结果:A = 1 2 3 此指令表示输入一个一行三列的矩阵(即行向量),并将此矩阵(向量)保存在变量A中。 项目3 矩阵及其运算又如,在Command Window中输入指令: b=2 4 6;7 9 11;6 8 10输出结果为:b = 2 4 6 7 9 11 6 8 10 此指令表示输入一个三行三列的矩阵(即三阶方阵),并将此矩阵(向量)保存在变量b中。项目3 矩阵及其运算(2)外部文件读入法(如,Excel 文件读取的语法表达:文件读取的语法表达:X,textdata=xlsread(盘符:/文件夹名/Ex
19、cel文件名.xls) 假如我们在E盘的一个名叫“praxis_1”文件夹里的一个名叫“praxis_2_1”的excel文件中放置了数据,读取的命令格式是: X,textdata=xlsread(E:/praxis_2/praxis_2_1.xls)运行结果为:项目3 矩阵及其运算X = 66500 92500 95500 98000 86500 71000 73500 91500 64500 93500 texdata = 编号 姓名 部门 一月份 二月份 三月份 四月份 五月份 六月份 XS28 程小萍 销售(1)部 XS7 张丽 销售(1)部 XS41 卢奔 销售(1)部 XS1 刘月
20、 销售(1)部 XS15 杜鸣 销售(1)部 XS30 张成汉 销售(1)部 项目3 矩阵及其运算(3)复制粘贴法 复制粘贴法特别简单,就是从数据源里先复制,然后在当前命令窗口中粘贴即告完成。项目3 矩阵及其运算(4)连接法。 MATLAB中导入数据通常由函数load实现,该函数的用法如下: load:如果matlab.mat文件存在,导入matlab.mat中的所有变量,如果不存在,则返回error。 load filename:将filename中的全部变量导入到工作区中。 load filename X Y Z .:将filename中的变量X、Y、Z等导入到工作区中,如果是MAT文件,
21、在指定变量时可以使用通配符“*”。项目3 矩阵及其运算例2-1 创建和保存一个矩阵,并用“ load”命令读取这个矩阵。 A=1 2 3 4;5 6 7 8;11 12 13 14; %创建变量名为“A”的矩阵save %保存创建的矩阵saving to: D:DocumentsMATLABmatlab.mat %系统默认地将A保存的路径和文件格式(“mat”) load(matlab.mat) %数据读入命令 disp(A) %显示变量AA = 1 2 3 4 5 6 7 8 11 12 13 14项目3 矩阵及其运算2.矩阵的访问 矩阵的访问是进行数据分析的基础操作,所以我们以举例的方式来
22、说明矩阵的访问。【2-2】创建矩阵并进行访问操作。 variable = 1 2 3 4; 5 6 7 8;9 10 11 12; %创始矩阵 vr_1=variable(3,4) %访问矩阵第3行第四列元素,并将这个元素赋予变量”vr_1”。运行结果:vr_1 =12 vr_2=variable(2:3,4)%访问矩阵第2行到3行,第4列的元素,并将这些元素赋予变量”vr_2”。运行结果:vr_2 =8 12项目3 矩阵及其运算 variable(2:3,4)=1 %将矩阵第2行到3行,第4列的元素用“1”替换。运行结果:variable = 1 2 3 4 5 6 7 1 9 10 11
23、1 vr_3=variable(:,3)%访问矩阵第3列所有行元素,并并将这些元素赋予变量”vr_3”。运行结果:vr_3 = 3 7 11 vr_4=variable(5)运行结果:vr_4 = 6项目3 矩阵及其运算 variable(1:3,2)=78 88 99%将矩阵第1行到第3行,第2列所有元素依次更换为“78 88 99”运行结果:variable = 1 78 3 4 5 88 7 1 9 99 11 1 variable_2=A+B %矩阵的加法运算 ,并将结果variable_2 = 18 25 2 9 16 24 6 8 15 17 5 7 14 21 23 11 13
24、20 22 4 12 19 26 3 10项目3 矩阵及其运算3.矩阵的运算 矩阵的常用基本运算有加、减、乘、除、求逆等。数组方式和矩阵方式的运算符只差了一个小圆点,请注意观察实例代请注意观察实例代码。码。 加法和减法 数组方式和矩阵方式都是一样的,就是直接将对应位置上的元素相加。如果是一个数和矩阵相加,则矩阵的每一个元素都加上这个数。项目3 矩阵及其运算【2-3】创建矩阵并进行运算操作 A=magic(5) %创建一个5阶魔方矩阵 B = ones(5) %创建一个5阶元素全为1的矩阵 variable_2=A+B %矩阵的加法,交将运算结果赋予变量” variable_2 ”。结果:var
25、iable_2 = 18 25 2 9 16 24 6 8 15 17 5 7 14 21 23 11 13 20 22 4 12 19 26 3 10项目3 矩阵及其运算 B+3 %数与矩阵的加法运算运算结果:ans = 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4项目3 矩阵及其运算乘法、除法与逆运算 数组方式的乘法和除法是依元素对应相乘;矩阵方式的乘法则是按线性代数中的方法进行,矩阵的除是按线性代数中的取逆进行。左除:A/B,相当于A*B-1,右除:AB,相当于A-1*B。逆运算按线性代数中的方法进行。项目3 矩阵及其运算项目3 矩阵
26、及其运算项目3 矩阵及其运算项目3 矩阵及其运算2.特殊矩阵的建立 对于一些特殊的矩阵,由于其具有特殊构,MATLAB提供了一些函数用于生成这些矩阵,见表3-5。表表3-5 生成特殊矩阵的命令函数生成特殊矩阵的命令函数项目3 矩阵及其运算3.矩阵中元素或块的操作 矩阵中元素或块的常用操作我们将其列于表3-6中了。表表3-6 矩阵中元素或块的常用操作矩阵中元素或块的常用操作项目3 矩阵及其运算续表续表3-6项目3 矩阵及其运算4.矩阵的运算(1)矩阵间的运算 矩阵间的运算操作见表3-7。表表3-7 矩阵间的运算矩阵间的运算项目3 矩阵及其运算(2)矩阵与标量的运算 矩阵与标量运算操作见表3-8。
27、表表3-8 矩阵与标量的运算矩阵与标量的运算项目3 矩阵及其运算(3)矩阵的基本函数运算 矩阵的函数运算是矩阵运算中最实用的部分,常用的主要运算请见表3-9所示。表表3-9 矩阵函数运算命令矩阵函数运算命令项目3 矩阵及其运算(4)矩阵的数据处理 MATLAB具有很强的数据处理能力,如数据的排序、求最大值、最小值、求和、求均值等,常用的数据处理命令请见表3-10。其它数据分析方法我们将在项目4中详尽讲授。表表3-10 常用数据处理命令常用数据处理命令项目3 矩阵及其运算三、数组的输入与运算 只有一行的矩阵也称为数组或向量,MATLAB中对数组设置了一些相对于矩阵不一样的创建及运算命令。 1.数
28、组的输入 创建数组的命令如表3-11所示。项目3 矩阵及其运算表表3-11 创建数组的命令及方法创建数组的命令及方法项目3 矩阵及其运算2.数组元素的访问 访问一个元素:x(i)表示访问数组x的第i个元素。 访问一块元素:x(s:h:t)表示访问数组x的从第s个元素开始,以步长h到第个t(但不超过t)的这些元素,可以为负数,认默为1。3.标量与数组的运算 标量与数组的加、减、乘、除、乘方运算是数组的每个元素与该标量施加相应的运算,其表达式如表3-12所示。项目3 矩阵及其运算表表3-12 标量与数组的运算标量与数组的运算a=a1,a2, ,an是数组是数组,c为标量。为标量。项目3 矩阵及其运
29、算4.数组与数组间的运算数组与数组间的运算 数组与数间的运算要求数组的维数是相同的,其加、减、乘、除、幂的运算可以按元素对元素方式进行,不同维数的数组间不能进行运算,其表达式如表3-13所示。项目3 矩阵及其运算表表3-13 数组与数组的运算数组与数组的运算其中其中a=a1,a2, ,an;b=b1,b2, ,bn 数组的乘、除运算是指两个同维数组对应元素间的乘除运算,它们的运算数组的乘、除运算是指两个同维数组对应元素间的乘除运算,它们的运算只能为只能为“.*”、“./”、或、或“.”,而,而a*b、a/b、ab表达式是无意义的。表达式是无意义的。项目项目4 M文件与编程文件与编程 在默认状态
30、下,M文件编辑/调试窗口(Editor/Debugger)是不随MATLAB界面的出现而启动的,只有在编写M文件时,才启动该窗口。一、M文件 M文件是由MATLAB语句(命令或函数)构成有ASC码文本文件,文件名必须以“.m”为扩展名。M文件是通过M文件编辑/调试器生成的。在命令窗口调用M文件,可实现一次执行多条MATLAB语句功能,M文件有以下两种形式。1.命令文件 命令文件是MATLAB命令或函数的组合,没有参数的输入或输出,执行命令文件只需在命令窗口输入文件名按回车或在M文件编辑窗口激活状态下按“F5”键。如,我们求数1,2,3,100的和。在M文件编辑窗口写出程序如下:s=0;for
31、n=1:100 s=s+n;ends项目4 M文件与编程项目4 M文件与编程保存文件名为:exp_3。然后我们在命令窗口键入“exp_3”,即得结果如下: exp_3s = 5050 %这就是运行结果注,命令窗口输入:edit即可进入编辑窗口。2.函数文件 函数文件是另一种形式的M文件,可以有输入的参数或输出的返回参数,它的第一句可执行语句是以“function”引导的定义语句,函数文件不仅仅具有命令文件功能,更重要的是它提供了与其它MATLAB函数和程序的接口,因此功能更加强大。如,我们定义 函数,并求 。 我们在在M文件编辑器中编写如下程序:33( , )3f x yxyxy(2,3)f项
32、目4 M文件与编程function f=expb_3(x,y) f=x.3+y.3-3*x.*y; 保存的文件名与函数一致为:“expb_3”。然后,在命令窗口输入执行 expb_3(2,3)ans = 17项目4 M文件与编程二、控制语句编程二、控制语句编程1.循环语句 MATLAB提供了两种循环方式:forend循环和whileend循环。(1)for循环语句,其调用格式如下:for 循环变量=初值:步长:终值; 循环体end项目4 M文件与编程%例4-1sum=0 for i=1:1:100 sum=sum+i end请同学运行一下这个小程序或改变一下循环体。项目4 M文件与编程%例4-
33、2sum=0;i=1; while(i=100) sum=sum+i;i=i+1;end%例4-3a=0; while a0) fprintf(该方程有两个不同的实根: n); x1=(-b+sqrt(delt)/(2*a); x2=(-b-sqrt(delt)/(2*a); fprintf(x1=%f t x2=%f,x1,x2);项目4 M文件与编程elseif(delt=0) fprintf(该方程有两个相同的实根: n); x1=(-b)/(2*a); fprintf(x1=x2=%f, x1);else(deltxx = 0.3090 0.5878 0.8090 0.9511 1.0
34、000 0.9511 0.8090 0.5878 0.3090 0.0000 yy = 0.8090 0.3090 -0.3090 -0.8090 -1.0000 -0.8090 -0.3090 0.3090 0.8090 1.0000项目4 M文件与编程例4-2 构造一个for嵌套式语句。for n=1:5 for m=5:-1:1 A(n,m)=n2+m2; end disp(n) %显示n的值 disp(A) %显示A的值end运行结果如下: for_for_2 %M文件名 1 2 5 10 17 26 项目4 M文件与编程 5 2 5 10 17 26 5 8 13 20 29 10
35、13 18 25 34 17 20 25 32 41 26 29 34 41 50项目4 M文件与编程 用for循环,我们可以对一组命令执行固定次数的运算,但有时我们希望执行无穷次循环,此时我们可以用另外一种循环语句,它就是“while”循环,其一般格式为:while expressioncommandsend 在这个格式中, expression称为条件表达式, commands为我们要执行的循环代码。当expression为真时, commands才会一直执行下去,否则,执行会终止。如,例4-2。项目5 MATLAB作图作图n = 1; % n的初始值nF= 1; % nF的初始值whil
36、e nF n_nF %M文件名 nFnF = 1.1979e+100项目4 M文件与编程2. 条件控制语句 很多情况下,命令的序列必须根据关系的检验有条件地执行。在编程语言里,这种逻辑由某种If-Else-End结构来提供。最简单的结构是(1)if-else-end语句 if-else-end语句调用格式为:if 表达体 语句1; else 语句2;end 如,例4-3。项目5 MATLAB作图作图% Preallocate a matrixnrows = 10;ncols = 10;myData = ones(nrows, ncols);% Loop through the matrixfo
37、r r = 1:nrows for c = 1:ncols if r = c myData(r,c) = 2; elseif abs(r - c) = 1 myData(r,c) = -1; else myData(r,c) = 0; disp(myData); end endend例4-3 用if/elseif/else 创建一个矩阵。项目4 M文件与编程(2)switch分支结构语句 switch分支结构调用格式为: switch表达式 case 表达式1 语句体1 case 表达式2 语句体2 case 表达式m 语句体m otherwise语句体m+1end %如例4-4、4-5和4-
38、6。项目5 MATLAB作图作图mynumber = input(Enter a number:);switch mynumber case -1 disp(negative one); case 0 disp(zero); case 1 disp(positive one); otherwise disp(other value);end例4-4 用switch/case/otherwise编写一段程序。项目4 M文件与编程traffic_light=input(请输入一种信号灯:);switch(traffic_light) caseredlight, disp(禁止通行!); caseg
39、reenlight, disp(请通行!); caseyellowlight, disp(请慢行!); otherwise disp(确保安全下,缓慢通行!);end例4-5 用switch编一段程序。项目4 M文件与编程value=input(请输入一个数值:);switch(value) case1,3,5,7,9disp(这个数是奇数:); case2,4,6,8,10,disp(这个数是偶数:);otherwise,disp(the value is out of range);end例4-6 请运行下面一段程序,体味一下 switch分支语句项目5 MATLAB作图作图项目5 MAT
40、LAB作图一、二维图形 图形是数据可视化的一种表达或显示方式,我们借助几何图形可以形象地说明数据的特征和分布情况,常见的二维(平面)图形有散点图、条形图、直方图、盒图、阶梯图和火柴棒图项目5 MATLAB作图作图1.散点图 (1)绘制二维(平面)散点图的命令是scatter,其调用格式是:scatter(x,y)其中,x是横坐标向量,y是纵坐标向量。例5-1 绘制一个服从二维正态分布的数据散点图。程序编写如下:M文件名为:scatter_plotmu=2,3; %输入一个均值向量sa=1 1.5;1.5 3; %输入一个协方差矩阵r=mvnrnd(mu,sa,100); %随机生一个均值为mu
41、 ,协方差为sa ,n=100的样本数据scatter(r(:,1),r(:,2),*); %绘制样本数据的平面(二维)散点图项目5 MATLAB作图作图运行结果为: scatter_plot 输出结果见图5-1(a)-2-1012345-3-2-101234567图图5-1(a) 散点图散点图项目5 MATLAB作图作图(2 2)三维散点图三维散点图 scatter3scatter3(X,Y,Z,S,CX,Y,Z,S,C) 在向量X,Y和Z指定的位置上显示彩色圆圈,向量X,Y和Z的大小必须相同项目6 MATLAB作图作图例5-1 绘制三维散点图示例。解:在当前窗口或创建M文件,程序如下,输出
42、见图5-1(b)。x,y,z=sphere(16);X=x(:)*.5 x(:)*.75 x(:);Y=y(:)*.5 y(:)*.75 y(:);Z=z(:)*.5 z(:)*.75 z(:);S=repmat(1 .75 .5*10,prod(size(x),1);C=repmat(1 2 3,prod(size(x),1);scatter3(X(:),Y(:),Z(:),S(:),C(:),filled);view(-60,60) scatter_3 % 上面程序所建立的M文件名。项目5 MATLAB作图作图-1-0.500.51-1-0.500.51-101图图5-1(b) 三维散点图
43、的绘制三维散点图的绘制项目4 M文件与编程2.实线图(1) 绘制二维(平面)实线图的命令是plot,其调用格式是:plot(x,y,s)或plot(x1,y1,x2,y2,xn,yn,s)其中,x是横坐标向量,y是纵坐标向量;s是线型、颜色、点形,具体设置见表5-1。项目5 MATLAB作图作图表表5-1 实线绘制线型、实线绘制线型、颜色、点形参数颜色、点形参数项目5 MATLAB作图作图例5-1 在0,2*pi内用红线画sin(x),用绿圈画cos(x)。解:编程序如下:%M文件名为:plot_x_y% plot_x_yx=linspace(0,2*pi,30); %创建元素为30自0开始到
44、2*pi结束的数组y=sin(x);z=cos(x);plot(x,y,-r,x,z,og) %同一坐标系下绘制正弦和余弦曲线图运行结果见图5-2。项目5 MATLAB作图作图01234567-1-0.8-0.6-0.4-0.200.20.40.60.81图图5-2 同一坐标系下绘制正弦和余弦曲线图同一坐标系下绘制正弦和余弦曲线图项目5 MATLAB作图作图(2)图形标记图形标记在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的含义、坐标说明等,将这些操作称为添加图形标记。title(加图形标题); xlabel(加X轴标记); ylabel(加Y轴标记); text(X,Y
45、,添加文本); grid on 加网格线项目5 MATLAB作图作图(3)设定坐标轴设定坐标轴用户若对坐标系统不满意,可利用axis命令对其重新设定。axis(xmin xmax ymin ymax) 设定最大和最小值axis (auto) 将坐标系统返回到自动缺省状态axis (square) 将当前图形设置为方形axis (equal) 两个坐标因子设成相等axis (off) 关闭坐标系统axis (on) 显示坐标系统项目5 MATLAB作图作图例5-3 在坐标范围0X2,-2Y2内重新绘制正弦曲线。解:编程序如下:x=linspace(0,2*pi,60);%生成含有60个数据元素的
46、向量Xy=sin(x);plot(x,y);axis (0 2*pi -2 2);%设定坐标轴范围输出结果见图5-3。项目5 MATLAB作图作图0123456-2-1.5-1-0.500.511.52图图5-3 坐标系的重新设定的绘图坐标系的重新设定的绘图项目5 MATLAB作图作图(4)加图例)加图例给图形加图例命令为legend。该命令把图例放置在图形空白处,同学们还可以通过鼠标移动图例,将其放到希望的位置。格式:legend(图例说明图例说明);项目5 MATLAB作图作图例5-4 为正弦、余弦曲线增加图例。解:编程为:x=0:pi/100:2*pi;y1=sin(x);y2=cos(
47、x);plot(x,y1,x,y2, -);legend(sin(x),cos(x)输出结果见图5-4。项目5 MATLAB作图作图01234567-1-0.8-0.6-0.4-0.200.20.40.60.81 sin(x)cos(x)图图5-4 加图例说明的绘图加图例说明的绘图项目5 MATLAB作图作图3. 符号函数符号函数( (显函数、隐函数和参数方程显函数、隐函数和参数方程) )的绘图的绘图 绘制二维(平面)符号(包括显函数、隐函数和参数方程)图的命令常用的主要两个分别是ezplot和fplot。(1) ezplot调用格式是:ezplot(f(x),a,b) 表示在axb域内绘制显
48、函数f=f(x)的函数图; ezplot(f(x,y),xmin,xmax,ymin,ymax) 表示在区间xminxxmax和 yminyymax域内绘制隐函数f(x,y)=0的函数图;项目5 MATLAB作图作图 ezplot(x(t),y(t),tmin,tmax)ezplot(x(t),y(t),tmin,tmax) 表示在区间tmintezplot(2*cos(x),0,4*pi)项目5 MATLAB作图作图024681012-2-1.5-1-0.500.511.52x2 cos(x)图图5-5 在在0,4内绘制内绘制2cos(x)显函数的图形显函数的图形项目5 MATLAB作图作图
49、例5-6 在0,2*pi上画, 图形33cos ( ),sin ( )xtyt解:在当地前命令窗口中输入如下命令,输出结果见图5-6。 ezplot(cos(t)3,sin(t)3,0,2*pi)项目5 MATLAB作图作图-1.5-1-0.500.511.5-0.8-0.6-0.4-0.200.20.40.60.8xyx = cos(t)3, y = sin(t)3图图5-6 在在0,2域内绘制参数方程图形域内绘制参数方程图形项目5 MATLAB作图作图例5-7 在-2,0.5,0,2域内绘制 隐函数的图形。 sin()0 xexy解:在当地前命令窗口中输入如下命令,输出结果见图5-7。 e
50、zplot(exp(x)+sin(x*y),-2,0.5,0,2)项目5 MATLAB作图作图xyexp(x)+sin(x y) = 0-2-1.5-1-0.500.500.20.40.60.811.21.41.61.82图图5-7 隐函数绘图隐函数绘图项目5 MATLAB作图作图(4) 绘制有符字串的图形绘制有符字串的图形命令fplot调用格式为:fplot(fun,lims) 表示绘制字符串fun指定的函数在lims=xmin,xmax域内的图形.或lims=xmin,xmax, ymin,ymax域内图形。说明:1 fun必须是M文件的函数名或是独立变量为x的字符串. 2 fplot函数