1、普通高等院校计算机课程规划普通高等院校计算机课程规划教材教材MATLAB数据分析方法数据分析方法 李柏年 吴礼斌 主编 张孔生 丁 华 参编 1.1 数据分析与数据分析与MATLAB 1.1.1 数据分析概述数据分析概述1.数据分析的概念数据分析的概念数据分析是指用适当的统计方法对收集来的大量第一手数据分析是指用适当的统计方法对收集来的大量第一手资料和第二手资料进行详细研究,提取有用信息和形成结资料和第二手资料进行详细研究,提取有用信息和形成结论,以求最大化地开发数据资料的功能与发挥数据的作用。论,以求最大化地开发数据资料的功能与发挥数据的作用。2数据的来源与分类数据的来源与分类 数据是数据分
2、析的关键之一。数据也称观测数据是数据分析的关键之一。数据也称观测值,是实验、测量、观察、调查等的结果,常以值,是实验、测量、观察、调查等的结果,常以数量的形式给出。数据按照不同的标准进行分类,数量的形式给出。数据按照不同的标准进行分类,可分为:观测数据与试验数据、一手数据与二手可分为:观测数据与试验数据、一手数据与二手数据、时间序列数据与横截面数据等。数据、时间序列数据与横截面数据等。(1)观测数据与试验数据。(2)一手数据与二手数据。(3)时间序列数据与横截面数据。3数据分析的过程数据分析的目的是利用数据来研究一个领域的具体问题。数据分析的过程包括确定数据分析的目标、研究设计、收集数据、分析
3、数据、解释结果。1.1.2 MATLAB在数据分析中的位置和作用 从数据分析的整个过程来看,软件的使用主要是在第四阶段,即数据整理与分析阶段。软件所起的作用主要是整理、计算、绘制图表等。MATLAB是一套高性能的数值计算和可视化软件,它集矩阵运算、数值分析、信号处理和图形显示于一体,构成了一个界面友好、使用方便的用户环境,是实现数据分析与处理的有效工具,其中MATLAB统计工具箱更为人们提供了一个强有力的统计分析工具 1.2.2 MATLAB的特点与主要功能1.2 MATLAB简介简介 1.2.1 MATLAB概述(1)MATLAB是一个交互式软件系统,输入一条命令,立即就可以得出该命令的结果
4、。(2)数值计算功能。(3)符号运算功能。(4)绘图功能。(5)编程功能。(6)丰富的工具箱。1.2.3 MATLAB7.0界面命令窗口命令历史记录窗口当前工作当前工作目录目录(启动后的界面)(2)主菜单包括“File”、“Edit”、“Debug”、“Desktop”、“Window”和“Help”菜单。输入记录变量1.2.4 MATLAB的联机帮助 表1.1 命令窗口中获得MATLAB帮助的命令命 令 说 明help在命令窗口中显示M文件帮助lookfor在命令窗口中显示具有指定参数特征函数的M文件帮助doc 在帮助浏览器中显示指定函数的参考信息helpwin打开帮助浏览器,并且将初始界面
5、置于MATLAB函数的M文件帮助信息helpdesk打开一个名为“help”的帮助窗口demo打开一个“help”的演示模型界面,从而方便地了解MATLAB的基本功能.1.3 变量与函数1.3.1常量与变量1常量MATLAB中的数据有常量与变量之分,常量也称为数值。5、+5、-5.55、0.0056、6.5e-5 显示格式 在命令窗口中用format命令临时改变显示方式 表表1.2 数据的输出格式控制数据的输出格式控制格式格式中文解释中文解释说明说明format短格式(缺省格式)短格式(缺省格式)缺省时为默认短格式方式与缺省时为默认短格式方式与format short相同相同format sh
6、ort短格式短格式显示显示5位定点十进制数位定点十进制数format long长格式长格式显示显示15位定点十进制数位定点十进制数format short e短格式短格式e方式方式显示显示5位浮点十进制数位浮点十进制数format long e长格式长格式e方式方式显示显示15位浮点十进制数位浮点十进制数format short g短格式短格式g方式方式显示显示5位定点或位定点或5位浮点十进制数位浮点十进制数格式格式中文解释中文解释说明说明format long g长格式g方式显示15位定点或15位浮点十进制数format hex16进制格式以16进制格式显示format+格式以,-和空格分别
7、表示矩阵中的正数,负数和零元素format bank银行格式按元、角、分(小数点后具有两位)的固定格式显示format rat有理数格式用有理数逼近显示数据format compact压缩格式数据之间无空行format loose自由格式数据之间有空行2变量变量MATLAB中的变量可用来存放数据,也可用来存放向量或矩阵,并进行各种运算。变量的命名的规则是:变量名区分大小写;变量名以字母开头,可以由字母、数字、下画线组成,但不能使用标点;变量名长度不超过63位,最多只能含有63个字符,后面的字符无效。3永久变量永久变量永久变量是变量的一种特殊情况,它在工作空间中看不到,但是使用者可直接调用。表表
8、1.3 永久变量永久变量虚数单位:i=j=名称取 值ans用于结果的缺省变量名pi圆周率的近似值(3.1416)eps数学中无穷小(epsilon)的近似值(2.2204e-016)inf无穷大,如 1/0=inf(infinity)NaN非数,如 0/0=NaN(Not a Number),inf/inf=NaNi,jrealmax系统所能表示的最大数值realmin系统所能表示的最小数值nargin函数的输入参数个数nargout函数的输出参数个数4符号变量在MATLAB中进行符号运算时需要先用syms命令创建符号变量和表达式,如:syms x syms不仅可以声明一个变量,还可以指定这个
9、变量的数学特性,比如:声明变量x,y为实数类型,可用命令 syms x y real 声明变量x,y为整数类型,可用命令 syms x y positive 5变量的查询与清除在命令窗口中,只要输入“who”,就可以看到工作空间中所有曾经设定并至今有效的变量。如果输入“whos”,不但会显示所有的变量,而且会将该变量的名称、性质等都显示出来,即显示变量的详细资料。输入“clear”,就清除工作空间中的所有变量。如果输入“clear变量名”,只清除工作空间中指定变量名的变量。1.3.2函数MATLAB系统提供了近20类基本命令函数,它们有一部分是MATLAB的内部命令,有一部分是以M文件形式出现
10、的函数。表1.4 数学基本函数表函数名中文解释函数名中文解释sin(x)正弦函数 asin(x)反正弦函数 cos(x)余弦函数 acos(x)反余弦函数 tan(x)正切函数 atan(x)反正切函数 exp(x)以e为底的指数log10(x)以10为底数的对数log(x)自然对数sqrt(x)开平方函数名中文解释函数名中文解释abs(x)绝对值或向量的长度max(x)最大值 min(x)最小值sum(x)元素求和sign(x)符号函数round(x)四舍五入到最近的整数ceil(x)朝正无穷方向取整floor(x)朝负无穷方向取整fix(x)朝零方向取整gcd(x,y)求两整数最大公约数1
11、.4 矩阵及其运算1.4.1 操作符与运算符操作符使用说明:冒号。m:n产生一个数组m,m+1,,n;m:k:n产生一个数组m,m+k,,n;A(:,j)取矩阵A的第j列;A(k,:)取矩阵A的第k行;分号。在矩阵定义中表示一行的结束;在命令语句的结尾表示不显示这行语句的执行结果连续点。一个命令语句非常长一行写不完,可以分几行写,此时在行的末尾加上连续点,表示是一个命令语句%百分号。在编程时引导注释行,而系统解释执行程序时,%后面的内容不作处理运算符 功能说明+加法运算。两个数相加或两个同阶矩阵相加。如果是一个矩阵和一个数字相加,则这个数字自动扩展为与矩阵同维的一个矩阵-减法运算。两个数相加或
12、两个同阶矩阵相减*乘法运算。两个数相乘或两个可乘矩阵相乘/除法运算。两个数或两个可除矩阵相除(A/B表示A乘以B的逆)乘幂运算。数的方幂或一个方阵的多少次方运算符功能说明左除运算。两个数ab表示ba,两个可除矩阵相除(AB表示B乘以A的逆).*点乘运算。两个同阶矩阵对应元素相乘./点除运算。两个同阶矩阵对应元素相除.点乘幂运算。一个矩阵中各个元素的多少次方.点左除运算。两个同阶矩阵对应元素左除运算符功能说明运算符功能说明判断大于关系=判断大于等于关系判断小于关系A=2,3,5;1,3,5;6,9,4%同一行元素之间用空格或逗号,行之间用分号或回车A=2 3 5 1 3 5 6 9 4(2)外部
13、文件读入法。事先在记事本中编辑以下数据,保存为文件data1.txt,在MATLAB命令窗口中输入:load data1.txt data1%显示数据data1=1 1 11 2 31 3 61 1 11 2 31 3 6(3)复制粘帖法。打开数据文件(如WORD,EXCEL),复制文件中的数据,在命令窗口中输入矩阵名等于空的方括号(注意不要按回车键),如:A=;将光标置于方括号内,右击选择粘帖,这样数据就输入了。2特殊矩阵的建立生成特殊矩阵的命令函数功能说明a=生成空矩阵,当对一项操作无结果时,返回空矩阵,空矩阵的大小为零.b=zeros(m,n)生成一个m行、n列的零矩阵c=ones(m,
14、n)生成一个m行、n列的元素全为1的矩阵d=eye(m,n)生成一个m行、n列的单位矩阵rand(m)生成m阶均匀分布的随机矩阵randn(m)生成m阶正态分布的随机矩阵3矩阵中元素或块的操作表达式或命令函数功能说明A(k,:),:)提取矩阵A的第k行 A(:,(:,k)提取矩阵A的第k列 A(:)(:)依次提取矩阵A的每一列,将A拉伸为一个列向量 A(i1:i2,j1:j2)提取矩阵A的第i1i2行、第j1j2列,构成新矩阵A(a b c d,:)提取矩阵A的指定的第a、b、c、d行,构成新矩阵A(:,:,e f g h)提取矩阵A的指定的第e、f、g、h列,构成新矩阵A(i2:-1:i1,
15、:,:)以逆序提取矩阵A的第i1i2行,构成新矩阵A(:,j2:-1:j1)以逆序提取矩阵A的第j1j2列,构成新矩阵A(i1:i2,:,:)=删除A的第i1i2行,构成新矩阵A(:,:,j1:j2)=删除A的第j1j2列,构成新矩阵A B或或A;B将矩阵A和B拼接成新矩阵diag(A,k)抽取矩阵A的第k条对角线元素向量tril(A,k)抽取矩阵A的第k条对角线下面的部分triu(A,k)抽取矩阵A的第k条对角线上面的部分flipud(A)矩阵A进行上下行翻转fliplr(A)矩阵A进行左右翻转A矩阵A的转置rot90(A)矩阵A逆时针旋转904.矩阵的运算表达式功能说明A+B(A-B)A与
16、B为同型矩阵,对应元素相加(减).A*BA的列数要等于B的行数,按代数学中定义的矩阵乘法法则计算.A/BX=A/B是线性方程组XA=B的解。当A是可逆的矩阵时,A/B=A*B-1。ABX=AB是线性方程组AX=B的解。当A是可逆的矩阵时,AB=A-1*B。A.*BA与B为同型矩阵,对应元素相乘.A./BA与B为同型矩阵,对应元素相除.A.BA与B为同型矩阵,A中元素对应B中元素乘方运算。矩阵与标量的运算表达式功能说明 (设A为矩阵,c为标量)A+c(A-c)A中每个元素加(减)常数c.A*c(c*A)A中每个元素乘常数c.A/cA中每个元素除常数c。c./A 常数c分别被A中对应每个元素相除.
17、c.A常数c的对应与A中对应每个元素的乘方运算。A.c对应与A中每个元素对应常数的c次乘方运算。A cA是方阵,当c大于0时表示矩阵的方幂,当c小于0时表示A逆的方幂矩阵的函数运算命令功能命令功能det(A)求矩阵A的行列式 rref(A)求矩阵A的阶梯形的行最简形式 inv(A)求方阵A的逆矩阵 rank(A)求矩阵A的秩 size(A)求矩阵A的阶数 trace(A)求矩阵A的迹 eig(A)求A的特征值及特征向量 Q,R=qr(A)求正交矩阵Q和上三角阵R满足A=QR.orth(A)将非奇异矩阵A正交规范化1.5 M文件与编程文件与编程1.5.1 M文件编辑/调试器窗口(Editor/D
18、ebugger)在默认状态下,M文件编辑/调试器窗口不随MATLAB界面的出现而启动。只有需要编写M文件时,才启动该窗口。1.5.2 M文件M文件是由MATLAB语句(命令或函数)构成的ASCII码文本文件,文件名必须以“.m”为扩展名。M文件通过M文件编辑/调试器生成。在命令窗口调用M文件,可实现一次执行多条MATLAB语句的功能。1命令文件2函数文件MATLAB函数文件的组成:文件第一行是函数定义行,格式为function 返回参数1,参数2,=函数名(输入参数1,参数2,)函数体例如,定义函数并计算并计算在编辑器中写出如下程序:function f=wlb_2(x,y)%函数名为wlb_
19、2,返回值为ff=x.3+y.3-3*x.*y;%这是函数主体 保存为wlb_2(这是文件名,与函数名一致),然后在命令窗口中执行 wlb_2(2,3)ans=171.5.3控制语句的编程1.循环语句(1)for循环语句(计数循环方式),其调用格式如下。for 循环变量=初值:步长:终值 循环体end(2)while循环语句(条件循环方式),其调用格式为while 表达式循环体end2.条件控制语句(1)ifelseend 语句,其调用格式如下。if 表达式语句体1;else语句体2;end其执行过程为:当表达式的值为真时,执行语句体1,否则执行语句体2;语句体1或语句体2执行后,再执行if语
20、句的后继语句。switch 表达式case 表达式1 语句体1case 表达式2 语句体2 case 表达式m 语句体motherwise 语句体m+1end(2)switch分支结构语句,其调用格式如下。其执行过程为:控制表达式的值与每一个case后面表达式的值比较,若与第k(k的取值为1m)个case后面的表达式k的值相等,就执行语句体k;若都不相同,则执行otherwise下的语句体m+1。1.6 MATLAB通用操作实例(1)启动MATLAB。(2)在命令窗口中输入以下几行命令:a=1,2,3;4,5,6;7,8,9;b=1,3,5;2,4,6;5,7,9;c=矩阵加法计算;d=a+b
21、;wlb=矩阵乘法计算;w=a*b;(3)打开工作空间窗口查看变量,(4)双击其中的变量“a”,出现数组编辑器窗口(Array Editor)(5)打开历史命令窗口(Command History),单击鼠标右键,在快捷菜单中选择“Create M-File”命令生成M文件。(6)出现M文件编辑/调试器窗口(Editor/Debugger),单击工具栏的“Save”按钮,将文件保存为“d:MATLAB7workjinjishuxueshiyanshiyan101.m”。(7)打开当前目录浏览器窗口(Current Directory Browser),将当前目录设置为“D:MATLAB7workjinjishuxueshiyan”,可以看到刚保存的“shiyan101.m”文件,谢谢 谢!谢!THANK YOU!