版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1会计学matlab_Matlab及其基本运算及其基本运算2第二章第二章 MatlabMatlab及其基本运算及其基本运算 Matlab简介简介 数学类型数学类型 数值计算数值计算 符号计算符号计算 绘图绘图 文件系统文件系统 MATLAB-巨人肩上的工具 3 Matlab 是一个可视化的计算程序,被广泛地应是一个可视化的计算程序,被广泛地应用在科学运算领域里。它具有用在科学运算领域里。它具有功能强大、使用简单功能强大、使用简单等等特点,内容包括:数值计算、符号计算、数据拟合、特点,内容包括:数值计算、符号计算、数据拟合、图形图像处理、系统模拟和仿真分析等功能。此外,图形图像处理、系统模拟和仿
2、真分析等功能。此外,用用Matlab还可以进行动画设计、有限元分析等。还可以进行动画设计、有限元分析等。 本章节的目的是使同学们能够运用本章节的目的是使同学们能够运用Matlab进行进行一般的工程计算一般的工程计算,掌握,掌握Matlab的基本技术(基本计的基本技术(基本计算、矩阵处理、符号运算和图形显示技术等),为将算、矩阵处理、符号运算和图形显示技术等),为将来从事工程技术方面的产品开发、科学研究、工程计来从事工程技术方面的产品开发、科学研究、工程计算和管理打下一定的基础。算和管理打下一定的基础。章节的目的和任务章节的目的和任务45MATLAB的出现 70年代中期,年代中期,Cleve M
3、oler和他的同事开发了和他的同事开发了LINPACK和和EISPACK的的Fortran子程序库子程序库 70年代末期,年代末期,Cleve Moler 在新墨西哥大学给学生在新墨西哥大学给学生开线性代数,为学生编写了接口程序,这程序取名开线性代数,为学生编写了接口程序,这程序取名为为MATLAB,即即MATrix LABoratory1983年春天,工程师年春天,工程师John Little与与Moler、Steve Bangert一起开发了第二代专业版一起开发了第二代专业版MATLAB1984年,年,MathWorks公司成立,公司成立,MATLAB正是推正是推向市场。向市场。6 1 M
4、ATLAB的发展的发展 1984年,年,MATLAB第第1版版(DOS版版) 1992年,年,MATLAB 4.0版版 simlink内嵌内嵌 1994年,年,MATLAB 4.2版版 1997年,年,MATLAB 5.0版版 全面的面向对象全面的面向对象 1999年,年,MATLAB 5.3版版 Release 11 2000年,年,MATLAB 6.0版版 Release 12 2001年,年,MATLAB 6.1版版 2002年,年,MATLAB 6.5版版 购并了购并了MATRIXx 2004年,年,MATLAB 7.0版版782 MATLAB的主要功能的主要功能 1数值计算和符号计算
5、功能数值计算和符号计算功能MATLAB以以矩阵矩阵作为数据操作的基本作为数据操作的基本单位,还提供了十分丰富的数值计算单位,还提供了十分丰富的数值计算函数。函数。MATLAB和著名的符号计算语言和著名的符号计算语言Maple相结合,使得相结合,使得MATLAB具有符具有符号计算功能。号计算功能。92绘图功能绘图功能 MATLAB提供了提供了两个层次两个层次的绘图操作:一的绘图操作:一种是对图形句柄进行的低层绘图操作,另种是对图形句柄进行的低层绘图操作,另一种是建立在低层绘图操作之上的高层绘一种是建立在低层绘图操作之上的高层绘图操作。图操作。3编程语言编程语言 MATLAB具有程序结构控制、函数
6、调用、具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。言特征,而且简单易学、编程效率高。104MATLAB工具箱工具箱 MATLAB包含两部分内容:基本部分和各种包含两部分内容:基本部分和各种可选的工具箱。可选的工具箱。MATLAB工具箱分为两大类:功能性工具箱工具箱分为两大类:功能性工具箱和学科性工具箱。和学科性工具箱。11MATLAB特点 基于矩阵运算的工作平台基于矩阵运算的工作平台,支持支持多种操作系统多种操作系统:windows/unix/dos/Macintosh 可扩充性可扩充性: MATLAB的
7、函数大多为的函数大多为ASCII文件,可文件,可以直接编辑、修改以直接编辑、修改 高度适应性高度适应性、开放性:、开放性:MATLAB的工具箱可以任意的工具箱可以任意增减,任何人可以自己生成增减,任何人可以自己生成MATLAB工具箱工具箱 各行业的高手(真正的大家各行业的高手(真正的大家)提供了许多工具箱。提供了许多工具箱。12Matlab能做什么 基本的数据处理基本的数据处理 数据来源:数据来源:Excel、数据库、数据库、A/D等等等等 优化和解方程优化和解方程 动态过程仿真:实时的和非实时的动态过程仿真:实时的和非实时的 嵌入式的控制:嵌入式的控制:Pc/104和和DSP 神经元网络、小
8、波分析、神经元网络、小波分析、GA等等等等 虚拟现实仿真虚拟现实仿真13为什么选择为什么选择Matlab 不希望同学们在编程上化太多时间,课不希望同学们在编程上化太多时间,课程目的不是学习编程程目的不是学习编程 社会化的运行带来的好处:合理利用可社会化的运行带来的好处:合理利用可以节约大量的时间以节约大量的时间 为什么相同的时间别人比自己做出了更为什么相同的时间别人比自己做出了更多的事情:硕士论文调查结果多的事情:硕士论文调查结果 面向对象的思想带来巨大的好处面向对象的思想带来巨大的好处 紧密结合科学的前沿紧密结合科学的前沿 From BBS:From BBS:博士论文博士论文= = Matl
9、ab + WordMatlab + Word 14Matlab产品家族Matlab扩展支持在扩展支持在matlab中队系统的实中队系统的实施和开发。施和开发。工具箱:专用的函数工具箱:专用的函数库,解决特定领域的库,解决特定领域的问题。问题。Simulink非线性系统非线性系统仿真仿真Blockset是专门为是专门为simulink建立的模块建立的模块。1516171819201.USENET新闻组新闻组MATLAB的新闻组是的新闻组是comp.soft-sys.MATLAB。浏览器浏览器指向指向http:/ http:/2.网络上的工具箱网络上的工具箱http:/ http:/ The Ma
10、thWorks公司官方网站公司官方网站产品与全套工具箱手册下载产品与全套工具箱手册下载http:/第三方工具箱下载第三方工具箱下载 http:/ 产品在中国独家代理产品在中国独家代理 (北京九州恒润公司北京九州恒润公司)http:/22 MATLAB大观园大观园http:/www.matlab- MATLAB与应用论坛与应用论坛http:/ 博士家园论坛网站博士家园论坛网站http:/ 一些高校的一些高校的bbs清华大学、哈工大、上海交大、西安交大等清华大学、哈工大、上海交大、西安交大等23 3 初识初识MATLAB例例1-1 绘制正弦曲线和余弦曲线。绘制正弦曲线和余弦曲线。x=0:0.5:3
11、60*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) %求根求根242526 例例1-3 求积分求积分quad(x.*log(1+x),0,1) 例例1-4 求解线性方程组。求解线性方程组。a=2,-3,1;8,3,2;45,1,-9; b=4;2;17; x=inv(a)*b2728Mathematica的计算结果(比较)的计算结果(比较)29Mathematica的计算结果的计算结果230Mathematic
12、a的计算结果的计算结果3、4314 MATLAB的运行环境与安装的运行环境与安装 4.1 MATLAB的运行环境的运行环境硬件环境:硬件环境:(1) CPU (2) 内存内存(3) 硬盘硬盘(4) CD-ROM驱动器和鼠标。驱动器和鼠标。软件环境:软件环境:(1) Windows 98/NT/2000 或或Windows XP(2) 其他软件根据需要选用其他软件根据需要选用32 2.2 MATLAB的安装的安装 安装安装MATLAB 6.5系统,需运行系统自带的系统,需运行系统自带的安装程序安装程序setup.exe,可以按照安装提示依可以按照安装提示依次操作。次操作。333 MATLAB集成
13、环境集成环境 3.1 启动与退出启动与退出MATLAB集成环境集成环境 1MATLAB系统的启动系统的启动与一般的与一般的Windows程序一样,启动程序一样,启动MATLAB系统有系统有3种常见方法:种常见方法: (1)使用使用Windows“开始开始”菜单。菜单。(2)运行运行MATLAB系统启动程序系统启动程序matlab.exe。(3) 利用利用快捷方式快捷方式。34 启动启动MATLAB后,将进入后,将进入MATLAB 6.5集成环境。集成环境。MATLAB 6.5 集成环境包括集成环境包括MATLAB主窗口、命令窗口主窗口、命令窗口(Command Window)、工作空间窗口工作
14、空间窗口(Workspace)、命令命令历史窗口历史窗口(Command History)、当前目录窗口当前目录窗口(Current Directory)和启动平台窗口和启动平台窗口(Launch Pad)。35 当当MATLAB安装完安装完毕并首次启动时,毕并首次启动时,展现在屏幕上的界展现在屏幕上的界面为面为MATLAB的默的默认界面,如右图所认界面,如右图所示。示。36Matlab工作环境界面工作环境界面 历史命令历史命令 发射台发射台 命令命令 窗口窗口 标题栏标题栏 菜单栏菜单栏 常用工具栏常用工具栏 工作区工作区 当前路径当前路径37Matlab工作环境界面工作环境界面2、MATL
15、AB工具栏 38 2MATLAB系统的退出系统的退出要退出要退出MATLAB系统,也有系统,也有3种常见方法:种常见方法:(1) 在在MATLAB主窗口主窗口File菜单中选择菜单中选择Exit MATLAB命令。命令。(2) 在在MATLAB命令窗口输入命令窗口输入Exit或或Quit命命令。令。(3) 单击单击MATLAB主窗口的主窗口的“关闭关闭”按钮。按钮。39 3.2 主窗口主窗口MATLAB主窗口是主窗口是MATLAB的主要工作界的主要工作界面。主窗口除了嵌入一些子窗口外,还主面。主窗口除了嵌入一些子窗口外,还主要包括菜单栏和工具栏。要包括菜单栏和工具栏。1菜单栏菜单栏在在MATL
16、AB 6.5主窗口的菜单栏,共包含主窗口的菜单栏,共包含File、Edit、View、Web、Window和和Help 6个菜单项。个菜单项。40 (1) File菜单项:菜单项:File菜单项实现有关文件的菜单项实现有关文件的操作。操作。(2) Edit菜单项:菜单项:Edit菜单项用于命令窗口菜单项用于命令窗口的编辑操作。的编辑操作。(3) View菜单项:菜单项:View菜单项用于设置菜单项用于设置MATLAB集成环境的显示方式。集成环境的显示方式。(其他菜单和窗口的介绍略去)(其他菜单和窗口的介绍略去)41(其他菜单和窗口的介绍略去)(其他菜单和窗口的介绍略去)MATLAB 通用命令4
17、24 MATLAB帮助系统帮助系统434 MATLAB帮助系统帮助系统4.1 帮助窗口帮助窗口进入帮助窗口可以通过以下进入帮助窗口可以通过以下3种方法:种方法:(1) 单击单击MATLAB主窗口工具栏中的主窗口工具栏中的Help按按钮。钮。(2) 在命令窗口中输入在命令窗口中输入helpwin、helpdesk或或doc。(3) 选择选择Help菜单中的菜单中的“MATLAB Help”选选项。项。444546 4.2 帮助命令帮助命令 Matlab常用的窗口帮助命令常用的窗口帮助命令47 4.2 帮助命令帮助命令 MATLAB帮助命令包括帮助命令包括help、lookfor以及以及模糊查询。
18、模糊查询。1help命令命令在在MATLAB 6命令窗口中直接输入命令窗口中直接输入help命令命令将会显示当前帮助系统中所包含的所有项将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。同样目,即搜索路径中所有的目录名称。同样,可以通过,可以通过help加函数名来显示该函数的帮加函数名来显示该函数的帮助说明。助说明。48 2lookfor命令命令 help命令只搜索出那些关键字完全匹配的命令只搜索出那些关键字完全匹配的结果,结果,lookfor命令对搜索范围内的命令对搜索范围内的M文件文件进行关键字搜索,条件比较宽松。进行关键字搜索,条件比较宽松。lookfor命令只对命令只
19、对M文件的第一行进行关键文件的第一行进行关键字搜索。若在字搜索。若在lookfor命令加上命令加上-all选项,则选项,则可对可对M文件进行全文搜索。文件进行全文搜索。49 3模糊查询模糊查询 MATLAB 6.0以上的版本提供了一种类似模以上的版本提供了一种类似模糊查询的命令查询方法,用户只需要输入糊查询的命令查询方法,用户只需要输入命令的前几个字母,然后按命令的前几个字母,然后按Tab键,系统就键,系统就会列出所有以这几个字母开头的命令会列出所有以这几个字母开头的命令。50怎样获得详尽的帮助信息(总结)1.1. 首先是首先是MATLABMATLAB窗口中的窗口中的helphelp命令,它最
20、常用、最快,往往命令,它最常用、最快,往往也是最有效的。给出关键字就能找到相应的说明。也是最有效的。给出关键字就能找到相应的说明。HelpHelp命命令简单易用,但是它要求准确给出关键字,如果记忆不准令简单易用,但是它要求准确给出关键字,如果记忆不准,就很难找到。这时就应该用第二种方案。,就很难找到。这时就应该用第二种方案。2.2. Help DeskHelp Desk:这是:这是MATLABMATLAB的的HTMLHTML格式的帮助文档,有着很好格式的帮助文档,有着很好的组织。可以在命令行键入的组织。可以在命令行键入helpdeskhelpdesk,进入,进入“Matlab Help Mat
21、lab Help DeskDesk”。Help DeskHelp Desk的搜索可以使用不完全关键字,这样即的搜索可以使用不完全关键字,这样即使遇到记忆模糊的情况也可以很快查到。使遇到记忆模糊的情况也可以很快查到。3.3. 前面两种方法所得到的帮助信息常常是不够细致的,需要前面两种方法所得到的帮助信息常常是不够细致的,需要用第三种途径来补充,这就是电子版的使用手册。用第三种途径来补充,这就是电子版的使用手册。MATLABMATLAB里包含了大量关于里包含了大量关于MATLABMATLAB安装、使用、编程以及各种工具安装、使用、编程以及各种工具箱等的电子版手册,全部为箱等的电子版手册,全部为PD
22、FPDF格式格式, ,具有搜索功能,因此具有搜索功能,因此也可以在指定的手册中搜索关键字,使用非常方便。也可以在指定的手册中搜索关键字,使用非常方便。51 4.3 演示系统演示系统 在帮助窗口中选择演示系统在帮助窗口中选择演示系统(Demos)选项卡,然后在其选项卡,然后在其中选择相应的演示模块,或者在命令窗口输入中选择相应的演示模块,或者在命令窗口输入Demos,或或者选择主窗口者选择主窗口Help菜单中的菜单中的Demos子菜单,打开演示系统子菜单,打开演示系统。基本矩阵演示窗口基本矩阵演示窗口MATLAB 演示窗口演示窗口52 4.4 远程帮助系统远程帮助系统 在在MathWorks公司
23、的主页公司的主页(http:/)上可上可以找到很多有用的信息,国内的一些网站也有丰富的信息资以找到很多有用的信息,国内的一些网站也有丰富的信息资源。源。53MATLAB 变量及数据操作变量及数据操作a) 变量和常量变量和常量 变量变量(包括函数包括函数)的的命名规则命名规则:由英文字母、数字和下划:由英文字母、数字和下划线混合组成,不得包含空格和标点线混合组成,不得包含空格和标点 ;第一个字符必须;第一个字符必须是英文字母,最多包括是英文字母,最多包括31个字符个字符; 对字母的大小写敏对字母的大小写敏感感。 局部变量和全局变量局部变量和全局变量 永久变量(常量)永久变量(常量)只能在某一函数
24、体内使用,而不能从其他函数和只能在某一函数体内使用,而不能从其他函数和 Matlab工作空间访问的变量,就是工作空间访问的变量,就是局部变量局部变量。在几个函数及在几个函数及Matlab函数中都能使用的变量就是函数中都能使用的变量就是全局全局变量。变量。 (全局变量名应尽可能大写,并由(全局变量名应尽可能大写,并由globe声明声明)54Matlab永久变量永久变量55b) 数字变量数字变量 Matlab内部的每一个数据元素都是用内部的每一个数据元素都是用双精度数(双精度数(double)来表示和存储的。来表示和存储的。变量输出时用户可以用变量输出时用户可以用format命令设置或改变输出命令
25、设置或改变输出格式。格式。短格式短格式(Short):1.3333 0.0000短格式短格式e方式方式(Short e):1.3333e+00 1.2345e-06短格式短格式g方式方式(Short g):1.3333 0.0长格式长格式(Long):1.33333333333333 0.00000123450000长格式长格式e方式方式(Long e):1.33333333333333e+00 1.2345000000000e-06长格式长格式g方式方式(Long g):1.33333333333333 0.0000012345银行格式银行格式(Bank):1.33 0.00十六进制格式十六
26、进制格式(Hex):3ff555555555 3eb46231abfd71+格式格式(+):+有理数(有理数(Rational):1/3 2469/200000000056c) 字符串字符串 所有字符串都用单引号括起来。所有字符串都用单引号括起来。 s=matlab 字符中中的每个字符字符中中的每个字符(包括空格)都是字包括空格)都是字符串变量符串变量(矩阵或向量矩阵或向量)中的一个元素。中的一个元素。字符串中的字符以字符串中的字符以 ASCII 码形式储存并区码形式储存并区分大小分大小 ,用用函数函数abs可以看到字符的可以看到字符的ASCII码。码。在在Matlab中,中,字符串字符串和和
27、字符矩阵字符矩阵基本上是基本上是等价的。等价的。 s=matlab 等价于等价于 s=matlab 57字符串函数字符串函数5859 双精度数值变量IEEE标准,64位 (8字节),11指数位,53数值位和一个符号位double() 函数的转换 其他数据类型uint8,常用于图像表示和处理,8位int8(), int16(), int32(),uint16(), uint32()308308107 . 1107 . 1至602赋值语句赋值语句 (1) 变量变量=表达式表达式 (2) 表达式表达式其中表达式是用运算符将有关运算量连接其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵
28、。起来的式子,其结果是一个矩阵。61例例2-1 计算表达式的值,并显示计算结果。计算表达式的值,并显示计算结果。在在MATLAB命令窗口输入命令:命令窗口输入命令: x=1+2i;y=3-sqrt(17);z=(cos(abs(x+y)-sin(78*pi/180)/(x+abs(y) 其中其中pi和和i都是都是MATLAB预先定义的变量,分预先定义的变量,分别代表代表别代表代表圆周率圆周率和和虚数单位虚数单位。输出结果是:输出结果是:z = -0.3488 + 0.3286i622.1.3 内存变量的管理内存变量的管理1内存变量的删除与修改内存变量的删除与修改MATLAB工作空间窗口专门用于
29、内存变量工作空间窗口专门用于内存变量的管理。在工作空间窗口中可以显示所有的管理。在工作空间窗口中可以显示所有内存变量的属性。当选中某些变量后,再内存变量的属性。当选中某些变量后,再单击单击Delete按钮按钮,就能删除这些变量。当选,就能删除这些变量。当选中某些变量后,再单击中某些变量后,再单击Open按钮按钮,将进入,将进入变量编辑器。通过变量编辑器可以直接观变量编辑器。通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的察变量中的具体元素,也可修改变量中的具体元素。具体元素。63clear命令命令 用于删除用于删除MATLAB工作空间中的变量。工作空间中的变量。who和和whos这
30、两个命令用于显示在这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清工作空间中已经驻留的变量名清单。单。who命令只显示出驻留变量的名称,命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。大小、所占字节数及数据类型等信息。642内存变量文件内存变量文件 利用利用MAT文件可以把当前文件可以把当前MATLAB工作空工作空间中的一些有用变量长久地保留下来,扩间中的一些有用变量长久地保留下来,扩展名是展名是.mat。MAT文件的生成和装入由文件的生成和装入由save和和load命令来完成。常用格式为:命令来
31、完成。常用格式为:save 文件名文件名 变量名表变量名表 -append-asciiload 文件名文件名 变量名表变量名表 -ascii652.1.4 MATLAB常用数学函数常用数学函数 MATLAB提供了许多数学函数,函数的自变提供了许多数学函数,函数的自变量规定为量规定为矩阵变量矩阵变量,运算法则是将函数逐项,运算法则是将函数逐项作用于矩阵的元素上,因而运算的结果是一作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。个与自变量同维数的矩阵。函数使用说明:函数使用说明:(1) 三角函数三角函数以以弧度弧度为单位计算。为单位计算。(2) abs函数函数可以求实数的绝对值、复数
32、的模可以求实数的绝对值、复数的模、字符串的、字符串的ASCII码值。码值。(3) 用于用于取整取整的函数有的函数有fix、floor、ceil、round,要注意它们的区别。要注意它们的区别。662.1.5 数据的输出格式数据的输出格式 MATLAB用十进制数表示一个常数,具体用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表示可采用日常记数法和科学记数法两种表示方法。方法。 在一般情况下,在一般情况下,MATLAB内部每一个数内部每一个数据元素都是用据元素都是用双精度数双精度数来表示和存储的。来表示和存储的。数据输出时用户可以用数据输出时用户可以用format命令设置或命令设置或
33、改变数据输出格式。改变数据输出格式。format命令的格式为命令的格式为: format 格式符格式符其中格式符决定数据的输出格式其中格式符决定数据的输出格式67矩阵和数组运算矩阵和数组运算 要求内容:要求内容:( 1)熟练掌握)熟练掌握矩阵的创建矩阵的创建。 ( 2)掌握)掌握矩阵运算矩阵运算和和数组运算数组运算。 ( 3)学会如何使用)学会如何使用矩阵运算函数矩阵运算函数和和数组运算函数数组运算函数。 ( 4)注意区分矩阵和数组的差别,特别是运算符的差别)注意区分矩阵和数组的差别,特别是运算符的差别。 ( 6)了解)了解多项式多项式的创建方法和基本运算。的创建方法和基本运算。MATLAB矩
34、阵及其计算矩阵及其计算68MATLAB 以以矩阵矩阵为基本的运算单元,为基本的运算单元,向量向量和标量和标量作为特殊的矩阵处理:作为特殊的矩阵处理:向量向量看作只有看作只有一行或一列的矩阵;一行或一列的矩阵;标量标量看作只有一个元素看作只有一个元素的矩阵。的矩阵。1、 矩阵的构造矩阵的构造a.直接输入直接输入b.利用利用内部函数内部函数产生矩阵产生矩阵c.利用利用M文件文件产生矩阵产生矩阵d.从从外部数据文件外部数据文件调入矩阵调入矩阵69A=1,2,3;4,5,6;a. 直接输入直接输入直接输入需遵循以下直接输入需遵循以下基本规则基本规则:整个矩阵应以整个矩阵应以“ ”为首尾,即整个输入矩阵
35、必须为首尾,即整个输入矩阵必须包含在方括号中;包含在方括号中; 矩阵中,行与行之间必须用分号矩阵中,行与行之间必须用分号“ ;”或或 Enter 键键( 按按 Enter 键)符分隔;键)符分隔; 每行中的元素用逗号每行中的元素用逗号“ ,”或或空格空格分隔;分隔; 矩阵中的元素可以是矩阵中的元素可以是数字或表达式数字或表达式,但表达式中不,但表达式中不可包含未知的变量,可包含未知的变量,MATLAB用表达式的值为该位用表达式的值为该位置的矩阵元素赋值。当矩阵中没有任何元素时,该置的矩阵元素赋值。当矩阵中没有任何元素时,该矩阵被称作矩阵被称作“ 空阵空阵”( Empty Matrix)。)。7
36、0 A=1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16 A = 1 2 3 4 5 6 7 8 9 10 11 1213 14 15 16利用表达式输入利用表达式输入 B=1,sqrt(25),9,132,6,10,7*23+sin(pi),7,11,154,abs(-8),12,16B = 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 1671由向量构成矩阵由向量构成矩阵向量是组成向量是组成矩阵的基本元素矩阵的基本元素之一。向量元素需要之一。向量元素需要用方括号括起来。元素之间用用方括号括起来。元素之间用空格空格和和逗号逗号分隔生分隔生
37、成成行向量行向量,用,用分号分号隔开生成隔开生成列向量列向量。可以把。可以把行向行向量量看成看成1 n 阶矩阵,阶矩阵,把把列向量列向量看成看成n 1 阶矩阵。阶矩阵。向量的构造方法:向量的构造方法: 直接输入向量直接输入向量 利用冒号生成向量利用冒号生成向量 利用利用 linspace/logspace 生成向量生成向量 a=1,2,3,4; x=0:0.5:2;% x=logspace(a,b,n) 生成有生成有 n 个元素的行向量个元素的行向量 x,其元素其元素起点起点 x(1)=10a,终点终点 x(n)=10b。 b=logspace(0,2,4)b = 1.0000 4.6416
38、21.5443 100.000072 x x = 0 0.5000 1.0000 1.5000 2.0000% x=linspace(a,b,n) 生成有生成有 n 个元素的行向个元素的行向量量 x,其元素值在其元素值在 a、b 之间线性分布。之间线性分布。 y=linspace(0,2,7) y = 0 0.3333 0.6667 1.0000 1.3333 1.6667 2.0000 z=-1 x 3z = -1.0000 0 0.5000 1.0000 1.5000 2.0000 3.0000 u=y;zu = 0 0.3333 0.6667 1.0000 1.3333 1.6667 2
39、.0000 -1.0000 0 0.5000 1.0000 1.5000 2.0000 3.000073b.利用内部函数产生矩阵利用内部函数产生矩阵%compan生成生成x向量的伴随矩阵向量的伴随矩阵 x=2,4,6,8,10 x = 2 4 6 8 10 compan(x)ans = -2 -3 -4 -5 -6 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0% eye 生成单位阵生成单位阵 S=eye(6) S = 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1%
40、 ones 生成全部元素为生成全部元素为 1 的矩阵的矩阵 ones(3,4) ans = 1 1 1 1 1 1 1 1 1 1 1 1 F=5*ones(3)F = 5 5 5 5 5 5 5 5 5% zeros 生成全部元素为生成全部元素为0的矩阵的矩阵 Z=zeros(2,4)Z = 0 0 0 0 0 0 0 0% rand 生成均匀分布的随机矩阵生成均匀分布的随机矩阵 R=rand(4) R = 0.9501 0.8913 0.8214 0.9218 0.2311 0.7621 0.4447 0.7382 0.6068 0.4565 0.6154 0.1763 0.4860 0.
41、0185 0.7919 0.4057%生成空阵生成空阵 K= K = 74c.利用利用M文件产生矩阵文件产生矩阵A=1,2,3,4,5 6,7,8,9,10 11,12,13,14,15 16,17,18,19,2021,22,23,24,2575d.从外部数据文件调入矩阵 用load命令输入 用Import 菜单输入76矩阵元素的修改矩阵元素的修改 A=1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16 A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A(1,1)ans = 1 A(2,3)ans = 7 A(1,1)=0;A(
42、2,2)=A(1,2)+A(2,1);A(4,4)=cos(0); AA = 0 2 3 4 5 7 7 8 9 10 11 12 13 14 15 1772.2.2 矩阵的拆分矩阵的拆分1矩阵元素矩阵元素 通过下标引用矩阵的元素,例如通过下标引用矩阵的元素,例如A(3,2)=200采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。在相应元素在内存中的排列顺序。在MATLAB中,矩阵元素中,矩阵元素按按列存储列存储,先第一列,再第二列,依次类推先第一列,再第二列,依次类推。例如。例如A=1,2,3;4,5,6;A
43、(3)ans = 2显然,序号显然,序号(Index)与下标与下标(Subscript )是一一对应的,以是一一对应的,以mn矩阵矩阵A为例,矩阵元素为例,矩阵元素A(i,j)的序号为的序号为(j-1)*m+i。其相互转换其相互转换关系也可利用关系也可利用sub2ind和和ind2sub函数求得。函数求得。782矩阵拆分矩阵拆分 (1) 利用利用冒号冒号表达式获得子矩阵表达式获得子矩阵 A(:,j)表示取表示取A矩阵的矩阵的第第j列列全部全部元素元素;A(i,:)表示表示A矩阵矩阵第第i行的行的全部全部元素元素;A(i,j)表示取表示取A矩阵矩阵第第i行、第行、第j列的元素。列的元素。 A(i
44、:i+m,:)表示取表示取A矩阵第矩阵第ii+m行的全部元行的全部元素;素;A(:,k:k+m)表示取表示取A矩阵第矩阵第kk+m列的全部列的全部元素,元素,A(i:i+m,k:k+m)表示取表示取A矩阵第矩阵第ii+m行内行内,并在第,并在第kk+m列中的所有元素。列中的所有元素。7980 (2) 利用空矩阵删除矩阵的元素利用空矩阵删除矩阵的元素 在在MATLAB中,定义中,定义为空矩阵。给变量为空矩阵。给变量X赋空矩阵的语句为赋空矩阵的语句为X=。注意,注意,X=与与clear X不同,不同,clear是将是将X从工作空间中删除从工作空间中删除,而空矩阵则存在于工作空间中,只是维,而空矩阵
45、则存在于工作空间中,只是维数为数为0。812.2.3 特殊矩阵特殊矩阵1通用的特殊矩阵通用的特殊矩阵常用的产生通用特殊矩阵的函数有:常用的产生通用特殊矩阵的函数有:zeros:产生全产生全0矩阵矩阵(零矩阵零矩阵)。ones:产生全产生全1矩阵矩阵(幺矩阵幺矩阵)。eye:产生单位矩阵。产生单位矩阵。rand:产生产生01间均匀分布的随机矩阵。间均匀分布的随机矩阵。randn:产生均值为产生均值为0,方差为,方差为1的标准正态的标准正态分布随机矩阵。分布随机矩阵。82例例2-3 分别建立分别建立33、32和与矩阵和与矩阵A同样大小的同样大小的零矩阵。零矩阵。(1) 建立一个建立一个33零矩阵。
46、零矩阵。zeros(3) (2) 建立一个建立一个32零矩阵。零矩阵。zeros(3,2) (3) 设设A为为23矩阵,则可以用矩阵,则可以用zeros(size(A)建立建立一个与矩阵一个与矩阵A同样大小零矩阵。同样大小零矩阵。A=1 2 3;4 5 6; %产生一个产生一个23阶矩阵阶矩阵Azeros(size(A) %产生一个与矩阵产生一个与矩阵A同样大小的同样大小的零矩阵零矩阵83例例2-4 建立随机矩阵:建立随机矩阵: (1) 在区间在区间20,50内均匀分布的内均匀分布的5阶随机矩阵。阶随机矩阵。(2) 均值为均值为0.6、方差为、方差为0.1的的5阶正态分布随机矩阵阶正态分布随机
47、矩阵。命令如下:命令如下:x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5)此外,常用的函数还有此外,常用的函数还有reshape(A,m,n),它在矩它在矩阵总元素保持不变的前提下,将矩阵阵总元素保持不变的前提下,将矩阵A重新排成重新排成mn的二维矩阵。的二维矩阵。842用于专门学科的特殊矩阵用于专门学科的特殊矩阵 (1) 魔方矩阵魔方矩阵魔方矩阵有一个有趣的性质,其每行、每魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由阶魔方阵,其元素由1,2,3,n2共共n2个整数个整数
48、组成。组成。MATLAB提供了求魔方矩阵的函数提供了求魔方矩阵的函数magic(n),其功能是生成一个其功能是生成一个n阶魔方阵。阶魔方阵。85 (2) 范得蒙矩阵范得蒙矩阵范得蒙范得蒙(Vandermonde)矩阵最后一列全为矩阵最后一列全为1,倒数第二列为一个指定的向量,其他各,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积。可以列是其后列与倒数第二列的点乘积。可以用一个指定向量生成一个范得蒙矩阵。在用一个指定向量生成一个范得蒙矩阵。在MATLAB中,函数中,函数vander(V)生成以向量生成以向量V为基础向量的范得蒙矩阵。例如,为基础向量的范得蒙矩阵。例如,A=van
49、der(1;2;3;5)即可得到上述范得蒙矩即可得到上述范得蒙矩阵。阵。86 (3) 伴随矩阵伴随矩阵 MATLAB生成伴随矩阵的函数是生成伴随矩阵的函数是compan(p),其中其中p是一个多项式的系数向是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。量,高次幂系数排在前,低次幂排在后。例如,为了求多项式的例如,为了求多项式的x3-7x+6的伴随矩阵的伴随矩阵,可使用命令:,可使用命令:p=1,0,-7,6;compan(p)87 (4) 帕斯卡矩阵帕斯卡矩阵 (杨辉三角形杨辉三角形) 我们知道,二次项我们知道,二次项(x+y)n展开后的系数随展开后的系数随n的增大组成一个三角形表,
50、称为杨辉三角的增大组成一个三角形表,称为杨辉三角形。由杨辉三角形表组成的矩阵称为帕斯形。由杨辉三角形表组成的矩阵称为帕斯卡卡(Pascal)矩阵。函数矩阵。函数pascal(n)生成一个生成一个n阶阶帕斯卡矩阵。帕斯卡矩阵。88例例2-2 求求(x+y)5的展开式。的展开式。在在MATLAB命令窗口,输入命令:命令窗口,输入命令:pascal(6)矩阵次对角线上的元素矩阵次对角线上的元素1,5,10,10,5,1即为展即为展开式的系数。开式的系数。89 2.3 MATLAB运算运算 2.3.1算术运算算术运算1基本算术运算基本算术运算 MATLAB的基本算术运算有:的基本算术运算有:(加加)、
51、(减减)、*(乘乘)、/(右除右除)、(左除左除)、(乘方乘方)。注意,运算是在矩阵意义下进行的,单个注意,运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。数据的算术运算只是一种特例。90 (1) 矩阵加减运算矩阵加减运算 假定有两个矩阵假定有两个矩阵A和和B,则可以由则可以由A+B和和A-B实现实现矩阵的加减运算。运算规则是:若矩阵的加减运算。运算规则是:若A和和B矩阵的维矩阵的维数相同,则可以执行矩阵的加减运算,数相同,则可以执行矩阵的加减运算,A和和B矩阵矩阵的相应元素相加减。如果的相应元素相加减。如果A与与B的维数不相同,则的维数不相同,则MATLAB将给出错误信息,提示用户
52、两个矩阵的将给出错误信息,提示用户两个矩阵的维数不匹配。维数不匹配。 (2) 矩阵乘法矩阵乘法 假定有两个矩阵假定有两个矩阵A和和B,若若A为为mn矩阵,矩阵,B为为np矩阵,则矩阵,则C=A*B为为mp矩阵。矩阵。91a. 矩阵的加减运算矩阵的加减运算 A=1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16 B=1,sqrt(25),9,132,6,10 7*23+sin(pi),7,11,154,abs(-8),12,16 C=A+B C = 2 7 12 17 7 12 17 22 12 17 22 27 17 22 27 32 D=A-BD = 0 -3 -6
53、 -9 3 0 -3 -6 6 3 0 -3 9 6 3 0 E=A+3 E = 4 5 6 7 8 9 10 11 12 13 14 1516 17 18 1992 (3) 矩阵除法矩阵除法 在在MATLAB中,有两种矩阵除法运算:中,有两种矩阵除法运算:和和/,分,分别表示左除和右除。如果别表示左除和右除。如果A矩阵是非奇异方阵,矩阵是非奇异方阵,则则AB和和B/A运算可以实现。运算可以实现。AB等效于等效于A的逆左的逆左乘乘B矩阵,也就是矩阵,也就是inv(A)*B,而而B/A等效于等效于A矩阵矩阵的逆右乘的逆右乘B矩阵,也就是矩阵,也就是B*inv(A)。对于含有标量的运算,两种除法运
54、算的结果相同对于含有标量的运算,两种除法运算的结果相同,如,如3/4和和43有相同的值,都等于有相同的值,都等于0.75。又如,设。又如,设a=10.5,25,则则a/5=5a=2.1000 5.0000。对于矩对于矩阵来说,左除和右除表示两种不同的除数矩阵和阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般被除数矩阵的关系。对于矩阵运算,一般ABB/A。93b. 矩阵乘法矩阵乘法 C=A*BC = 30 70 110 150 70 174 278 382 110 278 446 614 150 382 614 846 D=A*3D = 3 6 9 12 15 18
55、 21 24 27 30 33 36 39 42 45 48c. 矩阵除法矩阵除法左除左除 AB=inv(A)*B A=8,1,6;3,5,7;4,9,2A = 8 1 6 3 5 7 4 9 2 B=1,1,1;1,2,3;1,3,6 B = 1 1 1 1 2 3 1 3 6 ABans = 0.0667 0.0500 0.0972 0.0667 0.3000 0.6389 0.0667 0.0500 -0.0694 C=inv(A)C = 0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028 C*B ans
56、= 0.0667 0.0500 0.0972 0.0667 0.3000 0.6389 0.0667 0.0500 -0.0694右 除右 除 A / B =A*inv(B) A/Bans = 27 -31 12 1 2 0 -13 29 -12 D=inv(B) D = 3 -3 1 -3 5 -2 1 -2 1 A*Dans = 27 -31 12 1 2 0 -13 29 -1294当对矩阵作当对矩阵作除法运算除法运算时,有可能因为误差设置的差别导致不精确的结时,有可能因为误差设置的差别导致不精确的结果,此时,果,此时,MATLAB 会自动给出警告信息会自动给出警告信息:MATLAB 采
57、用采用 IEEE( 国际认可的)算法,即使国际认可的)算法,即使 A 为奇异阵为奇异阵( 即即 A 的行列式值是的行列式值是0),运算也照样进行,但是此时),运算也照样进行,但是此时 MATLAB 将给出警告将给出警告信息:信息:“ Warning: Matrix is singular to working precision.”,求出的矩求出的矩阵所有元素为无穷大(阵所有元素为无穷大( Inf);); 当矩阵当矩阵 A 为为病态阵病态阵( Badly Scaled)时,时,MATLAB 使用的算法产生的使用的算法产生的误差可能很大,误差可能很大,MATLAB 系统也将给出警告信息:系统也将
58、给出警告信息:“ Warning: Matrix is badly scaled to working precision. Results may be inaccurate.”。 E=1,2,3;4,5,6;7,8,9E = 1 2 3 4 5 6 7 8 9 F=1,4,7;2,5,8;3,6,9F = 1 4 7 2 5 8 3 6 9 EFWarning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 1.541976e-018.ans = -0.3333 -7.3333
59、 -14.3333 0.6667 11.6667 22.6667 0 -4.0000 -8.0000 9596979899100101102103104105106107108109110111112113114115116117例例2-12 用求特征值的方法解方程。用求特征值的方法解方程。3x5-7x4+5x2+2x-18=0p=3,-7,0,5,2,-18;A=compan(p); %A的伴随矩阵的伴随矩阵x1=eig(A) %求求A的特征值的特征值x2=roots(p) %直接求多项式直接求多项式p的零点的零点118119120b.b.常用的矩阵运算函数常用的矩阵运算函数 只有方阵才可计
60、算行只有方阵才可计算行列式值,即列式值,即 det(A)的的计算只有在计算只有在 A 为方阵为方阵时才有意义。时才有意义。logm(A)和和 sqrtm(A)计算矩阵的对数计算矩阵的对数/平方平方根是指对根是指对整个矩阵整个矩阵 A 求对数求对数/平方根平方根。 矩阵常用函数总结矩阵常用函数总结121c.c.矩阵的分解函数矩阵的分解函数 122 X=3,-1,2;1,2,-1;-2,1,4 %输入矩阵 X X = 3 -1 2 1 2 -1-2 1 4 L,U=lu(X) %对矩阵 X 进行 LU 分解 L = 1.0000 0 0 0.3333 1.0000 0 -0.6667 0.1429
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机场安全整治专项培训班课件
- 证券合规岗职业发展路径
- 职高就业前景好专业
- 医患关系伦理意义
- 护理:跨学科合作与团队精神培养
- 护理课件资源分享-1
- 团建活动策划话术
- 品牌特卖销售话术
- 心脏健康:女性与男性的差异
- AI相关专业指南
- 深圳机场突发事件应急预案
- 水电站建筑物课程设计
- 个人借款合同个人借款协议
- 生物科技股份有限公司GMP质量手册(完整版)资料
- 儿童行为量表(CBCL)(可打印)
- 地貌学与第四纪地质学总结
- 2023年德语专业四级考试真题
- GB/T 36713-2018能源管理体系能源基准和能源绩效参数
- 温度仪表基础知识课件
- OnyxWorks使用注意说明
- DB53∕T 1034-2021 公路隧道隐蔽工程无损检测技术规程
评论
0/150
提交评论