matlab课件——第二章 Matlab及其基本运算

上传人:鲁** 文档编号:567647656 上传时间:2024-07-21 格式:PPT 页数:209 大小:5MB
返回 下载 相关 举报
matlab课件——第二章 Matlab及其基本运算_第1页
第1页 / 共209页
matlab课件——第二章 Matlab及其基本运算_第2页
第2页 / 共209页
matlab课件——第二章 Matlab及其基本运算_第3页
第3页 / 共209页
matlab课件——第二章 Matlab及其基本运算_第4页
第4页 / 共209页
matlab课件——第二章 Matlab及其基本运算_第5页
第5页 / 共209页
点击查看更多>>
资源描述

《matlab课件——第二章 Matlab及其基本运算》由会员分享,可在线阅读,更多相关《matlab课件——第二章 Matlab及其基本运算(209页珍藏版)》请在金锄头文库上搜索。

1、常用数学软件选讲常用数学软件选讲第二章第二章 Matlab及其基本运算及其基本运算Matlab简介简介数学类型数学类型数值计算数值计算符号计算符号计算绘图绘图文件系统文件系统 MATLAB-巨人肩上的工具 2 Matlab 是是一一个个可可视视化化的的计计算算程程序序,被被广广泛泛地地应应用用在在科科学学运运算算领领域域里里。它它具具有有功功能能强强大大、使使用用简简单单等等特特点点,内内容容包包括括:数数值值计计算算、符符号号计计算算、数数据据拟拟合合、图图形形图图像像处处理理、系系统统模模拟拟和和仿仿真真分分析析等等功功能能。此此外外,用用Matlab还可以进行动画设计、有限元分析等。还可

2、以进行动画设计、有限元分析等。本本章章节节的的目目的的是是使使同同学学们们能能够够运运用用Matlab进进行行一一般般的的工工程程计计算算,掌掌握握Matlab的的基基本本技技术术(基基本本计计算算、矩矩阵阵处处理理、符符号号运运算算和和图图形形显显示示技技术术等等),为为将将来来从从事事工工程程技技术术方方面面的的产产品品开开发发、科科学学研研究究、工工程程计计算算和和管理打下一定的基础。管理打下一定的基础。章节的目的和任务章节的目的和任务34MATLAB的出现 70年代中期,年代中期,Cleve Moler和他的同事开发了和他的同事开发了LINPACK和和EISPACK的的Fortran子

3、程序库子程序库 70年代末期,年代末期,Cleve Moler 在新墨西哥大学给学生在新墨西哥大学给学生开线性代数,为学生编写了接口程序,这程序取名开线性代数,为学生编写了接口程序,这程序取名为为MATLAB,即即MATrix LABoratory1983年春天,工程师年春天,工程师John Little与与Moler、Steve Bangert一起开发了第二代专业版一起开发了第二代专业版MATLAB1984年,年,MathWorks公司成立,公司成立,MATLAB正是推正是推向市场。向市场。51 MATLAB的发展的发展 1984年,年,MATLAB第第1版版(DOS版版)1992年,年,M

4、ATLAB4.0版版simlink内嵌内嵌1994年,年,MATLAB4.2版版1997年,年,MATLAB5.0版版全面的面向对象全面的面向对象1999年,年,MATLAB5.3版版Release11 2000年,年,MATLAB6.0版版Release122001年,年,MATLAB6.1版版2002年,年,MATLAB6.5版版购并了购并了MATRIXx2004年,年,MATLAB7.0版版672 MATLAB的主要功能的主要功能1数值计算和符号计算功能数值计算和符号计算功能MATLAB以以矩阵矩阵作为数据操作的基本作为数据操作的基本单位,还提供了十分丰富的数值计算单位,还提供了十分丰富

5、的数值计算函数。函数。MATLAB和著名的符号计算语言和著名的符号计算语言Maple相结合,使得相结合,使得MATLAB具有符具有符号计算功能。号计算功能。82绘图功能绘图功能MATLAB提供了提供了两个层次两个层次的绘图操作:一的绘图操作:一种是对图形句柄进行的低层绘图操作,另种是对图形句柄进行的低层绘图操作,另一种是建立在低层绘图操作之上的高层绘一种是建立在低层绘图操作之上的高层绘图操作。图操作。3编程语言编程语言MATLAB具有程序结构控制、函数调用、具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。言特

6、征,而且简单易学、编程效率高。94MATLAB工具箱工具箱MATLAB包含两部分内容:基本部分和各种包含两部分内容:基本部分和各种可选的工具箱。可选的工具箱。MATLAB工具箱分为两大类:功能性工具箱工具箱分为两大类:功能性工具箱和学科性工具箱。和学科性工具箱。10MATLAB特点基于矩阵运算的工作平台基于矩阵运算的工作平台,支持支持多种操作系统多种操作系统:windows/unix/dos/Macintosh可扩充性可扩充性:MATLAB的函数大多为的函数大多为ASCII文件,可文件,可以直接编辑、修改以直接编辑、修改高度适应性高度适应性、开放性:、开放性:MATLAB的工具箱可以任意的工具

7、箱可以任意增减,任何人可以自己生成增减,任何人可以自己生成MATLAB工具箱工具箱各行业的高手(真正的大家各行业的高手(真正的大家)提供了许多工具箱。提供了许多工具箱。11Matlab能做什么基本的数据处理基本的数据处理数据来源:数据来源:Excel、数据库、数据库、A/D等等等等优化和解方程优化和解方程动态过程仿真:实时的和非实时的动态过程仿真:实时的和非实时的嵌入式的控制:嵌入式的控制:Pc/104和和DSP神经元网络、小波分析、神经元网络、小波分析、GA等等等等虚拟现实仿真虚拟现实仿真12为什么选择为什么选择Matlab不希望同学们在编程上化太多时间,课程不希望同学们在编程上化太多时间,

8、课程目的不是学习编程目的不是学习编程社会化的运行带来的好处:合理利用可以社会化的运行带来的好处:合理利用可以节约大量的时间节约大量的时间为什么相同的时间别人比自己做出了更多为什么相同的时间别人比自己做出了更多的事情:硕士论文调查结果的事情:硕士论文调查结果面向对象的思想带来巨大的好处面向对象的思想带来巨大的好处紧密结合科学的前沿紧密结合科学的前沿From BBS:From BBS:博士论文博士论文= = MatlabMatlab + Word + Word 13Matlab产品家族Matlab扩展支持在扩展支持在matlab中队系统的实中队系统的实施和开发。施和开发。工具箱:专用的函数工具箱:

9、专用的函数库,解决特定领域的库,解决特定领域的问题。问题。Simulink非线性系统非线性系统仿真仿真Blockset是专门为是专门为simulink建立的模块。建立的模块。14Matlab是所有系统工具的基础是所有系统工具的基础15设计自动化工具设计自动化工具16一般用途工具一般用途工具17信号和图像处理信号和图像处理18控制系统设计和分析控制系统设计和分析191.USENET新闻组新闻组MATLAB的的新新闻闻组组是是comp.softsys.MATLAB。浏浏览览器器指向指向http:/http:/2.网络上的工具箱网络上的工具箱http:/ MathWorks公司官方网站公司官方网站产

10、品与全套工具箱手册下载产品与全套工具箱手册下载http:/第三方工具箱下载第三方工具箱下载 http:/产品在中国独家代理产品在中国独家代理 (北京九州恒润公司北京九州恒润公司)http:/21MATLAB大观园大观园http:/www.matlab- MATLAB与应用论坛与应用论坛http:/博士家园论坛网站博士家园论坛网站http:/一些高校的一些高校的bbs清华大学、哈工大、上海交大、西安交大等清华大学、哈工大、上海交大、西安交大等223 初识初识MATLAB例例11绘制正弦曲线和余弦曲线。绘制正弦曲线和余弦曲线。x=0:0.5:360*pi/180;plot(x,sin(x),x,c

11、os(x);例例12求方程求方程3x4+7x3+9x223=0的全部根。的全部根。p=3,7,9,0,23;%建立多项式系数向量建立多项式系数向量x=roots(p)%求根求根232425例例13求积分求积分quad(x.*log(1+x),0,1)例例14求解线性方程组。求解线性方程组。a=2,3,1;8,3,2;45,1,9;b=4;2;17;x=inv(a)*b2627Mathematica的计算结果(比较)的计算结果(比较)28Mathematica的计算结果的计算结果229Mathematica的计算结果的计算结果3、4304 MATLAB的运行环境与安装的运行环境与安装4.1 MA

12、TLAB的运行环境的运行环境硬件环境:硬件环境:(1)CPU(2)内存内存(3)硬盘硬盘(4)CDROM驱动器和鼠标。驱动器和鼠标。软件环境:软件环境:(1)Windows98/NT/2000或或WindowsXP(2)其他软件根据需要选用其他软件根据需要选用312.2 MATLAB的安装的安装安装安装MATLAB6.5系统,需运行系统自带的系统,需运行系统自带的安装程序安装程序setup.exe,可以按照安装提示依次可以按照安装提示依次操作。操作。323MATLAB集成环境集成环境3.1 启动与退出启动与退出MATLAB集成环境集成环境1MATLAB系统的启动系统的启动与一般的与一般的Win

13、dows程序一样,启动程序一样,启动MATLAB系统有系统有3种常见方法:种常见方法:(1)使用使用Windows“开始开始”菜单。菜单。(2)运行运行MATLAB系统启动程序系统启动程序matlab.exe。(3)利用利用快捷方式快捷方式。33启动启动MATLAB后,将进入后,将进入MATLAB6.5集成环境。集成环境。MATLAB6.5集成环境包括集成环境包括MATLAB主窗口、命令窗口主窗口、命令窗口(CommandWindow)、工作空间窗口工作空间窗口(Workspace)、命令历命令历史窗口史窗口(CommandHistory)、当前目录窗口当前目录窗口(CurrentDirect

14、ory)和启动平台窗口和启动平台窗口(LaunchPad)。34当当MATLAB安装完安装完毕并首次启动时,毕并首次启动时,展现在屏幕上的界展现在屏幕上的界面为面为MATLAB的默的默认界面,如右图所认界面,如右图所示。示。35Matlab工作环境界面工作环境界面包含一行标题栏、一行包含一行标题栏、一行菜单栏、一行工具栏、菜单栏、一行工具栏、五个工作窗口和一行注五个工作窗口和一行注释栏。释栏。五个工作窗口分别为五个工作窗口分别为: :发射台(发射台( LaunchPadLaunchPad)、)、工作区(工作区( WorkspaceWorkspace)、)、命令历史(命令历史( CommandC

15、ommandHistoryHistory)、)、当前路径(当前路径( CurrentDirectoryCurrentDirectory)和命和命令窗口(令窗口( CommandCommandWindowsWindows)。)。历史命令历史命令发射台发射台命令命令窗口窗口标题栏标题栏菜单栏菜单栏常用工具栏常用工具栏工作区工作区当前路径当前路径36Matlab工作环境界面工作环境界面2、MATLAB工具栏用用 MATLABMATLAB的的 MM文件编辑器新建一个文件编辑器新建一个 MM文件;文件; 用用 MATLABMATLAB编辑器打开一个文件;编辑器打开一个文件; 将选中的内容剪切到剪贴板;将

16、选中的内容剪切到剪贴板; 将选中的内容复制到剪贴板;将选中的内容复制到剪贴板; 将剪贴板中的内容粘贴到光标指定的位置;将剪贴板中的内容粘贴到光标指定的位置; 撤消最近一次的操作;撤消最近一次的操作; 打开打开 SimulinkSimulink 浏览器;浏览器; 打开打开 MATLABMATLAB帮助窗口帮助窗口。当前工作路径当前工作路径372MATLAB系统的退出系统的退出要退出要退出MATLAB系统,也有系统,也有3种常见方法:种常见方法:(1)在在MATLAB主窗口主窗口File菜单中选择菜单中选择ExitMATLAB命令。命令。(2)在在MATLAB命令窗口输入命令窗口输入Exit或或Q

17、uit命命令。令。(3)单击单击MATLAB主窗口的主窗口的“关闭关闭”按钮。按钮。383.2 主窗口主窗口MATLAB主窗口是主窗口是MATLAB的主要工作界的主要工作界面。主窗口除了嵌入一些子窗口外,还主面。主窗口除了嵌入一些子窗口外,还主要包括菜单栏和工具栏。要包括菜单栏和工具栏。1菜单栏菜单栏在在MATLAB6.5主窗口的菜单栏,共包含主窗口的菜单栏,共包含File、Edit、View、Web、Window和和Help6个菜单项。个菜单项。39(1)File菜单项:菜单项:File菜单项实现有关文件的菜单项实现有关文件的操作。操作。(2)Edit菜单项:菜单项:Edit菜单项用于命令窗

18、口菜单项用于命令窗口的编辑操作。的编辑操作。(3)View菜单项:菜单项:View菜单项用于设置菜单项用于设置MATLAB集成环境的显示方式。集成环境的显示方式。(其他菜单和窗口的介绍略去)(其他菜单和窗口的介绍略去)40(其他菜单和窗口的介绍略去)(其他菜单和窗口的介绍略去)MATLAB 通用命令414MATLAB帮助系统帮助系统2 2、MatlabMatlab的网上资源的网上资源 webweb菜单栏菜单栏424MATLAB帮助系统帮助系统4.1 帮助窗口帮助窗口进入帮助窗口可以通过以下进入帮助窗口可以通过以下3种方法:种方法:(1)单击单击MATLAB主窗口工具栏中的主窗口工具栏中的Hel

19、p按钮。按钮。(2)在命令窗口中输入在命令窗口中输入helpwin、helpdesk或或doc。(3)选择选择Help菜单中的菜单中的“MATLABHelp”选项。选项。4344454.2 帮助命令帮助命令Matlab常用的窗口帮助命令常用的窗口帮助命令464.2 帮助命令帮助命令MATLAB帮助命令包括帮助命令包括help、lookfor以及以及模糊查询。模糊查询。1help命令命令在在MATLAB6命令窗口中直接输入命令窗口中直接输入help命令命令将会显示当前帮助系统中所包含的所有项将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。同样,目,即搜索路径中所有的目录名称。

20、同样,可以通过可以通过help加函数名来显示该函数的帮助加函数名来显示该函数的帮助说明。说明。472lookfor命令命令help命令只搜索出那些关键字完全匹配的命令只搜索出那些关键字完全匹配的结果,结果,lookfor命令对搜索范围内的命令对搜索范围内的M文件文件进行关键字搜索,条件比较宽松。进行关键字搜索,条件比较宽松。lookfor命令只对命令只对M文件的第一行进行关键文件的第一行进行关键字搜索。若在字搜索。若在lookfor命令加上命令加上all选项,则选项,则可对可对M文件进行全文搜索。文件进行全文搜索。483模糊查询模糊查询MATLAB6.0以上的版本提供了一种类似模以上的版本提供

21、了一种类似模糊查询的命令查询方法,用户只需要输入糊查询的命令查询方法,用户只需要输入命令的前几个字母,然后按命令的前几个字母,然后按Tab键,系统就键,系统就会列出所有以这几个字母开头的命令会列出所有以这几个字母开头的命令。49怎样获得详尽的帮助信息(总结)1.1.首先是首先是MATLABMATLAB窗口中的窗口中的helphelp命令,它最常用、最快,往往也命令,它最常用、最快,往往也是最有效的。给出关键字就能找到相应的说明。是最有效的。给出关键字就能找到相应的说明。HelpHelp命令简命令简单易用,但是它要求准确给出关键字,如果记忆不准,就很单易用,但是它要求准确给出关键字,如果记忆不准

22、,就很难找到。这时就应该用第二种方案。难找到。这时就应该用第二种方案。2.2.Help DeskHelp Desk:这是:这是MATLABMATLAB的的HTMLHTML格式的帮助文档,有着很好格式的帮助文档,有着很好的组织。可以在命令行键入的组织。可以在命令行键入helpdeskhelpdesk,进入,进入“MatlabMatlab Help Help DeskDesk”。Help DeskHelp Desk的搜索可以使用不完全关键字,这样即的搜索可以使用不完全关键字,这样即使遇到记忆模糊的情况也可以很快查到。使遇到记忆模糊的情况也可以很快查到。3.3.前面两种方法所得到的帮助信息常常是不够

23、细致的,需要用前面两种方法所得到的帮助信息常常是不够细致的,需要用第三种途径来补充,这就是电子版的使用手册。第三种途径来补充,这就是电子版的使用手册。MATLABMATLAB里包里包含了大量关于含了大量关于MATLABMATLAB安装、使用、编程以及各种工具箱等的安装、使用、编程以及各种工具箱等的电子版手册,全部为电子版手册,全部为PDFPDF格式格式, ,具有搜索功能,因此也可以在具有搜索功能,因此也可以在指定的手册中搜索关键字,使用非常方便。指定的手册中搜索关键字,使用非常方便。504.3 演示系统演示系统在帮助窗口中选择演示系统在帮助窗口中选择演示系统(Demos)选项卡,然后在其选项卡

24、,然后在其中选择相应的演示模块,或者在命令窗口输入中选择相应的演示模块,或者在命令窗口输入Demos,或或者选择主窗口者选择主窗口Help菜单中的菜单中的Demos子菜单,打开演示系统。子菜单,打开演示系统。基本矩阵演示窗口基本矩阵演示窗口MATLAB演示窗口演示窗口514.4 远程帮助系统远程帮助系统在在MathWorks公司的主页公司的主页(http:/)上可上可以找到很多有用的信息,国内的一些网站也有丰富的信息资以找到很多有用的信息,国内的一些网站也有丰富的信息资源。源。52MATLAB变量及数据操作变量及数据操作a)变量和常量变量和常量变量变量(包括函数包括函数)的的命名规则命名规则:

25、由英文字母、数字和下:由英文字母、数字和下划线混合组成,不得包含空格和标点划线混合组成,不得包含空格和标点;第一个字符必;第一个字符必须是英文字母,最多包括须是英文字母,最多包括31个字符个字符;对字母的大小写对字母的大小写敏感敏感。局部变量和全局变量局部变量和全局变量永久变量(常量)永久变量(常量)只能在某一函数体内使用,而不能从其他函数和只能在某一函数体内使用,而不能从其他函数和Matlab工作空间访问的变量,就是工作空间访问的变量,就是局部变量局部变量。在几个函数及在几个函数及Matlab函数中都能使用的变量就是函数中都能使用的变量就是全局全局变量。变量。(全局变量名应尽可能大写,并由(

26、全局变量名应尽可能大写,并由globe声明)声明)53Matlab永久变量永久变量54b)数字变量数字变量Matlab内部的每一个数据元素都是用内部的每一个数据元素都是用双精度数双精度数(double)来表示和存储的。来表示和存储的。变量输出时用户可以用变量输出时用户可以用format命令设置或改变输出命令设置或改变输出格式。格式。短格式短格式(Short):1.33330.0000短格式短格式e方式方式(Shorte):1.3333e+001.2345e06短格式短格式g方式方式(Shortg):1.33330.0长格式长格式(Long):1.333333333333330.00000123

27、450000长格式长格式e方式方式(Longe):1.33333333333333e+001.2345000000000e06长格式长格式g方式方式(Longg):1.333333333333330.0000012345银行格式银行格式(Bank):1.330.00十六进制格式十六进制格式(Hex):3ff5555555553eb46231abfd71+格式格式(+):+有理数(有理数(Rational):1/32469/200000000055c)字符串字符串所有字符串都用单引号括起来。所有字符串都用单引号括起来。s=matlab字符中中的每个字符字符中中的每个字符(包括空格)都是字包括空格

28、)都是字符串变量符串变量(矩阵或向量矩阵或向量)中的一个元素。中的一个元素。字符串中的字符以字符串中的字符以ASCII码形式储存并区码形式储存并区分大小分大小,用用函数函数abs可以看到字符的可以看到字符的ASCII码。码。在在Matlab中,中,字符串字符串和和字符矩阵字符矩阵基本上是基本上是等价的。等价的。s=matlab等价于等价于s=matlab56字符串函数字符串函数5758双精度数值变量IEEE标准,64位 (8字节),11指数位,53数值位和一个符号位double() 函数的转换其他数据类型uint8,常用于图像表示和处理,8位int8(), int16(), int32(),u

29、int16(), uint32()592赋值语句赋值语句(1)变量变量=表达式表达式(2)表达式表达式其中表达式是用运算符将有关运算量连接其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。起来的式子,其结果是一个矩阵。60例例21计算表达式的值,并显示计算结果。计算表达式的值,并显示计算结果。在在MATLAB命令窗口输入命令:命令窗口输入命令:x=1+2i;y=3sqrt(17);z=(cos(abs(x+y)sin(78*pi/180)/(x+abs(y)其中其中pi和和i都是都是MATLAB预先定义的变量,分预先定义的变量,分别代表代表别代表代表圆周率圆周率和和虚数单位虚数

30、单位。输出结果是:输出结果是:z=0.3488+0.3286i612.1.3内存变量的管理内存变量的管理1内存变量的删除与修改内存变量的删除与修改MATLAB工作空间窗口专门用于内存变量工作空间窗口专门用于内存变量的管理。在工作空间窗口中可以显示所有的管理。在工作空间窗口中可以显示所有内存变量的属性。当选中某些变量后,再内存变量的属性。当选中某些变量后,再单击单击Delete按钮按钮,就能删除这些变量。当选,就能删除这些变量。当选中某些变量后,再单击中某些变量后,再单击Open按钮按钮,将进入,将进入变量编辑器。通过变量编辑器可以直接观变量编辑器。通过变量编辑器可以直接观察变量中的具体元素,也

31、可修改变量中的察变量中的具体元素,也可修改变量中的具体元素。具体元素。62clear命令命令用于删除用于删除MATLAB工作空间中的变量。工作空间中的变量。who和和whos这两个命令用于显示在这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清工作空间中已经驻留的变量名清单。单。who命令只显示出驻留变量的名称,命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。大小、所占字节数及数据类型等信息。632内存变量文件内存变量文件利用利用MAT文件可以把当前文件可以把当前MATLAB工作空工作空间中的一些有

32、用变量长久地保留下来,扩间中的一些有用变量长久地保留下来,扩展名是展名是.mat。MAT文件的生成和装入由文件的生成和装入由save和和load命令来完成。常用格式为:命令来完成。常用格式为:save文件名文件名变量名表变量名表appendasciiload文件名文件名变量名表变量名表ascii642.1.4MATLAB常用数学函数常用数学函数MATLAB提供了许多数学函数,函数的自变提供了许多数学函数,函数的自变量规定为量规定为矩阵变量矩阵变量,运算法则是将函数逐项,运算法则是将函数逐项作用于矩阵的元素上,因而运算的结果是一作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。个与自

33、变量同维数的矩阵。函数使用说明:函数使用说明:(1)三角函数三角函数以以弧度弧度为单位计算。为单位计算。(2)abs函数函数可以求实数的绝对值、复数的模、可以求实数的绝对值、复数的模、字符串的字符串的ASCII码值。码值。(3)用于用于取整取整的函数有的函数有fix、floor、ceil、round,要注意它们的区别。要注意它们的区别。652.1.5数据的输出格式数据的输出格式MATLAB用十进制数表示一个常数,具体用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表示可采用日常记数法和科学记数法两种表示方法。方法。在一般情况下,在一般情况下,MATLAB内部每一个数内部每一个数据元

34、素都是用据元素都是用双精度数双精度数来表示和存储的。来表示和存储的。数据输出时用户可以用数据输出时用户可以用format命令设置或改命令设置或改变数据输出格式。变数据输出格式。format命令的格式为:命令的格式为:format格式符格式符其中格式符决定数据的输出格式其中格式符决定数据的输出格式66矩阵和数组运算矩阵和数组运算要求内容:要求内容:(1)熟练掌握)熟练掌握矩阵的创建矩阵的创建。(2)掌握)掌握矩阵运算矩阵运算和和数组运算数组运算。(3)学会如何使用)学会如何使用矩阵运算函数矩阵运算函数和和数组运算函数数组运算函数。(4)注意区分矩阵和数组的差别,特别是运算符的差别。)注意区分矩阵

35、和数组的差别,特别是运算符的差别。(6)了解)了解多项式多项式的创建方法和基本运算。的创建方法和基本运算。MATLAB矩阵及其计算矩阵及其计算67MATLAB以以矩矩阵阵为为基基本本的的运运算算单单元元,向向量量和和标标量量作作为为特特殊殊的的矩矩阵阵处处理理:向向量量看看作作只只有有一一行行或或一一列列的的矩矩阵阵;标标量量看看作作只只有有一一个个元元素素的矩阵。的矩阵。1、矩阵的构造矩阵的构造a.直接输入直接输入b.利用利用内部函数内部函数产生矩阵产生矩阵c.利用利用M文件文件产生矩阵产生矩阵d.从从外部数据文件外部数据文件调入矩阵调入矩阵68A=1,2,3;4,5,6;a.直接输入直接输

36、入直接输入需遵循以下直接输入需遵循以下基本规则基本规则:整整个个矩矩阵阵应应以以“”为为首首尾尾,即即整整个个输输入入矩矩阵阵必必须须包含在方括号中;包含在方括号中;矩矩阵阵中中,行行与与行行之之间间必必须须用用分分号号“;”或或Enter键键(按按Enter键)符分隔;键)符分隔;每行中的元素用逗号每行中的元素用逗号“,”或或空格空格分隔;分隔;矩矩阵阵中中的的元元素素可可以以是是数数字字或或表表达达式式,但但表表达达式式中中不不可可包包含含未未知知的的变变量量,MATLAB用用表表达达式式的的值值为为该该位位置置的的矩矩阵阵元元素素赋赋值值。当当矩矩阵阵中中没没有有任任何何元元素素时时,该

37、该矩阵被称作矩阵被称作“空阵空阵”(EmptyMatrix)。)。69A=1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16A=12345678910111213141516利用表达式输入利用表达式输入B=1,sqrt(25),9,132,6,10,7*23+sin(pi),7,11,154,abs(-8),12,16B=1591326101437111548121670由向量构成矩阵由向量构成矩阵向量是组成向量是组成矩阵的基本元素矩阵的基本元素之一。向量元素需要之一。向量元素需要用方括号括起来。元素之间用用方括号括起来。元素之间用空格空格和和逗号逗号分隔生分隔生成成

38、行向量行向量,用,用分号分号隔开生成隔开生成列向量列向量。可以把。可以把行向行向量量看成看成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.00004.641621.5443100.000071xx=0

39、0.50001.00001.50002.0000%x=linspace(a,b,n)生成有生成有n个元素的行向量个元素的行向量x,其元素值在其元素值在a、b之间线性分布。之间线性分布。y=linspace(0,2,7)y=00.33330.66671.00001.33331.66672.0000z=1x3z=1.000000.50001.00001.50002.00003.0000u=y;zu=00.33330.66671.00001.33331.66672.00001.000000.50001.00001.50002.00003.000072b.利用内部函数产生矩阵利用内部函数产生矩阵%co

40、mpan生成生成x向量的伴随矩阵向量的伴随矩阵x=2,4,6,8,10x=246810compan(x)ans=-2-3-4-5-610000010000010000010%eye生成单位阵生成单位阵S=eye(6)S=100000010000001000000100000010000001%ones生成全部元素为生成全部元素为1的矩阵的矩阵ones(3,4)ans=111111111111F=5*ones(3)F=555555555%zeros生成全部元素为生成全部元素为0的矩阵的矩阵Z=zeros(2,4)Z=00000000%rand生成均匀分布的随机矩阵生成均匀分布的随机矩阵R=ran

41、d(4)R=0.95010.89130.82140.92180.23110.76210.44470.73820.60680.45650.61540.17630.48600.01850.79190.4057%生成空阵生成空阵K=K=73c.利用利用M文件产生矩阵文件产生矩阵A=1,2,3,4,56,7,8,9,1011,12,13,14,1516,17,18,19,2021,22,23,24,2574d.从外部数据文件调入矩阵用load命令输入用Import菜单输入75矩阵元素的修改矩阵元素的修改A=1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16A=12345678

42、910111213141516A(1,1)ans=1A(2,3)ans=7A(1,1)=0;A(2,2)=A(1,2)+A(2,1);A(4,4)=cos(0);AA=0234577891011121314151762.2.2矩阵的拆分矩阵的拆分1矩阵元素矩阵元素通过下标引用矩阵的元素,例如通过下标引用矩阵的元素,例如A(3,2)=200采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。在应元素在内存中的排列顺序。在MATLAB中,矩阵元素中,矩阵元素按列按列存储存储,先第一列,再第二列,依次类推先第一列,再第

43、二列,依次类推。例如。例如A=1,2,3;4,5,6;A(3)ans=2显然,序号显然,序号(Index)与下标与下标(Subscript)是一一对应的,以是一一对应的,以mn矩阵矩阵A为例,矩阵元素为例,矩阵元素A(i,j)的序号为的序号为(j1)*m+i。其相互其相互转换关系也可利用转换关系也可利用sub2ind和和ind2sub函数求得。函数求得。772矩阵拆分矩阵拆分(1)利用利用冒号冒号表达式获得子矩阵表达式获得子矩阵A(:,j)表示取表示取A矩阵的矩阵的第第j列列全部全部元素元素;A(i,:)表示表示A矩阵矩阵第第i行的行的全部全部元素元素;A(i,j)表示取表示取A矩阵矩阵第第i

44、行、第行、第j列的元素。列的元素。A(i:i+m,:)表示取表示取A矩阵第矩阵第ii+m行的全部元行的全部元素;素;A(:,k:k+m)表示取表示取A矩阵第矩阵第kk+m列的全部列的全部元素,元素,A(i:i+m,k:k+m)表示取表示取A矩阵第矩阵第ii+m行内,行内,并在第并在第kk+m列中的所有元素。列中的所有元素。7879(2)利用空矩阵删除矩阵的元素利用空矩阵删除矩阵的元素在在MATLAB中,定义中,定义为空矩阵。给变量为空矩阵。给变量X赋空矩阵的语句为赋空矩阵的语句为X=。注意,注意,X=与与clearX不同,不同,clear是将是将X从工作空间中删除,从工作空间中删除,而空矩阵则

45、存在于工作空间中,只是维数而空矩阵则存在于工作空间中,只是维数为为0。802.2.3特殊矩阵特殊矩阵1通用的特殊矩阵通用的特殊矩阵常用的产生通用特殊矩阵的函数有:常用的产生通用特殊矩阵的函数有:zeros:产生全产生全0矩阵矩阵(零矩阵零矩阵)。ones:产生全产生全1矩阵矩阵(幺矩阵幺矩阵)。eye:产生单位矩阵。产生单位矩阵。rand:产生产生01间均匀分布的随机矩阵。间均匀分布的随机矩阵。randn:产生均值为产生均值为0,方差为,方差为1的标准正态的标准正态分布随机矩阵。分布随机矩阵。81例例23分别建立分别建立33、32和与矩阵和与矩阵A同样大小的零同样大小的零矩阵。矩阵。(1)建立

46、一个建立一个33零矩阵。零矩阵。zeros(3)(2)建立一个建立一个32零矩阵。零矩阵。zeros(3,2)(3)设设A为为23矩阵,则可以用矩阵,则可以用zeros(size(A)建立建立一个与矩阵一个与矩阵A同样大小零矩阵。同样大小零矩阵。A=123;456;%产生一个产生一个23阶矩阵阶矩阵Azeros(size(A)%产生一个与矩阵产生一个与矩阵A同样大小的同样大小的零矩阵零矩阵82例例24建立随机矩阵:建立随机矩阵:(1)在区间在区间20,50内均匀分布的内均匀分布的5阶随机矩阵。阶随机矩阵。(2)均值为均值为0.6、方差为、方差为0.1的的5阶正态分布随机矩阶正态分布随机矩阵。阵

47、。命令如下:命令如下:x=20+(5020)*rand(5)y=0.6+sqrt(0.1)*randn(5)此外,常用的函数还有此外,常用的函数还有reshape(A,m,n),它在矩阵它在矩阵总元素保持不变的前提下,将矩阵总元素保持不变的前提下,将矩阵A重新排成重新排成mn的二维矩阵。的二维矩阵。832用于专门学科的特殊矩阵用于专门学科的特殊矩阵(1)魔方矩阵魔方矩阵魔方矩阵有一个有趣的性质,其每行、每魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由阶魔方阵,其元素由1,2,3,n2共共n2个整数个整数组成。组成

48、。MATLAB提供了求魔方矩阵的函数提供了求魔方矩阵的函数magic(n),其功能是生成一个其功能是生成一个n阶魔方阵。阶魔方阵。84(2)范得蒙矩阵范得蒙矩阵范得蒙范得蒙(Vandermonde)矩阵最后一列全为矩阵最后一列全为1,倒数第二列为一个指定的向量,其他各,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积。可以列是其后列与倒数第二列的点乘积。可以用一个指定向量生成一个范得蒙矩阵。在用一个指定向量生成一个范得蒙矩阵。在MATLAB中,函数中,函数vander(V)生成以向量生成以向量V为基础向量的范得蒙矩阵。例如,为基础向量的范得蒙矩阵。例如,A=vander(1;2

49、;3;5)即可得到上述范得蒙矩即可得到上述范得蒙矩阵。阵。85(3)伴随矩阵伴随矩阵MATLAB生成伴随矩阵的函数是生成伴随矩阵的函数是compan(p),其中其中p是一个多项式的系数向是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。量,高次幂系数排在前,低次幂排在后。例如,为了求多项式的例如,为了求多项式的x37x+6的伴随矩阵,的伴随矩阵,可使用命令:可使用命令:p=1,0,7,6;compan(p)86(4)帕斯卡矩阵帕斯卡矩阵(杨辉三角形杨辉三角形)我们知道,二次项我们知道,二次项(x+y)n展开后的系数随展开后的系数随n的增大组成一个三角形表,称为杨辉三角的增大组成一个三角形

50、表,称为杨辉三角形。由杨辉三角形表组成的矩阵称为帕斯形。由杨辉三角形表组成的矩阵称为帕斯卡卡(Pascal)矩阵。函数矩阵。函数pascal(n)生成一个生成一个n阶帕斯卡矩阵。阶帕斯卡矩阵。87例例22求求(x+y)5的展开式。的展开式。在在MATLAB命令窗口,输入命令:命令窗口,输入命令:pascal(6)矩阵次对角线上的元素矩阵次对角线上的元素1,5,10,10,5,1即为展即为展开式的系数。开式的系数。882.3MATLAB运算运算2.3.1算术运算算术运算1基本算术运算基本算术运算MATLAB的基本算术运算有:的基本算术运算有:(加加)、(减减)、*(乘乘)、/(右除右除)、(左除

51、左除)、(乘乘方方)。注意,运算是在矩阵意义下进行的,单个注意,运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。数据的算术运算只是一种特例。89(1)矩阵加减运算矩阵加减运算假定有两个矩阵假定有两个矩阵A和和B,则可以由则可以由A+B和和AB实现实现矩阵的加减运算。运算规则是:若矩阵的加减运算。运算规则是:若A和和B矩阵的维矩阵的维数相同,则可以执行矩阵的加减运算,数相同,则可以执行矩阵的加减运算,A和和B矩阵矩阵的相应元素相加减。如果的相应元素相加减。如果A与与B的维数不相同,则的维数不相同,则MATLAB将给出错误信息,提示用户两个矩阵的将给出错误信息,提示用户两个矩阵的维数不匹

52、配。维数不匹配。(2)矩阵乘法矩阵乘法假定有两个矩阵假定有两个矩阵A和和B,若若A为为mn矩阵,矩阵,B为为np矩阵,则矩阵,则C=A*B为为mp矩阵。矩阵。90a.矩阵的加减运算矩阵的加减运算A=1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16B=1,sqrt(25),9,132,6,107*23+sin(pi),7,11,154,abs(-8),12,16C=A+BC=27121771217221217222717222732D=A-BD=0-3-6-930-3-6630-39630E=A+3E=4567891011121314151617181991(3)矩阵

53、除法矩阵除法在在MATLAB中,有两种矩阵除法运算:中,有两种矩阵除法运算:和和/,分,分别表示左除和右除。如果别表示左除和右除。如果A矩阵是非奇异方阵,矩阵是非奇异方阵,则则AB和和B/A运算可以实现。运算可以实现。AB等效于等效于A的逆左的逆左乘乘B矩阵,也就是矩阵,也就是inv(A)*B,而而B/A等效于等效于A矩阵矩阵的逆右乘的逆右乘B矩阵,也就是矩阵,也就是B*inv(A)。对于含有标量的运算,两种除法运算的结果相同,对于含有标量的运算,两种除法运算的结果相同,如如3/4和和43有相同的值,都等于有相同的值,都等于0.75。又如,设。又如,设a=10.5,25,则则a/5=5a=2.

54、10005.0000。对于矩对于矩阵来说,左除和右除表示两种不同的除数矩阵和阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般被除数矩阵的关系。对于矩阵运算,一般ABB/A。92b.矩阵乘法矩阵乘法C=A*BC=307011015070174278382110278446614150382614846D=A*3D=36912151821242730333639424548c.矩阵除法矩阵除法左除左除AB=inv(A)*BA=8,1,6;3,5,7;4,9,2A=816357492B=1,1,1;1,2,3;1,3,6B=111123136ABans=0.06670.

55、05000.09720.06670.30000.63890.06670.0500-0.0694C=inv(A)C=0.1472-0.14440.0639-0.06110.02220.1056-0.01940.1889-0.1028C*Bans=0.06670.05000.09720.06670.30000.63890.06670.0500-0.0694右除右除A/B=A*inv(B)A/Bans=27-3112120-1329-12D=inv(B)D=3-31-35-21-21A*Dans=27-3112120-1329-1293当当对对矩矩阵阵作作除除法法运运算算时时,有有可可能能因因为为误

56、误差差设设置置的的差差别别导导致致不不精精确确的的结结果果,此时,此时,MATLAB会自动给出警告信息会自动给出警告信息:MATLAB采采用用IEEE(国国际际认认可可的的)算算法法,即即使使A为为奇奇异异阵阵(即即A的的行行列列式式值值是是0),运运算算也也照照样样进进行行,但但是是此此时时MATLAB将将给给出出警警告告信信息息:“Warning:Matrixissingulartoworkingprecision.”,求求出出的的矩矩阵所有元素为无穷大(阵所有元素为无穷大(Inf););当当矩矩阵阵A为为病病态态阵阵(BadlyScaled)时时,MATLAB使使用用的的算算法法产产生生

57、的的误误差差可可能能很很大大,MATLAB 系系统统也也将将给给出出警警告告信信息息:“ Warning:Matrixisbadlyscaledtoworkingprecision.Resultsmaybeinaccurate.”。E=1,2,3;4,5,6;7,8,9E=123456789F=1,4,7;2,5,8;3,6,9F=147258369EFWarning:Matrixisclosetosingularorbadlyscaled.Resultsmaybeinaccurate.RCOND=1.541976e-018.ans=-0.3333-7.3333-14.33330.666711

58、.666722.66670-4.0000-8.000094(4)矩阵的乘方矩阵的乘方一个矩阵的乘方运算可以表示成一个矩阵的乘方运算可以表示成Ax,要求要求A为方为方阵,阵,x为标量。为标量。2点运算点运算在在MATLAB中,有一种特殊的运算,因为其运中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算符是在有关算术运算符前面加点,所以叫点运算。点运算符有算。点运算符有.*、./、.和和.。两矩阵进行点。两矩阵进行点运算是指它们的运算是指它们的对应元素对应元素进行相关运算,要求两进行相关运算,要求两矩阵的维参数相同。矩阵的维参数相同。952.3.2关系运算关系运算MATLA

59、B提供了提供了6种种关系运算符:关系运算符:(小于小于)、(大于大于)、=(大于或等大于或等于于)、=(等于等于)、=(不等于不等于)。它们的含义不难理解,但要注意其书写方它们的含义不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。法与数学中的不等式符号不尽相同。96关系运算符的运算法则为:关系运算符的运算法则为:(1)当两个比较量是当两个比较量是标量标量时,直接比较两时,直接比较两数的大小。若关系成立,关系表达式结果数的大小。若关系成立,关系表达式结果为为1,否则为,否则为0。(2)当参与比较的量是两个当参与比较的量是两个维数相同的矩维数相同的矩阵阵时,比较是对两矩阵相同位置的元素按

60、时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由维数与原矩阵相同的矩阵,它的元素由0或或1组成。组成。97(3)当参与比较的一个是当参与比较的一个是标量标量,而另一个是,而另一个是矩阵矩阵时,则把标量与矩阵的每一个元素按时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由维数与

61、原矩阵相同的矩阵,它的元素由0或或1组成。组成。98例例23产生产生5阶随机方阵阶随机方阵A,其元素为其元素为10,90区间的随机整数,然后判断区间的随机整数,然后判断A的元的元素是否能被素是否能被3整除。整除。(1)生成生成5阶随机方阵阶随机方阵A。A=fix(9010+1)*rand(5)+10)(2)判断判断A的元素是否可以被的元素是否可以被3整除。整除。P=rem(A,3)=0其中,其中,rem(A,3)是矩阵是矩阵A的每个元素除以的每个元素除以3的余数矩阵。此时,的余数矩阵。此时,0被扩展为与被扩展为与A同维数同维数的零矩阵,的零矩阵,P是进行等于是进行等于(=)比较的结果矩比较的结

62、果矩阵。阵。992.3.3逻辑运算逻辑运算MATLAB提供了提供了3种逻辑运算符:种逻辑运算符:&(与与)、|(或或)和和(非非)。逻辑运算的运算法则为:逻辑运算的运算法则为:(1)在逻辑运算中,确认非零元素为真,在逻辑运算中,确认非零元素为真,用用1表示,零元素为假,用表示,零元素为假,用0表示。表示。(2)设参与逻辑运算的是两个标量设参与逻辑运算的是两个标量a和和b,那么,那么,a&ba,b全为非零时,运算结果为全为非零时,运算结果为1,否则为,否则为0。a|ba,b中只要有一个非零,运算结果为中只要有一个非零,运算结果为1。a当当a是零时,运算结果为是零时,运算结果为1;当;当a非零非零

63、时,运算结果为时,运算结果为0。100(3)若参与逻辑运算的是两个同维矩阵,若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素那么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果按标量规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素是一个与原矩阵同维的矩阵,其元素由由1或或0组成。组成。(4)若参与逻辑运算的一个是标量,一若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进中的每个元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维行。最终运算结果是一个与矩阵同维的矩阵,其元素由的

64、矩阵,其元素由1或或0组成。组成。101(5)逻辑非是单目运算符,也服从矩阵运算逻辑非是单目运算符,也服从矩阵运算规则。规则。(6)在算术、关系、逻辑运算中,算术运算在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。优先级最高,逻辑运算优先级最低。例例24建立矩阵建立矩阵A,然后找出大于然后找出大于4的元素的元素的位置。的位置。(1)建立矩阵建立矩阵A。A=4,65,54,0,6;56,0,67,45,0(2)找出大于找出大于4的元素的位置。的元素的位置。find(A4)1022.4矩阵分析矩阵分析2.4.1对角阵与三角阵对角阵与三角阵1对角阵对角阵只有对角线上有非只有对角线上

65、有非0元素的矩阵称元素的矩阵称为对角矩阵,对角线上的元素相等为对角矩阵,对角线上的元素相等的对角矩阵称为数量矩阵,对角线的对角矩阵称为数量矩阵,对角线上的元素都为上的元素都为1的对角矩阵称为单的对角矩阵称为单位矩阵。位矩阵。103(1)提取矩阵的对角线元素提取矩阵的对角线元素设设A为为mn矩阵,矩阵,diag(A)函数用于提取矩阵函数用于提取矩阵A主对主对角线元素,产生一个具有角线元素,产生一个具有min(m,n)个元素的列向个元素的列向量。量。diag(A)函数还有一种形式函数还有一种形式diag(A,k),其功能是提其功能是提取第取第k条对角线的元素。条对角线的元素。(2)构造对角矩阵构造

66、对角矩阵设设V为具有为具有m个元素的向量,个元素的向量,diag(V)将产生一个将产生一个mm对角矩阵,其主对角线元素即为向量对角矩阵,其主对角线元素即为向量V的元的元素。素。diag(V)函数也有另一种形式函数也有另一种形式diag(V,k),其功能是其功能是产生一个产生一个nn(n=m+)对角阵,其第对角阵,其第k条对角线的元条对角线的元素即为向量素即为向量V的元素。的元素。104例例25先建立先建立55矩阵矩阵A,然后将然后将A的第一行的第一行元素乘以元素乘以1,第二行乘以,第二行乘以2,第五行乘,第五行乘以以5。A=17,0,1,0,15;23,5,7,14,16;4,0,13,0,2

67、2;10,12,19,21,3;.11,18,25,2,19;D=diag(1:5);D*A%用用D左乘左乘A,对对A的每行乘的每行乘以一个指定常数以一个指定常数1052三角阵三角阵三角阵又进一步分为上三角阵三角阵又进一步分为上三角阵和下三角阵,所谓上三角阵,和下三角阵,所谓上三角阵,即矩阵的对角线以下的元素全即矩阵的对角线以下的元素全为为0的一种矩阵,而下三角阵则的一种矩阵,而下三角阵则是对角线以上的元素全为是对角线以上的元素全为0的一的一种矩阵。种矩阵。106(1)上三角矩阵上三角矩阵求矩阵求矩阵A的上三角阵的的上三角阵的MATLAB函数是函数是triu(A)。triu(A)函数也有另一种

68、形式函数也有另一种形式triu(A,k),其其功能是求矩阵功能是求矩阵A的第的第k条对角线以上的元素。条对角线以上的元素。例如,提取矩阵例如,提取矩阵A的第的第2条对角线以上的元条对角线以上的元素,形成新的矩阵素,形成新的矩阵B。(2)下三角矩阵下三角矩阵在在MATLAB中,提取矩阵中,提取矩阵A的下三角矩阵的下三角矩阵的函数是的函数是tril(A)和和tril(A,k),其用法与提取其用法与提取上三角矩阵的函数上三角矩阵的函数triu(A)和和triu(A,k)完全完全相同。相同。1072.4.2矩阵的转置与旋转矩阵的转置与旋转1矩阵的转置矩阵的转置转置运算符是单撇号转置运算符是单撇号()。

69、2矩阵的旋转矩阵的旋转利用函数利用函数rot90(A,k)将矩阵将矩阵A旋转旋转90的的k倍,倍,当当k为为1时可省略。时可省略。1083矩阵的左右翻转矩阵的左右翻转对矩阵实施左右翻转是将原矩阵的第一列对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调和最后一列调换,第二列和倒数第二列调换,换,依次类推。,依次类推。MATLAB对矩阵对矩阵A实实施左右翻转的函数是施左右翻转的函数是fliplr(A)。4矩阵的上下翻转矩阵的上下翻转MATLAB对矩阵对矩阵A实施上下翻转的函数是实施上下翻转的函数是flipud(A)。1092.4.3矩阵的逆矩阵的逆对于一个方阵对于一个方阵A

70、,如果存在一个与其同阶的方阵如果存在一个与其同阶的方阵B,使得:使得:AB=BA=I(I为单位矩阵为单位矩阵)则称则称B为为A的逆矩阵,当然,的逆矩阵,当然,A也是也是B的逆矩阵。的逆矩阵。求一个矩阵的逆是一件非常烦琐的工作,容易出错,求一个矩阵的逆是一件非常烦琐的工作,容易出错,但在但在MATLAB中,求一个矩阵的逆非常容易。求方中,求一个矩阵的逆非常容易。求方阵阵A的逆矩阵可调用函数的逆矩阵可调用函数inv(A)。例例211用求逆矩阵的方法解线性方程组。用求逆矩阵的方法解线性方程组。Ax=b其解为:其解为:x=A1b1102.4.4方阵的行列式方阵的行列式把一个方阵看作一个行列式,并对其按

71、行把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为矩阵所对列式的规则求值,这个值就称为矩阵所对应的行列式的值。在应的行列式的值。在MATLAB中,求方阵中,求方阵A所对应的行列式的值的函数是所对应的行列式的值的函数是det(A)。1112.4.5矩阵的秩与迹矩阵的秩与迹1矩阵的秩矩阵的秩矩阵线性无关的行数与列数称为矩阵矩阵线性无关的行数与列数称为矩阵的秩。在的秩。在MATLAB中,求矩阵秩的函中,求矩阵秩的函数是数是rank(A)。2矩阵的迹矩阵的迹矩阵的迹等于矩阵的对角线元素之和,矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。在也等于矩阵的特征值之和。在MATLA

72、B中,求矩阵的迹的函数是中,求矩阵的迹的函数是trace(A)。1122.4.6向量和矩阵的范数向量和矩阵的范数矩阵或向量的范数用来度量矩阵或向量在矩阵或向量的范数用来度量矩阵或向量在某种意义下的长度。范数有多种方法定义,某种意义下的长度。范数有多种方法定义,其定义不同,范数值也就不同。其定义不同,范数值也就不同。1131向量的向量的3种常用范数及其计算函数种常用范数及其计算函数在在MATLAB中,求向量范数的函数为:中,求向量范数的函数为:(1)norm(V)或或norm(V,2):计算向量计算向量V的的2范数。范数。(2)norm(V,1):计算向量计算向量V的的1范数。范数。(3)nor

73、m(V,inf):计算向量计算向量V的的范数。范数。1142矩阵的范数及其计算函数矩阵的范数及其计算函数MATLAB提供了求提供了求3种矩阵范数的函数,其种矩阵范数的函数,其函数调用格式与求向量的范数的函数完全函数调用格式与求向量的范数的函数完全相同。相同。2.4.7矩阵的条件数矩阵的条件数在在MATLAB中,计算矩阵中,计算矩阵A的的3种条件数的种条件数的函数是:函数是:(1)cond(A,1)计算计算A的的1范数下的条件数。范数下的条件数。(2)cond(A)或或cond(A,2)计算计算A的的2范数范数数下的条件数。数下的条件数。(3)cond(A,inf)计算计算A的的范数下的条范数下

74、的条件数。件数。1152.4.8矩阵的特征值与特征向量矩阵的特征值与特征向量在在MATLAB中,计算矩阵中,计算矩阵A的特征值的特征值和特征向量的函数是和特征向量的函数是eig(A),常用的调常用的调用格式有用格式有3种:种:(1)E=eig(A):求矩阵求矩阵A的全部特征值,的全部特征值,构成向量构成向量E。(2)V,D=eig(A):求矩阵求矩阵A的全部特征的全部特征值,构成对角阵值,构成对角阵D,并求并求A的特征向量的特征向量构成构成V的列向量。的列向量。116(3)V,D=eig(A,nobalance):与第与第2种种格式类似,但第格式类似,但第2种格式中先对种格式中先对A作相似变作

75、相似变换后求矩阵换后求矩阵A的特征值和特征向量,而格式的特征值和特征向量,而格式3直接求矩阵直接求矩阵A的特征值和特征向量。的特征值和特征向量。例例212用求特征值的方法解方程。用求特征值的方法解方程。3x57x4+5x2+2x18=0p=3,7,0,5,2,18;A=compan(p);%A的伴随矩阵的伴随矩阵x1=eig(A)%求求A的特征值的特征值x2=roots(p)%直接求多项式直接求多项式p的零点的零点117例例26用求特征值的方法解方程。用求特征值的方法解方程。3x57x4+5x2+2x18=0p=3,7,0,5,2,18;A=compan(p);%A的伴随矩阵的伴随矩阵x1=e

76、ig(A)%求求A的特征值的特征值x2=roots(p)%直接求多项式直接求多项式p的零的零点点1183矩阵指数矩阵指数expm、expm1、expm2、expm3expm(A)、expm1(A)、expm2(A)、expm3(A)的功能都求矩阵指数的功能都求矩阵指数eA。4普通矩阵函数普通矩阵函数funmfunm(A,fun)用来计算直接作用于矩阵用来计算直接作用于矩阵A的的由由fun指定的超越函数值。当指定的超越函数值。当fun取取sqrt时,时,funm(A,sqrt)可以计算矩阵可以计算矩阵A的平方的平方根,与根,与sqrtm(A)的计算结果一样。的计算结果一样。119b.b.常用的矩

77、阵运算函数常用的矩阵运算函数只只有有方方阵阵才才可可计计算算行行列列式式值值,即即det(A)的的计计算算只只有有在在A为为方方阵阵时才有意义。时才有意义。logm(A)和和sqrtm(A)计算矩阵的对数计算矩阵的对数/平方平方根是指对根是指对整个矩阵整个矩阵A求对数求对数/平方根平方根。矩阵常用函数总结矩阵常用函数总结120c.c.矩阵的分解函数矩阵的分解函数121X=3,-1,2;1,2,-1;-2,1,4%输入矩阵XX=3-1212-1-214L,U=lu(X)%对矩阵X进行LU分解L=1.0000000.33331.00000-0.66670.14291.0000U=3.0000-1.

78、00002.000002.3333-1.6667005.5714Q,R=qr(X)%对矩阵X进行QR分解Q=-0.80180.15430.5774-0.2673-0.9567-0.11550.5345-0.24690.8083R=-3.74170.80180.80180-2.31460.2777004.50331222.8稀疏矩阵稀疏矩阵2.8.1矩阵存储方式矩阵存储方式MATLAB的矩阵有两种存储方式:的矩阵有两种存储方式:完全存储方式完全存储方式和和稀疏存储方式稀疏存储方式。1完全存储方式完全存储方式完全存储方式是将矩阵的全部元素完全存储方式是将矩阵的全部元素按列存储。以前讲到的矩阵的存储

79、按列存储。以前讲到的矩阵的存储方式都是按这个方式存储的,此存方式都是按这个方式存储的,此存储方式对稀疏矩阵也适用。储方式对稀疏矩阵也适用。1232稀疏存储方式稀疏存储方式稀疏存储方式仅存储矩阵所有的非零元素稀疏存储方式仅存储矩阵所有的非零元素的值及其位置,即行号和列号。在的值及其位置,即行号和列号。在MATLAB中,稀疏存储方式也是按列存储中,稀疏存储方式也是按列存储的。的。注意,在讲稀疏矩阵时,有两个不同的概注意,在讲稀疏矩阵时,有两个不同的概念,一是指矩阵的念,一是指矩阵的0元素较多,该矩阵是一元素较多,该矩阵是一个具有稀疏特征的矩阵,二是指采用稀疏个具有稀疏特征的矩阵,二是指采用稀疏方式

80、存储的矩阵。方式存储的矩阵。1242.8.2稀疏存储方式的产生稀疏存储方式的产生1将完全存储方式转化为稀疏存储方式将完全存储方式转化为稀疏存储方式函数函数A=sparse(S)将矩阵将矩阵S转化为稀疏存储方式的矩阵转化为稀疏存储方式的矩阵A。当矩阵当矩阵S是稀疏存储方式时,则函数调用相当于是稀疏存储方式时,则函数调用相当于A=S。sparse函数还有其他一些调用格式:函数还有其他一些调用格式:sparse(m,n):生成一个生成一个mn的所有元素都是的所有元素都是0的稀疏矩阵。的稀疏矩阵。sparse(u,v,S):u,v,S是是3个等长的向量。个等长的向量。S是要建立的稀疏是要建立的稀疏矩阵

81、的非矩阵的非0元素,元素,u(i)、v(i)分别是分别是S(i)的行和列下标,该函的行和列下标,该函数建立一个数建立一个max(u)行、行、max(v)列并以列并以S为稀疏元素的稀疏为稀疏元素的稀疏矩阵。矩阵。此外,还有一些和稀疏矩阵操作有关的函数。例如此外,还有一些和稀疏矩阵操作有关的函数。例如u,v,S=find(A):返回矩阵返回矩阵A中非中非0元素的下标和元素。元素的下标和元素。这里产生的这里产生的u,v,S可作为可作为sparse(u,v,S)的参数。的参数。full(A):返回和稀疏存储矩阵返回和稀疏存储矩阵A对应的完全存储方式矩阵。对应的完全存储方式矩阵。1252产生稀疏存储矩阵

82、产生稀疏存储矩阵只把要建立的稀疏矩阵的非只把要建立的稀疏矩阵的非0元素及其所在行和列元素及其所在行和列的位置表示出来后由的位置表示出来后由MATLAB自己产生其稀疏存自己产生其稀疏存储,这需要使用储,这需要使用spconvert函数。调用格式为:函数。调用格式为:B=spconvert(A)其中其中A为一个为一个m3或或m4的矩阵,其每行表示一个的矩阵,其每行表示一个非非0元素,元素,m是非是非0元素的个数,元素的个数,A每个元素的意义每个元素的意义是:是:(i,1)第第i个非个非0元素所在的行。元素所在的行。(i,2)第第i个非个非0元素所在的列。元素所在的列。(i,3)第第i个非个非0元素

83、值的实部。元素值的实部。(i,4)第第i个非个非0元素值的虚部,若矩阵的全部元元素值的虚部,若矩阵的全部元素都是实数,则无须第四列。素都是实数,则无须第四列。该函数将该函数将A所描述的一个稀疏矩阵转化为一个稀所描述的一个稀疏矩阵转化为一个稀疏存储矩阵。疏存储矩阵。126例例27根据表示稀疏矩阵的矩阵根据表示稀疏矩阵的矩阵A,产生一个产生一个稀疏存储方式矩阵稀疏存储方式矩阵B。命令如下:命令如下:A=2,2,1;3,1,1;4,3,3;5,3,8;6,6,12;B=spconvert(A)1275、数组运算、数组运算Matlab是以矩阵为基本运算单元的,是以矩阵为基本运算单元的,数组作为独立数组

84、作为独立的计算单元实体是不存在的。数组运算的计算单元实体是不存在的。数组运算是是Matlab的一的一种运算形式,种运算形式,它它从矩阵的单个元素出发,针对每个元从矩阵的单个元素出发,针对每个元素进行的运算。素进行的运算。MATLAB对对数组运算数组运算在符号上做了不同的约定,在符号上做了不同的约定,运算符形式为:运算符形式为:运算符形式为:运算符形式为:.*,./,.,.*,./,.,.矩阵运算和数组运算矩阵运算和数组运算有着显著的不同。属于两种不有着显著的不同。属于两种不同的运算:同的运算:矩阵运算矩阵运算是从矩阵的整体出发,按照线性是从矩阵的整体出发,按照线性代数的运算规则进行代数的运算规

85、则进行,有着明确而严格的数学规则;,有着明确而严格的数学规则;而数组运算而数组运算是从矩阵的单个元素出发,针对每个元素是从矩阵的单个元素出发,针对每个元素进行的运算进行的运算。对于加法和减法而言,矩阵运算和数组运算相同对于加法和减法而言,矩阵运算和数组运算相同;对于乘法和除法而言,矩阵和数组的运算有着显著的对于乘法和除法而言,矩阵和数组的运算有着显著的不同。不同。 128a.矩阵的矩阵的数组乘数组乘/除及乘方除及乘方b.数组除数组除的运算规则:的运算规则:当当参参与与除除运运算算的的两两个个矩矩阵阵同同维维时时,运运算算为为矩矩阵阵的的相相应应元元素素相相除除,计计算算结结果果是是与与参参与与

86、运运算算的的矩矩阵同维的矩阵;阵同维的矩阵;当当参参与与运运算算的的矩矩阵阵有有一一个个是是标标量量时时,运运算算是是标标量量和和矩矩阵阵的的每每一一个个元元素素相相除除,计计算算结结果果是是与与参参与运算的矩阵同维的矩阵;与运算的矩阵同维的矩阵;右右除除与与左左除除的的关关系系为为A./B=B.A,其其中中A是是被被除数,除数,B是除数。是除数。129E=1,2,3;4,5,6;7,8,9E=123456789F=1,4,7;2,5,8;3,6,9F=147258369E.Fans=1.00002.00002.33330.50001.00001.33330.42860.75001.00004

87、.Fans=0.25001.00001.75000.50001.25002.00000.75001.50002.2500F./Eans=1.00002.00002.33330.50001.00001.33330.42860.75001.0000E*Fans=143250327712250122194E.*Fans=182182548214881130数组乘方数组乘方的运算规则:的运算规则:矩矩阵阵的的标标量量乘乘方方A.p(即即A为为矩矩阵阵,p为为标标量量),运运算算为为矩矩阵阵每每个个元元素素的的p次次方方,计算结果是与矩阵计算结果是与矩阵A同维的矩阵;同维的矩阵;标标量量的的矩矩阵阵乘乘

88、方方p.A,表表示示以以p为为底底,分分别别以以A的的元元素素为为指指数数求求幂幂值值,计计算算结结果果是与矩阵是与矩阵A同维的矩阵。同维的矩阵。131b.b.向量的向量的数组运算数组运算:加加/ /减法:减法:x=1,2,3y=4,5,6c=x-ya=1+x乘乘/ /除法除法:b=2*xb=2.*xz3=x.9z4=x./9z=x.*yz1=x./yz2=x.y乘方:乘方:z7=2.xz5=x.3z6=x.y点积、叉积:点积、叉积:c1=dot(a,b)c1=sum(a.*b)c2=cross(a,b)1326、数组函数、数组函数常用的数学常用的数学函数函数133常用三角函数和超越函数常用三

89、角函数和超越函数134A=3,3,5;2,4,6;7,8,9A=335246789log(A)ans=1.09861.09861.60940.69311.38631.79181.94592.07942.1972sqrt(A)ans=1.73211.73212.23611.41422.00002.44952.64582.82843.0000cos(A)ans=-0.9900-0.99000.2837-0.4161-0.65360.96020.7539-0.1455-0.9111pow2(A)ans=8832416641282565122.Aans=883241664128256512135所谓符

90、号计算是指在运算时所谓符号计算是指在运算时,无须事先对无须事先对变量赋值变量赋值,而将所得到结果以标准的符号而将所得到结果以标准的符号形式来表示。形式来表示。MathWorks公司以公司以Maple的内核作为符的内核作为符号计算引擎(号计算引擎(Engine),),依赖依赖Maple已已有的函数库,开发了实现符号计算的两有的函数库,开发了实现符号计算的两个工具箱:基本符号工具箱和扩展符号个工具箱:基本符号工具箱和扩展符号工具箱。工具箱。MATLAB的符号计算136(一)(一) 定义符号变量定义符号变量参参与与符符号号运运算算的的对对象象可可以以是是符符号号变变量量、符符号号表表达达式式或或符符

91、号号矩矩阵阵。符符号号变变量量要要先先定定义义,后后引引用用。可可以以用用sym函函数数、syms函函数数将将运运算算量量定定义义为为符符号号型型数数据据。引引用用符符号号运运算算函函数数时时,用用户户可可以以指指定定函函数数执执行行过过程程中中的的变变量量参参数数;若若用用户户没没有有指指定定变变量量参参数数,则则使使用用findsym函函数数默默认认的的变变量作为函数的变量参数。量作为函数的变量参数。一、符号计算基础一、符号计算基础1371、sym函数 sym函数的主要功能是创建符号变量,以便进行符号运算,也可以用于创建符号表达式或符号矩阵。用sym函数创建符号变量的一般格式为: x =

92、sym(x) 其目的是将x创建为符号变量,以x作为输出变量名。每次调用该函数,可以定义一个符号变量。一、符号计算基础(一) 定义符号变量138【例1】作符号计算:a,b,x,y均为符号运算量。在符号运算前,应先将a,b,x,y定义为符号运算量一、符号计算基础(一) 定义符号变量139a=sym(a); %定义a为符号运算量,输出变量名为ab=sym(b); x=sym(x);y=sym(y); x,y=solve(a*x-b*y-1,a*x+b*y-5,x,y) %以a,b为符号常数,x,y为符号变量即可得到方程组的解:x =3/ay =2/b一、符号计算基础一、符号计算基础(一) 定义符号变

93、量140【例例2 2】已已知知一一复复数数表表达达式式 z=x+i*y, z=x+i*y, 试试求求其其共共轭轭复复数数, ,并并求求该该表表达式与其共轭复数乘积的多项式。达式与其共轭复数乘积的多项式。( (为为了了使使乘乘积积表表达达式式x2+y2x2+y2非非负负,这这里里,把把变变量量x x和和y y定定义义为为实实数数) )x=x=sym(x,realsym(x,real););y=y=sym(y,realsym(y,real););z=z=x+ix+i*y; *y; % %定义复数表达式定义复数表达式conj(zconj(z); ); % %求共轭复数求共轭复数expand(zexp

94、and(z* *conj(zconj(z) ) % %求表达式与其共轭复数乘积的多项式求表达式与其共轭复数乘积的多项式ans =x2+y2若要去掉若要去掉x的属性的属性,可以使用下面语句可以使用下面语句 x = sym(x,unreal) 将将x创建为纯格式的符号变量。创建为纯格式的符号变量。1412、syms函数syms函数的功能与sym函数类似。syms函数可以在一个语句中同时定义多个符号变量,其一般格式为: syms arg1 arg2 argN 用于将rg1, arg2,argN等符号创建为符号型数据。142(二)默认符号变量(二)默认符号变量 在在数数学学表表达达式式中中,一一般般习

95、习惯惯于于使使用用排排在在字字母母表表中中前前面面的的字字母母作作为为变变量量的的系系数数,而而用用排排在在后后面面的的字字母母表表示示变变量量。例如:例如: f=ax2+bx+c 表表达达式式中中的的a,b,c通通常常被被认认为为是是常常数数,用作变量的系数;而将用作变量的系数;而将x看作自变量。看作自变量。143例如,数学表达式例如,数学表达式 f=xn g=sin(at+b)根根据据数数学学式式中中表表示示自自变变量量的的习习惯惯,默默认认a,b,c为为符符号号常常数数,x为符号变量。为符号变量。若在若在MATLAB中表示上述表达式,首先用中表示上述表达式,首先用syms 函数定函数定义

96、义a,b,n,t,x为符号对象。在进行导数运算时,由为符号对象。在进行导数运算时,由于没有指定符号变量,则系统采用于没有指定符号变量,则系统采用数学习惯数学习惯来确定表来确定表达式中的自变量,默认达式中的自变量,默认a,b,c为符号常数,为符号常数,x,t为符号为符号变量。变量。即即 : 对函数对函数f求导为:求导为:df/dx 对函数对函数g求导为:求导为:dg/dt(二)默认符号变量144 为为了了了了解解函函数数引引用用过过程程中中使使用用的的符符号号变变量量个个数数及及变变量量名名,可可以以用用findsym函函数数查查询询默默认认的的变变量量。该函数的引用格式为:该函数的引用格式为:

97、 findsym(f,n) 说明:说明:f为用户定义的符号函数,为用户定义的符号函数, n为正整数,表示查询变量的个数。为正整数,表示查询变量的个数。 n=i,表表示示查查询询i个个系系统统默默认认变变量量。n值值省省略略时时表表示示查查询符号函数中全部系统默认变量。询符号函数中全部系统默认变量。一、符号计算基础一、符号计算基础(二)默认符号变量145【例3 】查询符号函数 f=xn g=sin(at+b)中的系统默认变量。syms a b n t x %定义符号变量f=xn; %给定符号函数g=sin(a*t+b);findsym(f,1) %在f函数中查询1个系统默认变量ans= x表示f

98、函数中查询的1个系统默认变量为x。146(三)(三) 符号表达式符号表达式符符号号表表达达式式由由符符号号变变量量、函函数数、算算术术运运算算符符等等组组成成。符符号号表表达达式式的的书书写写格格式式与与数数值值表表达达式式相相同同。例如例如,数学表达式数学表达式 其符号表达式为:其符号表达式为: 1+sqr(5*x)/2注注意意,在在定定义义表表达达式式前前应应先先将将表表达达式式中中的的字字符符x定义为符号变量。定义为符号变量。147(四)(四) 生成符号函数生成符号函数 将表达式中的自变量定义为符号变量后,将表达式中的自变量定义为符号变量后,赋值给符号函数名,即可生成符号函数。赋值给符号

99、函数名,即可生成符号函数。例如有一数学表达式:例如有一数学表达式:148其用符号表达式生成符号函数fxy的过程为: syms a b c x y %定义符号运算量 fxy=(a*x2+b*y2)/c2 %生成符号函数生成符号函数fxy后,即可用于微积分等符号计算。一、符号计算基础(四) 生成符号函数149【例4】定义一个符号函数 fxy=(a*x2+b*y2)/c2 ,分别求该函数对x、y的导数和对x的积分。syms a b c x y %定义符号变量fxy=(a*x2+b*y2)/c2; %生成符号函数 diff(fxy,x) %符号函数fxy对x求导数ans =2*a*x/c2diff(f

100、xy, y) %符号函数fxy对y求导数 ans =2*b*y/c2 %符号函数fxy对x求积分int(fxy, x) ans =1/c2*(1/3*a*x3+b*y2*x)一、符号计算基础150(一) 微积分函数1.求极限 函数limit用于求符号函数f的极限。系统可以根据用户要求,计算变量从不同方向趋近于指定值的极限值。该函数的格式及功能:二、微积分151 limit(f,x,a):求符号函数f(x)的极限值。即计算当变量x趋近于常数a时,f(x)函数的极限值。 limit(f,a):求符号函数f(x)的极限值。由于没有指定符号函数f(x)的自变量,则使用该格式时,符号函数f(x)的变量为

101、函数findsym(f)确定的默认自变量,既变量x趋近于a。limit(f):求符号函数f(x)的极限值。符号函数f(x)的变量为函数findsym(f)确定的默认变量;没有指定变量的目标值时,系统默认变量趋近于0,即a=0的情况。limit(f,x,a,right):求符号函数f的极限值。right表示变量x从右边趋近于a。limit(f,x,a,left):求符号函数f的极限值。left表示变量x从左边趋近于a。二、微积分152【例例5 5】求极限求极限symssyms x x; % %定义符号变量定义符号变量f=(x*(exp(sin(x)+1)-2*(exp(tan(x)-1)/sin

102、(x)3f=(x*(exp(sin(x)+1)-2*(exp(tan(x)-1)/sin(x)3; % %确确定定符符号号表表达达式式w=limit(f) w=limit(f) % %求函数的极限求函数的极限w = -1/2w = -1/21532. 微分函数diff函数用于对符号表达式s求微分。该函数的一般引用格式为: diff(s,v,n)说明:说明:应应用用diff(s)没没有有指指定定微微分分变变量量和和微微分分阶阶数数,则则系系统统按按findsym函函数数指指示示的的默默认认变变量量对对符符号号表表达达式式s求求一一阶阶微微分分。 应应用用diff(s,v)或或diff(s,sym

103、(v) 格格式,表示以式,表示以v为自变量为自变量,对符号表达式,对符号表达式s求一阶微分求一阶微分 应应用用diff(s,n)格格式式,表表示示对对符符号号表表达达式式s求求n阶阶微微分分,n为正整数为正整数。 应应用用diff(s,v,n)diff(s,n,v) 格格式式,表示以表示以v为自变量,对符号表达式为自变量,对符号表达式s求求n阶微分。阶微分。154【例6】求导数:x = sym(x); %定义符号变量t = sym(t);diff(sin(x2) %求导运算ans =2*cos(x2)*x1553积分函数积分函数积积分分函函数数int(s ,v,a,b)可可以以对对被被积积函函

104、数数或或符符号号表表达达式式s求求积积分分。其其引引用用格式为:格式为:int(s ,v,a,b)说明:说明:应应用用int(s)格格式式,表表示示没没有有指指定定积积分分变变量量和和积积分分阶阶数数时时,系系统统按按findsym函函数数指指示示的的默默认认变变量量对对被被积积函函数数或或符符号表达式号表达式s求求一阶积分一阶积分。应应用用int(s,v)格格式式,表表示示以以v为为自自变变量量,对对被被积积函函数数或符号表达式或符号表达式s求一阶不定积分。求一阶不定积分。应应用用积积分分函函数数时时,如如果果给给定定 a、b两两项项,表表示示是是进进行行定定积积分分运运算算。a、b分分别别

105、表表示示定定积积分分的的下下限限和和上上限限。不不指指定定积积分的下限和上限表示求不定积分。分的下限和上限表示求不定积分。156【例7】求下述积分。求积分:syms xint(1/(1+x2) ans =atan(x)二、微积分1574. 级数(级数求和)级数求和运算是数学中常见的一种运算。例如: f(x)=a0+a1x+a2x2+a3x3+anxn函数symsum可以用于此类对符号函数f的求和运算。该函数的引用时,应确定级数的通项式s,变量的变化范围a和b。该函数的引用格式为: symsum(s, a,b)158【例8】求级数的和:1/12+1/22+1/32+1/42+ syms k sy

106、msum(1/k2,1,Inf) %k值为1到无穷大ans =1/6*pi2其结果为:1/12+1/22+1/32+1/42+ =2/61591.因式分解factor函数的功能为:把多项式S分解为多个因式,各多项式的系数均为有理数。格式为: factor(s)【例9】将表达式(x9-1)分解为多个因式。syms xfactor(x9-1)ans =(x-1)*(x2+x+1)*(x6+x3+1)三、简化方程表达式1602.嵌套将符号多项式s用嵌套形式表示,即用多层括号的形式表示。Horner函数可以实现此功能。该函数的格式为: horner(s)三、简化方程表达式三、简化方程表达式【例10】将

107、表达式x3-6*x2+11*x-6用嵌套形式表示。syms xhorner(x3-6*x2+11*x-6)ans =-6+(11+(-6+x)*x)*x161解方程函数的格式为:solve(expr1,expr2,.,exprN,var1,var2,.varN) 或 solve(expr1,expr2,.,exprN) 其功能为:求解代数方程组expr1,expr2,.,exprN的根,未知数为var1,var2,.varN。说明:若不指明符号表达式expr1,expr2,.,exprN的值,系统默认为0。例如给出一个表达式x2-3*x-8,则系统将按x2-3*x-8=0进行运算;四、解方程1

108、62【例11】解代数方程:a*x2-b*x-6=0syms a b xsolve(a*x2-b*x-6) ans = 1/2/a*(b+(b2+24*a)(1/2) 1/2/a*(b-(b2+24*a)(1/2)即该方程有两个根: x1=1/2/a*(b+(b2+24*a)(1/2); x2=1/2/a*(b-(b2+24*a)(1/2) 四、解方程163习题:1解方程组:2.计算:其中:f(x)=sin(x) f(x)=1/cos(x)1643.1二维数据曲线图二维数据曲线图3.1.1绘制单根二维曲线绘制单根二维曲线plot函数的基本调用格式为:函数的基本调用格式为:plot(x,y)其中其

109、中x和和y为为长度相同长度相同的向量,分别用于存储的向量,分别用于存储x坐标和坐标和y坐标数据。坐标数据。3 3 MatlabMatlab作图作图165例例31在在0x2 区间内,绘制曲线区间内,绘制曲线y=2e0.5xcos(4x)程序如下:程序如下:x=0:pi/100:2*pi;y=2*exp(0.5*x).*cos(4*pi*x);plot(x,y)166例例32绘制曲线。绘制曲线。t=0:0.1:2*pi;x=t.*sin(3*t);y=t.*sin(t).*sin(t);plot(x,y);167plot函数最简单的调用格式是只包含一个输入参数:函数最简单的调用格式是只包含一个输入

110、参数:plot(x)在这种情况下,当在这种情况下,当x是实向量时,以该向量元素的是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条下标为横坐标,元素值为纵坐标画出一条连续曲连续曲线线,这实际上是绘制折线图。,这实际上是绘制折线图。1683.1.2绘制绘制多根多根二维曲线二维曲线1plot函数的输入参数是函数的输入参数是矩阵形式矩阵形式(1)当当x是向量,是向量,y是有一维与是有一维与x同维的矩阵时,同维的矩阵时,则绘制出多根不同颜色的曲线。曲线条数则绘制出多根不同颜色的曲线。曲线条数等于等于y矩阵的另一维数,矩阵的另一维数,x被作为这些曲线被作为这些曲线共同的横坐标。共同的横坐标。

111、(2)当当x,y是同维矩阵时,则以是同维矩阵时,则以x,y对应列元素对应列元素为横、纵坐标分别绘制曲线,曲线条数等为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。于矩阵的列数。169(3)对只包含一个输入参数的对只包含一个输入参数的plot函数,当输函数,当输入参数是入参数是实矩阵实矩阵时,则按列绘制每列元素时,则按列绘制每列元素值相对其下标的曲线,曲线条数等于输入值相对其下标的曲线,曲线条数等于输入参数矩阵的列数。参数矩阵的列数。当输入参数是当输入参数是复数矩阵复数矩阵时,则按列分别以元时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。素实部和虚部为横、纵坐标绘制多条曲线。1702含

112、多个输入参数的含多个输入参数的plot函数函数调用格式为:调用格式为:plot(x1,y1,x2,y2,xn,yn)(1)当输入参数都为向量时,当输入参数都为向量时,x1和和y1,x2和和y2,xn和和yn分别组成一组分别组成一组向量对向量对,每一,每一组向量对的组向量对的长度可以不同长度可以不同。每一向量对可。每一向量对可以绘制出一条曲线,这样可以在同一坐标以绘制出一条曲线,这样可以在同一坐标内绘制出多条曲线。内绘制出多条曲线。(2)当输入参数有矩阵形式时,配对的当输入参数有矩阵形式时,配对的x,y按按对应列元素为横、纵坐标分别绘制曲线,对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的

113、列数。曲线条数等于矩阵的列数。171例例33分析下列程序绘制的曲线。分析下列程序绘制的曲线。x1=linspace(0,2*pi,100);x2=linspace(0,3*pi,100);x3=linspace(0,4*pi,100);y1=sin(x1);y2=1+sin(x2);y3=2+sin(x3);x=x1;x2;x3;y=y1;y2;y3;plot(x,y,x1,y11)1723具有两个纵坐标标度的图形具有两个纵坐标标度的图形在在MATLAB中,如果需要绘制出具有不同纵坐标标中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用度的两个图形,可以使用plotyy绘图函数。调用绘图

114、函数。调用格式为:格式为:plotyy(x1,y1,x2,y2)其中其中x1,y1对应一条曲线,对应一条曲线,x2,y2对应另一条曲线。对应另一条曲线。横坐标的标度相同横坐标的标度相同,纵坐标有两个,左纵坐标用,纵坐标有两个,左纵坐标用于于x1,y1数据对,右纵坐标用于数据对,右纵坐标用于x2,y2数据对。数据对。173例例34用不同标度在同一坐标内绘制曲线用不同标度在同一坐标内绘制曲线y1=0.2e0.5xcos(4x)和和y2=2e0.5xcos(x)。程序如下:程序如下:x=0:pi/100:2*pi;y1=0.2*exp(0.5*x).*cos(4*pi*x);y2=2*exp(0.5

115、*x).*cos(pi*x);plotyy(x,y1,x,y2);1744图形保持图形保持holdon/off命令控制是保持原有图形还是刷新原命令控制是保持原有图形还是刷新原有图形,不带参数的有图形,不带参数的hold命令在两种状态之间进命令在两种状态之间进行切换。行切换。例例35采用图形保持,在同一坐标内绘制曲线采用图形保持,在同一坐标内绘制曲线y1=0.2e0.5xcos(4x)和和y2=2e0.5xcos(x)。程序如下:程序如下:x=0:pi/100:2*pi;y1=0.2*exp(0.5*x).*cos(4*pi*x);plot(x,y1)holdony2=2*exp(0.5*x).

116、*cos(pi*x);plot(x,y2);holdoff1753.1.3设置曲线样式设置曲线样式MATLAB提供了一些绘图选项,用于确定所绘曲提供了一些绘图选项,用于确定所绘曲线的线型、颜色和数据点标记符号,它们可以组线的线型、颜色和数据点标记符号,它们可以组合使用。例如,合使用。例如,“b.”表示表示蓝色点划线蓝色点划线,“y:d”表示表示黄色虚线并用菱形符标记数据点黄色虚线并用菱形符标记数据点。当选项省。当选项省略时,略时,MATLAB规定,线型一律用实线,颜色将规定,线型一律用实线,颜色将根据曲线的先后顺序依次。根据曲线的先后顺序依次。要设置曲线样式可以在要设置曲线样式可以在plot函

117、数中加绘图选项,函数中加绘图选项,其调用格式为:其调用格式为:plot(x1,y1,选项选项1,x2,y2,选项选项2,xn,yn,选项选项n)176例例36在同一坐标内,分别用不同线型和颜色绘制曲在同一坐标内,分别用不同线型和颜色绘制曲线线y1=0.2e0.5xcos(4x)和和y2=2e0.5xcos(x),标记两标记两曲线交叉点。曲线交叉点。程序如下:程序如下:x=linspace(0,2*pi,1000);y1=0.2*exp(0.5*x).*cos(4*pi*x);y2=2*exp(0.5*x).*cos(pi*x);k=find(abs(y1y2)1e2);%查找查找y1与与y2相

118、等点相等点(近似近似相等相等)的下标的下标x1=x(k);%取取y1与与y2相等点的相等点的x坐标坐标y3=0.2*exp(0.5*x1).*cos(4*pi*x1);%求求y1与与y2值值相等点的相等点的y坐标坐标plot(x,y1,x,y2,k:,x1,y3,bp);1773.1.4图形标注与坐标控制图形标注与坐标控制1图形标注图形标注有关图形标注函数的调用格式为:有关图形标注函数的调用格式为:title(图形名称图形名称)xlabel(x轴说明轴说明)ylabel(y轴说明轴说明)text(x,y,图形说明图形说明)legend(图例图例1,图例图例2,)函数中的说明文字,除使用标准的函

119、数中的说明文字,除使用标准的ASCII字符外,字符外,还可使用还可使用LaTeX格式的控制字符,这样就可以在格式的控制字符,这样就可以在图形上添加希腊字母、数学符号及公式等内容。图形上添加希腊字母、数学符号及公式等内容。例如,例如,text(0.3,0.5,sin(omegat+beta)将得将得到标注效果到标注效果sin(t+)。178例例37在在0x2 区间内,绘制曲线区间内,绘制曲线y1=2e0.5x和和y2=cos(4x),并给图形添加图形标注。并给图形添加图形标注。程序如下:程序如下:x=0:pi/100:2*pi;y1=2*exp(0.5*x);y2=cos(4*pi*x);plo

120、t(x,y1,x,y2)title(xfrom0to2pi);%加图形标题加图形标题xlabel(VariableX);%加加X轴说明轴说明ylabel(VariableY);%加加Y轴说明轴说明text(0.8,1.5,曲线曲线y1=2e0.5x);%在指定位置添在指定位置添加图形说明加图形说明text(2.5,1.1,曲线曲线y2=cos(4pix);legend(y1,y2)%加图例加图例1792坐标控制坐标控制axis函数的调用格式为:函数的调用格式为:axis(xminxmaxyminymaxzminzmax)axis函数功能丰富,常用的格式还有:函数功能丰富,常用的格式还有:axi

121、sequal:纵、横坐标轴采用等长刻度。纵、横坐标轴采用等长刻度。axissquare:产生正方形坐标系产生正方形坐标系(缺省为缺省为矩形矩形)。axisauto:使用缺省设置。使用缺省设置。axisoff:取消坐标轴。取消坐标轴。axison:显示坐标轴。显示坐标轴。180给坐标加网格线用给坐标加网格线用grid命令来控制。命令来控制。gridon/off命令控制是画还是不画网格命令控制是画还是不画网格线,不带参数的线,不带参数的grid命令在两种状态命令在两种状态之间进行切换。之间进行切换。给坐标加边框用给坐标加边框用box命令来控制。命令来控制。boxon/off命令控制是加还是不加边框

122、线,命令控制是加还是不加边框线,不带参数的不带参数的box命令在两种状态之间进命令在两种状态之间进行切换。行切换。181例例38在同一坐标中,可以绘制在同一坐标中,可以绘制3个同心圆,并加坐个同心圆,并加坐标控制。标控制。程序如下:程序如下:t=0:0.01:2*pi;x=exp(i*t);y=x;2*x;3*x;plot(y)gridon;%加网格线加网格线boxon;%加坐标边框加坐标边框axisequal%坐标轴采用等刻度坐标轴采用等刻度1823.1.5图形的可视化编辑图形的可视化编辑MATLAB在图形窗口中提供了可视化的图形编在图形窗口中提供了可视化的图形编辑工具,利用图形窗口菜单栏或

123、工具栏中的有关辑工具,利用图形窗口菜单栏或工具栏中的有关命令可以完成对窗口中各种图形对象的编辑处理。命令可以完成对窗口中各种图形对象的编辑处理。在图形窗口上有一个菜单栏和工具栏。菜单栏包在图形窗口上有一个菜单栏和工具栏。菜单栏包含含File、Edit、View、Insert、Tools、Window和和Help共共7个菜单项,工具栏包含个菜单项,工具栏包含11个命令按钮。个命令按钮。1833.1.6对函数对函数自适应采样自适应采样的绘图函数的绘图函数fplot函数的调用格式为:函数的调用格式为:fplot(fname,lims,tol,选项选项)其中其中fname为函数名,以字符串形式出现,为

124、函数名,以字符串形式出现,lims为为x,y的取值范围,的取值范围,tol为相对允许误差,其系统默认为相对允许误差,其系统默认值为值为2e3。选项定义与选项定义与plot函数相同。函数相同。例例39用用fplot函数绘制函数绘制f(x)=cos(tan(x)的曲线。的曲线。命令如下:命令如下:fplot(cos(tan(pi*x),0,1,1e4)1843.1.7图形窗口的分割图形窗口的分割subplot函数的调用格式为:函数的调用格式为:subplot(m,n,p)该函数将当前图形窗口分成该函数将当前图形窗口分成mn个绘图区个绘图区,即每行即每行n个,共个,共m行,区号按行优先编号,行,区号

125、按行优先编号,且选定第且选定第p个区为当前活动区。在每一个绘个区为当前活动区。在每一个绘图区允许以不同的坐标系单独绘制图形。图区允许以不同的坐标系单独绘制图形。例例310在图形窗口中,以子图形式同时绘制在图形窗口中,以子图形式同时绘制多根曲线。多根曲线。1853.2三维图形三维图形3.2.1三维曲线三维曲线plot3函数与函数与plot函数用法十分相似,其调用函数用法十分相似,其调用格式为:格式为:plot3(x1,y1,z1,选项选项1,x2,y2,z2,选项选项2,xn,yn,zn,选项选项n)其中每一组其中每一组x,y,z组成一组曲线的坐标参数,组成一组曲线的坐标参数,选项的定义和选项的

126、定义和plot函数相同。当函数相同。当x,y,z是同维是同维向量时,则向量时,则x,y,z对应元素构成一条三维曲对应元素构成一条三维曲线。当线。当x,y,z是同维矩阵时,则以是同维矩阵时,则以x,y,z对应对应列元素绘制三维曲线,曲线条数等于矩阵列元素绘制三维曲线,曲线条数等于矩阵列数。列数。186例例310绘制三维曲线。绘制三维曲线。程序如下:程序如下:t=0:pi/100:20*pi;x=sin(t);y=cos(t);z=t.*sin(t).*cos(t);plot3(x,y,z);title(Linein3DSpace);xlabel(X);ylabel(Y);zlabel(Z);gr

127、idon;1873.2.2三维曲面三维曲面1产生三维数据产生三维数据在在MATLAB中,利用中,利用meshgrid函数产生函数产生平面区域内的网格坐标矩阵。其格式平面区域内的网格坐标矩阵。其格式为:为:x=a:d1:b;y=c:d2:d;X,Y=meshgrid(x,y);语句执行后,矩阵语句执行后,矩阵X的每一行都是向量的每一行都是向量x,行数等于向量行数等于向量y的元素的个数,矩阵的元素的个数,矩阵Y的每一列都是向量的每一列都是向量y,列数等于向量列数等于向量x的元素的个数。的元素的个数。1882绘制三维曲面的函数绘制三维曲面的函数surf函数和函数和mesh函数的调用格式为:函数的调用

128、格式为:mesh(x,y,z,c)surf(x,y,z,c)一般情况下,一般情况下,x,y,z是维数相同的矩阵。是维数相同的矩阵。x,y是网格坐标矩阵,是网格坐标矩阵,z是网格点上的是网格点上的高度矩阵,高度矩阵,c用于指定在不同高度下的用于指定在不同高度下的颜色范围。颜色范围。189例例311绘制三维曲面图绘制三维曲面图z=sin(x+sin(y)x/10。程序如下:程序如下:x,y=meshgrid(0:0.25:4*pi);z=sin(x+sin(y)x/10;mesh(x,y,z);axis(04*pi04*pi2.51);此外,还有带等高线的三维网格曲此外,还有带等高线的三维网格曲面

129、函数面函数meshc和带底座的三维网和带底座的三维网格曲面函数格曲面函数meshz。其用法与其用法与mesh类似,不同的是类似,不同的是meshc还在还在xy平面上绘制曲面在平面上绘制曲面在z轴方向的轴方向的等高线,等高线,meshz还在还在xy平面上绘平面上绘制曲面的底座。制曲面的底座。1903.3图形修饰处理图形修饰处理3.2.1视点处理视点处理MATLAB提供了设置视点的函数提供了设置视点的函数view,其调用格式其调用格式为:为:view(az,el)其中其中az为方位角,为方位角,el为仰角,它们均以度为单位。为仰角,它们均以度为单位。系统缺省的视点定义为方位角系统缺省的视点定义为方

130、位角37.5,仰角仰角30。191图像处理图像处理1imread和和imwrite函数函数imread和和imwrite函数分别用于将图像文件读入函数分别用于将图像文件读入MATLAB工作空间,以及将图像数据和色图数据工作空间,以及将图像数据和色图数据一起写入一定格式的图像文件。一起写入一定格式的图像文件。MATLAB支持多支持多种图像文件格式,如种图像文件格式,如.bmp、.jpg、.jpeg、.tif等。等。图像处理与动画制作图像处理与动画制作1922image和和imagesc函数函数这两个函数用于图像显示。为了保证图像的显示效这两个函数用于图像显示。为了保证图像的显示效果,一般还应使用

131、果,一般还应使用colormap函数设置图像色图。函数设置图像色图。例例526有一图像文件有一图像文件flower.jpg,在图形窗口显示,在图形窗口显示该图像。该图像。程序如下:程序如下:x,cmap=imread(flower.jpg);%读取图像的数据读取图像的数据阵和色图阵阵和色图阵image(x);colormap(cmap);axisimageoff%保持宽高比并取消坐标轴保持宽高比并取消坐标轴193动画制作动画制作MATLAB提供提供getframe、moviein和和movie函数进行函数进行动画制作。动画制作。1getframe函数函数getframe函数可截取一幅画面信息函

132、数可截取一幅画面信息(称为动画中的一称为动画中的一帧帧),一幅画面信息形成一个很大的列向量。显然,一幅画面信息形成一个很大的列向量。显然,保存保存n幅图面就需一个大矩阵。幅图面就需一个大矩阵。1942moviein函数函数moviein(n)函数用来建立一个足够大的函数用来建立一个足够大的n列矩阵。该列矩阵。该矩阵用来保存矩阵用来保存n幅画面的数据,以备播放。之所幅画面的数据,以备播放。之所以要事先建立一个大矩阵,是为了提高程序运行以要事先建立一个大矩阵,是为了提高程序运行速度。速度。3movie函数函数movie(m,n)函数播放由矩阵函数播放由矩阵m所定义的画面所定义的画面n次,缺次,缺省

133、时播放一次。省时播放一次。195例例327绘制了绘制了peaks函数曲面并且将它绕函数曲面并且将它绕z轴旋转。轴旋转。程序如下程序如下X,Y,Z=peaks(30);surf(X,Y,Z)axis(3,3,3,3,10,10)axisoff;shadinginterp;colormap(hot);m=moviein(20);%建立一个建立一个20列大矩阵列大矩阵fori=1:20view(37.5+24*(i1),30)%改变视点改变视点m(:,i)=getframe;%将图形保存到将图形保存到m矩阵矩阵endmovie(m,2);%播放画面播放画面2次次196MATLAB文件操作文件操作1文

134、件的打开与关闭文件的打开与关闭2 文件的读写操作文件的读写操作3 数据文件定位数据文件定位1971文件的打开与关闭文件的打开与关闭1.1文件的打开文件的打开fopen函数的调用格式为:函数的调用格式为:fid=fopen(文件名,打开方式文件名,打开方式)其中文件名用字符串形式,表示待打开的数据文件。常见其中文件名用字符串形式,表示待打开的数据文件。常见的打开方式有:的打开方式有:r表示对打开的文件读数据,表示对打开的文件读数据,w表表示对打开的文件写数据,示对打开的文件写数据,a表示在打开的文件末尾添表示在打开的文件末尾添加数据。加数据。fid用于存储文件句柄值,句柄值用来标识该数据文件,用

135、于存储文件句柄值,句柄值用来标识该数据文件,其他函数可以利用它对该数据文件进行操作。其他函数可以利用它对该数据文件进行操作。198文件数据格式有两种形式,一是文件数据格式有两种形式,一是二进制二进制文件,二是文件,二是文本文本文件。在打开文件时需要进一步指定文件格文件。在打开文件时需要进一步指定文件格式类型,即指定是二进制文件还是文本文件。式类型,即指定是二进制文件还是文本文件。1992文件的关闭文件的关闭文件在进行完读、写等操作后,应及时关闭。关文件在进行完读、写等操作后,应及时关闭。关闭文件用闭文件用fclose函数,调用格式为:函数,调用格式为:sta=fclose(fid)该函数关闭该

136、函数关闭fid所表示的文件。所表示的文件。sta表示关闭文件操表示关闭文件操作的返回代码,若关闭成功,返回作的返回代码,若关闭成功,返回0,否则返回,否则返回1。2002文件的读写操作文件的读写操作2.1二进制文件的读写操作二进制文件的读写操作1读二进制文件读二进制文件fread函数可以读取二进制文件的数据,并将数函数可以读取二进制文件的数据,并将数据存入矩阵。其调用格式为:据存入矩阵。其调用格式为:A,COUNT=fread(fid,size,precision)其中其中A用于存放读取的数据,用于存放读取的数据,COUNT返回所读取返回所读取的数据元素个数,的数据元素个数,fid为文件句柄,

137、为文件句柄,size为可选项,为可选项,若不选用则读取整个文件内容,若选用则它的值若不选用则读取整个文件内容,若选用则它的值可以是下列值:可以是下列值:201(1)N表示读取表示读取N个元素到一个列向量。个元素到一个列向量。(2)Inf表示读取整个文件。表示读取整个文件。(3)M,N表示读数据到表示读数据到MN的矩阵中,数据按列的矩阵中,数据按列存放。存放。precision代表读写数据的类型代表读写数据的类型2022写二进制文件写二进制文件fwrite函数按照指定的数据类型将矩阵中的元素函数按照指定的数据类型将矩阵中的元素写入到文件中。其调用格式为:写入到文件中。其调用格式为:COUNT=f

138、write(fid,A,precision)其中其中COUNT返回所写的数据元素个数,返回所写的数据元素个数,fid为文为文件句柄,件句柄,A用来存放写入文件的数据,用来存放写入文件的数据,precision用于控制所写数据的类型,其形式与用于控制所写数据的类型,其形式与fread函数相函数相同。同。203例例1建立一数据文件建立一数据文件magic5.dat,用于存放,用于存放5阶魔阶魔方阵。方阵。程序如下:程序如下:fid=fopen(magic5.dat,w);cnt=fwrite(fid,magic(5),int32);fclose(fid);2042.2文本文件的读写操作文本文件的读

139、写操作1读文本文件读文本文件fscanf函数的调用格式为:函数的调用格式为:A,COUNT=fscanf(fid,format,size)其中其中A用以存放读取的数据,用以存放读取的数据,COUNT返回所返回所读取的数据元素个数。读取的数据元素个数。fid为文件句柄。为文件句柄。format用以控制读取的数据格式,由用以控制读取的数据格式,由%加上加上格式符组成,常见的格式符有格式符组成,常见的格式符有d,f,c,s。size为可选项,决定矩阵为可选项,决定矩阵A中数据的排列形式。中数据的排列形式。2052写文本文件写文本文件fprintf函数的调用格式为:函数的调用格式为:COUNT=fpr

140、intf(fid,format,A)其中其中A存放要写入文件的数据。先按存放要写入文件的数据。先按format指定指定的格式将数据矩阵的格式将数据矩阵A格式化,然后写入到格式化,然后写入到fid所指所指定的文件。格式符与定的文件。格式符与fscanf函数相同。函数相同。2063数据文件定位数据文件定位MATLAB提供了与文件定位操作有关的函数提供了与文件定位操作有关的函数fseek和和ftell。fseek函数用于定位文件位置指针,函数用于定位文件位置指针,其调用格式为:其调用格式为:status=fseek(fid,offset,origin)其中其中fid为文件句柄,为文件句柄,offset表示位置指针相对表示位置指针相对移动的字节数,移动的字节数,origin表示位置指针移动的参表示位置指针移动的参照位置。若定位成功,照位置。若定位成功,status返回值为返回值为0,否则,否则返回值为返回值为1。207ftell函数返回文件指针的当前位置,其调用格式函数返回文件指针的当前位置,其调用格式为:为:position=ftell(fid)返回值为从文件开始到指针当前位置的字节数。返回值为从文件开始到指针当前位置的字节数。若返回值为若返回值为1表示获取文件当前位置失败。表示获取文件当前位置失败。208E N D209

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 文学/艺术/历史 > 人文/社科

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号