教案-MATLAB软件学习资料_第1页
教案-MATLAB软件学习资料_第2页
教案-MATLAB软件学习资料_第3页
教案-MATLAB软件学习资料_第4页
教案-MATLAB软件学习资料_第5页
已阅读5页,还剩590页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB软件MATLAB程序设计与应用教学进度表周内容(2节/周,32学时)1第1章MATLAB系统环境第1章习题3、5(至第2周交)讲课:1.5学时实验:0.5学时2第2章MATLAB数据及其运算(一)实验一MATLAB运算基础(至第3周交)讲课:1.5学时(2.1~2.4)操作:0.5学时3第2章MATLAB数据及其运算(二)讲课:1学时(2.5~2.6)实验:1学时4第3章MATLAB矩阵分析与处理(一)实验二MATLAB矩阵分析与处理(至第5周交)讲课:1学时实验:1学时5第3章MATLAB矩阵分析与处理(二)实验二MATLAB矩阵分析与处理(至第5周交)实验:2学时6第4章MATLAB程序设计(一)实验三选择结构程序设计(至第8周交)讲课:1.5学时(4.1~4.2)实验:0.5学时7第4章MATLAB程序设计(二)实验四循环结构程序设计(至第8周交)讲课:1学时(4.3~4.4)实验:1学时8第4章MATLAB程序设计(三)实验五函数文件(至第8周交)实验:2学时9第5章MATLAB绘图(一)实验六高层绘图操作(至第11周交)讲课:1.5学时(5.1)实验:0.5学时10第5章MATLAB绘图(二)实验七低层绘图操作(至第11周交)讲课:1.5学时(5.2~5.4)实验:0.5学时11第5章MATLAB绘图(三)讲课:1学时(5.5)实验:1学时12第6章MATLAB数值计算(一)实验八数据处理与多项式计算(至第13周交)讲课:1.5学时(6.1~6.2)实验:0.5学时13第6章MATLAB数值计算(二)实验九数值微积分与方程数值求解(至第13周交)讲课:1学时(6.3~6.7)实验:1学时14第7章MATLAB符号计算(一)实验十符号计算基础与符号微积分(至第15周交)讲课:1学时(7.1~7.3)实验:1学时15第7章MATLAB符号计算(二)实验十一级数与方程符号求解(至第15周交)讲课:学时(7.4~7.5)实验:学时16考试(考核方式:考查,开卷考试)实验报告格式取文件名为:学号后2位姓名标题.doc文件内容格式如下:第1章MATLAB系统环境 1.1MATLAB概貌 1.2MATLAB环境的准备 1.3MATLAB操作界面 1.4MATLAB帮助系统

自上世纪80年代以来,出现了科学计算语言,亦称数学软件。 MATLAB Mathematica Mathcad Maple LINDO LINGOMATLAB概貌p3MATLAB是MATrixLABoratory(矩阵实验室)的缩写。1984年由MathWorks公司推出,现已成为国际公认的优秀的工程应用开发环境,是影响最大,流行最广的科学计算语言。MATLAB的发展版本编号 发布时间MATLAB1.0 1984MATALB2 1986MATLAB3 1987MATLAB3.5 1990MATLAB4 1992

版本编号 建造编号 发布时间MATLAB4.2c R7 1994MATLAB5.0 R8 1996MATLAB5.1 R9 1997MATLAB5.1.1 R9.1 MATLAB5.2 R10 1998MATLAB5.2.1 R10.1 MATLAB5.3 R11 1999MATLAB5.3.1 R11.1 MATLAB6.0 R12 2000MATLAB6.1 R12.1 2001MATLAB6.5 R13 2002MATLAB6.5.1 R13SP1 MATLAB6.5.2 R13SP2 MATLAB7.0 R14 2004MATLAB7.0.1 R14SP1 MATLAB7.0.4 R14SP2 MATLAB7.1 R14SP3 2005

版本编号 建造编号 发布时间MATLAB7.2 R2006a 2006MATLAB7.3 R2006b 2006MATLAB7.4 R2007a 2007MATLAB7.5 R2007b 2007.10MATLAB7.6 R2008a 2008.3MATLAB7.7 R2008b 2008.10MATLAB7.8 R2009a 2009.3MATLAB7.9 R2009b 2009.10MATLAB7.10 R2010a 20MATLAB7.11 R2010b 2010.10从MATLAB4.2c开始,每个版本增加了一个建造编号;例如MATLAB7.6的建造编号是R2008a。说明MATLAB7.6与MATLAB2008a是等同的;对于建造编号,正规化以后,每年出两个版本。一般来说。a是测试版,b是正式版。a是前半年出,b是后半年出。

教材采用MATLAB7.0(R14 ,2004)实验室采用MATLAB7.8(R2009a,2009.3,汉化)MATLAB的主要功能p4(1)数值计算和符号计算功能(2)绘图功能(3)语言体系(4)MATLAB工具箱

(1)数值计算和符号计算功能MATLAB以矩阵作为数据操作的基本单位,还提供了十分丰富的数值计算函数。MATLAB先后和著名的符号计算语言Maple与MuPAD(从MATLAB2008b开始使用MuPAD)相结合,使得MATLAB具有符号计算功能。

(2)绘图功能可以绘制二维和三维图形。MATLAB提供了两个层次的绘图操作:对图形句柄进行的低层绘图操作;建立在低层绘图操作之上的高层绘图操作。

(3)语言体系MATLAB具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。MATLAB是解释性语言,不能脱离MATLAB环境而独立运行。

(4)MATLAB工具箱MATLAB包含两部分内容:基本部分和各种可选的工具箱。MATLAB工具箱分为两大类:功能性工具箱和学科性工具箱。

基本部分构成MATLAB的核心内容,也是使用和构造工具箱的基础。功能性工具箱主要用来扩充其符号计算功能、可视建模仿真功能及文字处理功能等。

学科性工具箱ControlSystemToolbox 控制系统工具箱SignalProcessingToolbox 信号处理工具箱NeuralNetworkToolbox 神经网络工具箱OptimizationToolbox 最优化工具箱FinancialToolbox 金融工具箱StatisticsToolbox 统计学工具箱开始→工具箱

MATLAB具备很强的开放性除内部函数外,所有MATLAB基本文件和各工具箱文件都是可读、可改的源文件,用户可通过对源文件的修改或加入自己编写的文件去构成新的专用工具箱。MATLAB功能演示p5绘曲线图绘制函数y=2-|x|和y=sinx的曲线。在命令窗口逐条输入以下命令:x=-2*pi:pi/180:2*pi;plot(x,2.^(-abs(x)),':',x,sin(x));

求方程的根求方程2x5-3x3+71x2-9x+13=0的全部根。p=[2,0,-3,71,-9,13];x=roots(p)x=-3.49141.6863+2.6947i1.6863-2.6947i0.0594+0.4251i0.0594-0.4251i解线性方程组法1:调用求逆矩阵函数inva=[2,3,-1;8,2,3;45,3,9]; %系数矩阵b=[2;4;23]; %常数项列向量x=inv(a)*bx=0.55310.2051-0.2784

法2:左除运算a=[2,3,-1;8,2,3;45,3,9]; %系数矩阵b=[2;4;23]; %常数项列向量x=a\bx=0.55310.2051-0.2784

法3:符号计算symsx1x2x3[x1,x2,x3]=solve(2*x1+3*x2-x3-2,...8*x1+2*x2+3*x3-4,...45*x1+3*x2+9*x3-23)x1=151/273x2=8/39x3=-76/273

求积分法1:调用quad>>quad('x.*log(1+x)',0,1)ans=0.2500法2:符号计算>>int('x*log(1+x)',0,1)ans=1/4MATLAB环境的准备p7MATLAB的安装安装MATLAB系统,需运行系统自带的安装程序setup.exe,可以按照安装提示依次操作。MATLAB的启动与退出p8启动有3种常见方法:(1)使用Windows“开始”菜单。(2)运行MATLAB(文件夹)系统启动程序matlab.exe。(3)利用(桌面)快捷方式。退出也有3种常见方法:(1)在主窗口“文件”菜单中选择“退出MATLAB”。(2)在命令窗口中键入Exit或Quit命令。(3)单击主窗口右上角的关闭按钮。MATLAB操作界面p9主窗口是MATLAB的主要工作界面。主窗口除了嵌入一些子窗口外,还主要包括菜单栏和工具栏。

菜单栏包括7个菜单项:文件 实现有关文件的操作编辑 用于命令窗口的编辑操作调试 用于程序调试并行桌面 用于设置MATLAB集成环境的显示方式(桌面)窗口 用于关闭所有打开的编辑器窗口或选择活动窗口帮助 用于提供帮助信息。工具栏提供了一些命令按钮和一个当前路径列表框。这些命令按钮有对应的菜单命令,但比菜单命令使用起来更快捷、方便。命令窗口是MATLAB的交互窗口,用于输入命令并显示除图形以外的所有执行结果。>> 为命令提示符表示MATLAB处于准备状态。在命令提示符后键入命令并回车后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。窗口右上角有4个按钮(从左至右):第1个将窗口收到左(或右)边成标签第2个控制窗口大小第3个使窗口内嵌/浮动在工作界面内/外第4个关闭窗口

一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。例>>p=15,m=35p=15m=35>>p=15;m=35m=35

... 为续行符若一条命令很长,可以输入一行之后加上续行符并按下回车键,然后接着下一行继续输入命令的其他部分。一条命令可占多行。表1.1命令行编辑中常用的控制及其功能p10键名功能↑↓←→PgUpPgDnHomeEndDelBackSpaceEsc前寻式调回已输入过的命令后寻式调回已输入过的命令左移光标右移光标前寻式翻滚一页后寻式翻滚一页光标移到行首光标移到行尾删除光标右边字符(删除键)删除光标左边字符(返消键)删除当前行(取消键) 工作空间窗口p10工作空间是用于存储各种变量和结果的内存空间。在该窗口中显示工作空间中所有的变量,可对变量进行观察、编辑、保存和删除。当前目录窗口和搜索路径p11当前目录指运行文件时的工作目录。只有在当前目录或搜索路径下的文件、函数可以被运行或调用。在该窗口中可以显示或改变当前目录,还可以显示当前目录下的文件并提供搜索功能。

cd命令:将用户目录设置成当前目录。例将用户目录e:\matlab7\work设置为当前目录。在命令窗口输入:>>cde:\matlab7\work

MATLAB的搜索路径当用户在命令窗口输入一条命令后,MATLAB按照一定次序寻找相关的文件。基本的搜索过程是: 检查该命令……是不是一个变量。是不是一个内部函数。是否当前目录下的M文件。是否搜索路径中其他目录下的M文件。

用户可以将自己的工作目录列入搜索路径,从而将用户目录纳入MATLAB系统统一管理。设置搜索路径的方法有:(1)用path命令设置搜索路径。例将用户目录e:\matlab7\work加到搜索路径下。在命令窗口输入:>>path(path,'e:\matlab7\work')

(2)用对话框设置搜索路径文件→设置路径(或在命令窗口执行pathtool命令)将出现搜索路径设置对话框。通过“添加文件夹”或“添加包含子文件夹”按钮将指定路径添加到搜索路径列表中。在修改完搜索路径后,则需要保存搜索路径。pathdef.m保存搜索路径的信息,通过修改该文件也可以修改搜索路径。命令历史窗口该窗口中保留自安装起所有用过的命令的历史记录,且标明使用时间,从而方便用户查询。通过双击命令可以再次运行历史命令。要清除这些历史记录,可选择“编辑”菜单中的“清空历史命令”。开始菜单p13在主窗口左下角还有一个“开始”按钮。单击该按钮会弹出一个菜单,选择其中的命令可以快速访问各种工具箱和查阅各种资源。MATLAB帮助系统p13帮助命令p14包括help、lookfor以及模糊查询。1.help命令在命令窗口中直接输入:help显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。help加函数名显示该函数的帮助说明。

2.lookfor命令help只搜索出那些关键字完全匹配的结果。lookfor只对M文件的第一行进行关键字搜索。若在lookfor命令加上-all选项,则可对M文件进行全文搜索。(列出的内容很长,可用Ctrl+C终止)

3.模糊查询输入命令的前几个字母,然后按Tab键。系统就会列出所有以这几个字母开头的命令。帮助窗口p15进入帮助窗口可通过3种方法:单击MATLAB主窗口工具栏中的eq\o\ac(○,?)按钮。在命令窗口中输入helpwin、helpdesk或doc。选择Help菜单中MATLABHelp命令。演示系统在帮助窗口中选择演示系统(Demos)选项卡,然后在其中选择相应的演示模块。在命令窗口输入Demos。选择主窗口Help菜单中的Demos子菜单,打开演示系统。第2章MATLAB数据及其运算2.1MATLAB数据的特点2.2变量及其操作2.3MATLAB矩阵的表示2.4MATLAB数据的运算2.5字符串2.6结构数据和单元数据MATLAB数据的特点p17矩阵是MATLAB最基本、最重要的数据对象。MATLAB的大部分运算或命令都是在矩阵(复数域上)运算的意义下执行的。标量对应仅含一个元素的矩阵。

数值数据双精度数 占64位,转换函数double单精度数 占32位,转换函数single带符号整数 转换函数int8,int16,int32无符号整数 转换函数uint8,uint16,uint32字符数据 转换函数char结构体类型 (Structure)单元类型 (Cell)逻辑型 非0为true,0为false

变量及其操作变量与赋值1.变量命名以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。区分字母的大小写。MATLAB提供的标准函数名以及命令名必须用小写字母。

2.赋值语句(1)变量=表达式(2)表达式(值赋给预定义变量ans)其中,表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。

计算表达式的值p18将的计算结果赋给变量x,然后显示出结果。>>x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i)x=1.1980+0.6572i其中,pi和i都是MATLAB预先定义的变量,分别代表圆周率π和虚数单位。

3.预定义变量p18常用的预定义变量及其含义预定义变量含义ansepspii,jinf,InfNaN,nannarginnargoutrealmaxrealminlasterrlastwar默认赋值变量机器零阈值2.2204e-016π近似值虚数单位无穷大,如1/0的结果非数,如0/0,inf/inf的结果函数输入参数个数函数输出参数个数最大正实数最小正实数存放最新的错误信息存放最新的警告信息预定义变量有特定的含义,应尽量避免重新赋值。i=2 %对预定义变量重新赋值2*icleari %恢复预定义变量2*ii=2ans=4ans=0+2.0000i

变量的管理p191.内存变量的显示与删除显示工作空间中驻留的变量名清单及信息命令:who %显示变量名清单whos %显示变量名清单及信息删除工作空间中的变量命令:clear变量名

工作空间窗口专门用于内存变量的管理。在该窗口中显示所有内存变量的属性。当选中某些变量后,再单击Delete按钮,将删除这些变量。双击变量后,将进入变量编辑器。可以观察变量中的具体元素,也可修改具体元素。输入较大矩阵时,可采用变量编辑器。

2.内存变量文件利用MAT文件可以把当前工作空间中的一些有用变量长久地保留下来,扩展名是.mat。MAT文件的生成和装入,常用格式为:save文件名[变量名表][-append][-ascii]load文件名[变量名表][-ascii]文件名可带路径,不需带扩展名.mat,默认对.mat文件进行操作。变量名表变量名以空格分隔。省略时,保存或装入全部变量。-ascii选项使文件以ASCII格式处理,省略时文件将以二进制格式处理。-append选项使变量追加到MAT文件中。数据的输出格式p20用十进制数表示一个常数,可采用日常记数法和科学记数法。在一般情况下,内部每一个数据元素都是用双精度数来表示和存储的。设置或改变数据输出格式format命令的格式为:format格式符格式符决定数据的输出格式控制数据输出格式格式符及其含义格式符含义short(默认)小数点后4位,不超过7位有效数字。大于1000的实数用5位有效数字的科学记数法long15位有效数字shorte5位有效数字科学记数法longe15位有效数字科学记数法shortg从short和shorte选择最佳方式longg从long和longe选择最佳方式rat近似有理数表示hex十六进制表示+正数、负数、零分别用+、-、空格表示bank银行格式,元、角、分表示compact输出变量之间无空行loose输出变量之间有空行可用Helpformat查询

例输出格式format4/3 %当前输出格式formatlong %15位有效数字形式输出4/3formatrat %近似有理数表示4/3formatcompact %输出变量之间没有空行4/3formatloose %输出变量之间有空行4/3formatshort %short为默认输出格式ans=1.3333ans=1.333333333333333ans=4/3ans=4/3ans=4/3矩阵的表示p21表矩阵操作函数及其含义函数名含义eyeoneslinspacesub2indind2subsizelengthreshapeend[]单位矩阵全1矩阵生成行向量下标转换成序号序号转换成下标给出矩阵的行数和列数给出矩阵行数和列数中较大者矩阵重排预定义变量,某一维末尾下标空矩阵矩阵的建立1.直接输入法从键盘直接输入矩阵的元素。方法如下:将矩阵的元素用方括号括起来,按输入元素;同一行的元素间用空格或逗号分隔;不同行的元素间用分号(或回车)分隔。例>>A=[1,2,3;456;7,89]A=123456789

2.利用M文件建立矩阵对于比较大且复杂的矩阵,可以专门建立一个M文件。利用M文件建立矩阵启动文本编辑器,输入:MYMAT=[101,102,103,104,105; 201,202,203,204,205; 301,302,303,304,305]存盘(文件名为mymatrix.m)。在命令窗口中输入mymatrix,即运行该M文件,就建立一个名为MYMAT的矩阵。

3.建立大矩阵(矩阵拼接)大矩阵可由方括号中的小矩阵或向量建立。>>A=[1,2;3,4]A=1234>>eye(2)ans=1001>>ones(2)ans=1111>>C=[A,eye(2),ones(2),A]C= 1 2 1 0 1 1 1 2 3 4 0 1 1 1 3 4冒号表达式用冒号表达式产生行向量,一般格式:e1:e2:e3其中e1为初始值,e2为步长,e3为终止值。用linspace函数产生行向量。调用格式:linspace(a,b,n)其中a和b是第一个和最后一个元素,n是元素总数。矩阵的拆分1.矩阵元素通过下标引用矩阵的元素,例如>>A=[1,2,3;4,5,6]A=123456>>A(2,3)ans=6>>A(2,2)=22;>>AA=1234226>>A(4,5)=10;>>AA=1230042260000000000010

采用矩阵元素的序号来引用矩阵元素。元素的序号是相应元素在内存中的排列顺序。在MATLAB中,矩阵按列存储,先第一列,再第二列,依次类推。>>A=[1,2,3;4,5,6]A=123456>>A(3)ans=2>>A(5)ans=3>>A(8)???AttemptedtoaccessA(8);indexoutofboundsbecausenumel(A)=6.numel(A)返回A中元素个数。

序号(Index)与下标(Subscript)一一对应。以m×n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。互转换关系用sub2ind和ind2sub函数求得。A=ones(3,4)size(A) %给出矩阵的行数和列数sub2ind(size(A),1,2) %下标(1,2)转换为序号[i,j]=ind2sub(size(A),3)%序号转换为下标length(A) %给出矩阵行数和列数中较大者A=111111111111ans=34ans=4i=3j=1ans=4

reshape(A,m,n) 在矩阵总元素保持不变的前提下,将矩阵重新排成m×n矩阵。>>x=[1,2,3,4,5,6,7,8,9,10,11,12];>>y=reshape(x,3,4)y=147102581136912>>z=reshape(y,2,7)???Errorusing==>reshapeToRESHAPEthenumberofelementsmustnotchange.

2.矩阵拆分(1)利用冒号表达式获得子矩阵已知A为矩阵A(:,j)第j列全部元素;A(i,:)第i行的全部元素;A(i,j)第i行、第j列的元素;A(i:i+m,:)第i~i+m行的全部元素;A(:,k:k+m)第k~k+m列的全部元素;A(i:i+m,k:k+m)第i~i+m行内,并在第k~k+m列中的所有元素;A(:)将每一列元素堆叠起来,成为一个列向量。end表示某一维的末尾元素下标。A(end,:)最后一行A(:,end)最后一列

(2)利用空矩阵删除矩阵的元素给变量X赋空矩阵的语句:X=[]注意,X=[]与clearX不同:clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。MATLAB数据的运算p26算术运算1.基本算术运算MATLAB的基本算术运算有:+ 加- 减* 乘/ 右除\ 左除^ 乘方注意,运算是在矩阵意义下进行的。

(1)矩阵加减运算假定矩阵A和B,则A+B和A-B实现矩阵的加减运算。运算规则是:若A和B的维数相同,则可以执行矩阵的加减运算,A和B的相应元素相加减。若A与B的维数不相同,将给出错误信息。注意,A、B均不是标量。

(2)矩阵乘法若A为m×n矩阵,B为n×p矩阵,则C=A*B为m×p矩阵。

(3)矩阵除法有两种矩阵除法运算:\ 左除/ 右除如果A矩阵是非奇异方阵,则A\B和B/A运算可以实现。A\B等效于inv(A)*BB/A等效于B*inv(A)

对于含有标量的运算,两种除法运算的结果相同。如3/4和4\3有相同的值,都等于0.75。又如设a=[10.5,25],则a/5=5\a=[2.10005.0000]。对于矩阵运算,一般A\B≠B/A。

(4)矩阵的乘方一个矩阵的乘方运算可以表示成A^x要求A为方阵,x为标量。

2.点运算有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。点运算符有.* 点乘./ 点右除.\ 点左除.^ 点乘方两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维数相同。

3.MATLAB常用数学函数p29函数的自变量规定为矩阵变量。运算法则是将函数逐项作用于矩阵的元素上。结果是一个与自变量同维数的矩阵。常用数学函数及其含义p29函数名含义三角函数sqrtloglog10log2exppow2absanglerealimagconjremmodfixfloorceilroundsigngcdlcm略平方根函数自然对数函数常用对数函数以2为底的对数函数自然指数函数2的幂绝对值函数复数的幅角复数的实部复数的虚部复数共轭运算求余数或模运算模运算向零方向取整不大于自变量的最大整数不小于自变量的最小整数四舍五入到最邻近的整数符号函数最大公因子最小公倍数

函数使用说明:三角函数以弧度为单位计算。abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值。>>abs(-10)ans=10>>abs(3+4i)ans=5>>abs('abc')ans=979899

用于取整的函数有fix 向0方向取整floor 向-∞方向取整ceil 向+∞方向取整round 四舍五入到最邻近的整数rem(x,y)和mod(x,y)要求x,y必须为相同大小的实矩阵或为标量。rem 求余数或模运算mod 模运算当y≠0时rem(x,y)=x-y.*fix(x./y)mod(x,y)=x-y.*floor(x./y)当y=0时rem(x,0)=NaN(非数)mod(x,0)=x 关系运算p306种关系运算符:< 小于<= 小于或等于> 大于>= 大于或等于== 等于~= 不等于

运算法则:两个标量的比较若关系成立,结果为1,否则为0。两个同维数矩阵的比较对相同位置的元素比较。标量与矩阵的比较标量与矩阵的每一个元素比较。建立5阶方阵,判断A的元素是否能被3整除。A=[24,35,13,22,63;23,39,47,80,80;... 90,41,80,29,10;45,57,85,62,21;... 37,19,31,88,76]P=rem(A,3)==0 %判断元素是否被3整除A=24351322632339478080904180291045578562213719318876P=1000101000100001100100000逻辑运算p31逻辑运算符:& 与| 或~ 非运算法则:(1)在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示。(2)a和b是两个标量a&ba,b全为非零时,结果为1,否则为0。a|ba,b中只要有一个非零,结果为1,否则为0。~a当a是零时,结果为1;当a非零时,结果为0。

(3)两个运算量是同维矩阵相同位置上的元素按标量规则逐个进行。(4)一个是标量,另一个是矩阵标量与矩阵中的每个元素之间按标量规则逐个进行。

(5)逻辑非是单目运算符,也服从矩阵运算规则。(6)在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。在[0,3π]区间,求y=sinx的值。要求:①消去负半波,即(π,2π)内的函数值置0。②和内取均值为。%方法1x=0:pi/100:3*pi;y=sin(x);y1=(x<pi|x>2*pi).*y; %①消去负半波q= (x>pi/3&x<2*pi/3)|... (x>7*pi/3&x<8*pi/3);qn=~q;y2=q*sin(pi/3)+qn.*y1; %处理②plot(x,[y;y1;y2]);%方法2x=0:pi/100:3*pi;y=sin(x);y1=(y>=0).*y; %①消去负半波p=sin(pi/3);y2=(y>=p)*p+(y<p).*y1; %处理②plot(x,[y;y1;y2]);

关系逻辑运算函数及其含义p32函数名含义allanyexistfindisemptyisglobalisinfisnanisfiniteissparseisstrxor向量的所有元素非0,结果为1向量中任何一个非0,结果为1变量在工作空间,结果为1找出矩阵中非0元素的位置变量是空矩阵,结果为1变量是全局变量,结果为1元素是±∞,对应位置取1元素不是一个数,对应位置取1元素值有限,对应位置取1变量是稀疏矩阵,结果为1变量是字符串,结果为1两矩阵对应元素同为0或非0,对应位置取0建立矩阵A,然后找出在[10,20]区间的元素的位置(元素序号)。>>A=[4,15,-45,10,6;56,0,17,-45,0]A=415-4510656017-450>>find(A>=10&A<=20)ans=367字符串p33字符串是用单撇号括起来的字符序列。将字符串当作一个行向量,每个元素对应一个字符,其标识方法和数值向量相同。可以建立多行字符串矩阵。

字符串是以ASCII码形式存储的。abs和double函数都可以用来获取字符串矩阵所对应的ASCII码数值矩阵。相反,char函数可以把ASCII码矩阵转换为字符串矩阵。建立一个字符串向量,然后对该向量做如下处理:取第1~5个字符组成的子字符串。将字符串倒过来重新排列。将字符串中的小写字母变成相应的大写字母,其余字符不变。统计字符串中小写字母的个数。clc;ch='ABc123d4e56Fg9';subch=ch(1:5)%取子字符串revch=ch(end:-1:1)%将字符串倒排k=find(ch>='a'&ch<='z')%找小写字母的位置ch(k)='A'+(ch(k)-'a') %小写字母变成大写chchar(ch) %ASCII码矩阵转换为字符矩阵length(k) %统计小写字母的个数char([0:29;30:59;60:89;90:119;120:149])subch=ABc12revch=9gF65e4d321cBAk=37913ch=ABC123D4E56FG9ch=ABC123D4E56FG9ans=ABC123D4E56FG9ans=4ans=



!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~??????????????????????

函数eval,其调用格式为:eval(t)其中t为字符串。作用:把字符串的内容作为对应的MATLAB语句来执行。字符串处理函数及其含义函数名含义setstrcharmat2strnum2strint2strstr2numstrcatstrcmpabs将ASCII码值转换成字符同上,将代替setstr将矩阵转换成字符串将数值转换成字符串将整数转换成字符串将字符串转换成数值用于字符串的连接用于字符串的比较将字符转换成ASCII码

(1)若字符串中含有单撇号,则该撇号用两个单撇号表示。(2)某些情况下用字符串向量表示,即用[]括起来。disp('I''mateacher.')f=70;c=(f-32)/1.8;disp(['Roomtemperatureis',...num2str(c),'degreesC.'])I'mateacher.Roomtemperatureis21.1111degreesC.结构数据和单元数据p34结构数据1.结构矩阵的建立与引用结构矩阵的元素可以是不同的数据类型,它能将一组具有不同属性的数据纳入到一个统一的变量名下进行管理。建立结构矩阵可采用给结构成员赋值的办法。格式为:结构矩阵名.成员名=表达式其中表达式应理解为矩阵表达式。

例建立含有3个元素的结构矩阵a(1).x1=10;a(1).x2='liu';a(1).x3=[11,21;34,78];a(2).x1=12;a(2).x2='wang';a(2).x3=[34,191;27,578];a(3).x1=14;a(3).x2='cai';a(3).x3=[13,890;67,231];a(2).x3 %引用矩阵元素a(2)的成员x3a(2) %引用矩阵元素a(2)a %引用结构矩阵aans=3419127578ans=x1:12x2:'wang'x3:[2x2double]a=1x3structarraywithfields:x1x2x3

2.结构成员的修改p35可以根据需要增加或删除结构的成员。给a中任意一个元素增加成员x4:a(1).x4='410075';但其他成员均为空矩阵,可以使用赋值语句给它赋确定的值。用rmfield函数删除结构的成员。a=rmfield(a,'x4');a(1).x1=10;a(1).x2='liu';a(1).x3=[11,21;34,78];a(2).x1=12;a(2).x2='wang';a(2).x3=[34,191;27,578];a(3).x1=14;a(3).x2='cai';a(3).x3=[13,890;67,231];a(1).x4='410075'a=rmfield(a,'x4')a=1x3structarraywithfields:x1x2x3x4a=1x3structarraywithfields:x1x2x3

3.关于结构的函数结构的函数及其含义p36函数名含义structgetfieldrmfieldisstructfieldnamessetfieldisfield建立或转换为结构矩阵获取结构成员的内容删除结构成员是结构时,值为真获取结构成员名设定结构成员的内容成员在结构中时,值为真单元数据p36单元矩阵的各个元素是不同类型的数据,用带有大括号下标的形式引用单元矩阵元素。1.单元矩阵的建立与引用建立单元矩阵和一般矩阵相似,只是矩阵元素用大括号括起来。

例建立单元矩阵。b={10,'liu',[11,21;34,78];... 12,'wang',[34,191;27,578];... 14,'cai',[13,890;67,231]};bb{3,3}b{3,3}=10;b{3,3}bb(4) %第4个元素b{4}b=[10]'liu'[2x2double][12]'wang'[2x2double][14]'cai'[2x2double]ans=1389067231ans=10b=[10]'liu'[2x2double][12]'wang'[2x2double][14]'cai'[10]ans='liu'ans=liu

2.关于单元的函数单元的函数及其含义p37函数名含义celldispnum2cellcell2structiscellcellplotdealstruct2cell显示单元矩阵内容把数字矩阵转换为单元矩阵把单元矩阵转换为结构矩阵是单元矩阵时,值为真显示单元矩阵的图形描述把输入分配给输出把结构矩阵转换为单元矩阵第3章MATLAB矩阵分析与处理3.1特殊矩阵3.2矩阵结构变换3.3矩阵求逆与线性方程组求解3.4矩阵求值3.5矩阵的特征值与特征向量3.6矩阵的超越函数3.1特殊矩阵p393.1.1通用的特殊矩阵表产生通用特殊矩阵的函数及其含义p39函数名含义zeros全0矩阵(零矩阵)ones全1矩阵(幺矩阵)eye单位矩阵rand0~1间均匀分布的随机矩阵randn均值为0,方差为1的标准正态分布随机矩阵分别建立3×3、3×2和与矩阵A同样大小的零矩阵p39zeros(3)zeros(3,2)A=[123;456] %给出一个2×3阶矩阵Azeros(size(A)) %产生与A同样大小的零矩阵ans=000000000ans=000000A=123456ans=000000建立随机矩阵p40在区间[20,50]内均匀分布的5阶随机矩阵。均值为0.6、方差为0.1的5阶正态分布随机矩阵。>>x=20+(50-20)*rand(5)x=44.441722.926224.728424.256639.672247.173828.354949.117832.652821.071423.809636.406448.715047.472145.473947.401348.725234.561343.766248.019838.970848.946744.008448.784840.3621>>y=0.6+sqrt(0.1)*randn(5)y=0.92720.88091.05490.56770.59050.82990.23730.70280.52360.54790.50400.26200.36130.70090.79850.69290.34401.03330.69890.94570.3510-0.33110.05880.32650.95083.1.2用于专门学科的特殊矩阵p40表产生专门学科特殊矩阵的函数及其含义函数名含义magic(n)求魔方矩阵vander(V)生成指定向量为V的范得蒙矩阵hilb(n) 生成希尔伯特矩阵invhilb(n)求n阶希尔伯特矩阵的逆toeplitz(x,y)生成托普利兹矩阵toeplitz(x)用向量x生成一个对称的托普利兹矩阵compan(p)生成伴随矩阵pascal(n)生成一个n阶帕斯卡矩阵

(1)魔方矩阵每行、每列及两条对角线上的元素和都相等。magic(n) 求n阶魔方矩阵,其元素由1,2,3,…,n2共n2个整数组成。将101~125等25个数填入一个5行5列的表格中,使其每行每列及对角线的和均为565。>>M=100+magic(5)M=117124101108115123105107114116104106113120122110112119121103111118125102109

(2)范得蒙(Vandermonde)矩阵最后一列全为1;倒数第二列为一个指定的向量;其他各列是其后列与倒数第二列的点乘积。vander(V) 生成指定向量为V的范得蒙矩阵。例>>A=vander([1;2;3;5])A=11118421279311252551>>B=vander([1;2;3;5]')B=11118421279311252551

(3)希尔伯特矩阵元素hilb(n) 生成n阶希尔伯特矩阵。条件数很差,使用一般方法求逆会因为原始数据的微小扰动而产生不可靠的计算结果。invhilb(n) 求n阶希尔伯特矩阵的逆。求4阶希尔伯特矩阵及其逆矩阵。clc;formatrat%以有理形式输出H=hilb(4)H=invhilb(4)H= 1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/3 1/4 1/5 1/6 1/4 1/5 1/6 1/7H= 16 -120 240-140 -120 1200-27001680 240 -27006480-4200 -1401680-42002800

(4)托普利兹矩阵除第一行第一列外,其他每个元素都与左上角的元素相同。toeplitz(x,y) 生成一个以x为第一列,y为第一行的托普利兹矩阵。这里x,y均为向量,两者不必等长。toeplitz(x) 用向量x生成一个对称的托普利兹矩阵。>>T=toeplitz(1:5,-1:-1:-4)Warning:Firstelementofinputcolumndoesnotmatchfirstelementofinputrow.Columnwinsdiagonalconflict.>Intoeplitzat25T=1-2-3-421-2-3321-243215432

(5)伴随矩阵compan(p) 生成伴随矩阵的函数其中p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。例求多项式的x3-7x+6的伴随矩阵。>>p=[1,0,-7,6];>>compan(p)ans=07-6100010

(6)帕斯卡(Pascal)矩阵二次项(x+y)n展开后的系数随n的增大组成一个三角形表,称为杨辉三角形。由杨辉三角形表组成的矩阵称为帕斯卡矩阵。pascal(n) 生成一个n阶帕斯卡矩阵。求(x+y)5的展开式。>>pascal(6)ans=1 1 1 1 1 11 2 3 4 5 61 3 6 10 15 211 4 10 20 35 561 5 15 35 70 1261 6 21 56 126 252矩阵次对角线上的元素1,5,10,10,5,1即为展开式的系数。3.2矩阵结构变换p43表矩阵结构变换函数及其含义函数名含义diag(A)提取矩阵A主对角线元素,产生一个具有min(m,n)个元素的列向量diag(A,k)提取第k条对角线的元素diag(V)产生一个m×m对角矩阵,其主对角线元素为向量V的元素diag(V,k)产生一个n×n(n=m+|k|)对角阵,其第k条对角线的元素为向量V的元素triu(A)求矩阵A的上三角阵triu(A,k)求矩阵A的第k条对角线以上的元素tril(A)求矩阵A的下三角阵tril(A,k)求矩阵A的第k条对角线以下的元素rot90(A,k)将矩阵A旋转90º的k倍,按逆时针方向fliplr(A)对矩阵A实施左右翻转flipud(A)对矩阵A实施上下翻转3.2.1对角阵与三角阵1.对角阵只有对角线上有非0元素。数量矩阵—对角线上的元素相等的对角阵。单位矩阵—对角线上的元素为1的对角阵。

(1)提取矩阵的对角线元素设A为m×n矩阵。diag(A) 提取主对角线元素,产生有min(m,n)个元素的列向量。diag(A,k)提取第k条对角线的元素。clc;A=[0,1,2;-1,0,1;-2,-1,0]diag(A,0)diag(A,1)diag(A,2)diag(A,-1)diag(A,-2)A=012-101-2-10ans=000ans=11ans=2ans=-1-1ans=-2

(2)构造对角矩阵V为m个元素的向量。diag(V) 产生m×m对角矩阵,主对角线元素为V。diag(V,k) 产生n×n(n=m+|k|)对角阵,第k条对角线元素为V。(注)先建立5×5矩阵A,然后将A的第一行元素乘以1,第二行乘以2,…,第五行乘以5。>>A=ones(5)A=1111111111111111111111111>>D=diag(1:5)D=1000002000003000004000005>>D*Aans=1111122222333334444455555

2.三角阵p44三角阵分为上三角阵和下三角阵。上三角阵对角线以下的元素全为0。下三角阵对角线以上的元素全为0。

(1)上三角矩阵triu(A) 求矩阵A的上三角阵。triu(A,k)求矩阵A的第k条对角线以上的元素。triu(A,0)功能同triu(A)。

clc;A=[9,1,2,3,4;-1,9,1,2,3;... -2,-1,9,1,2;-3,-2,-1,9,1;... -4,-3,-2,-1,9]B=triu(A)C=triu(A,2)A=91234-19123-2-1912-3-2-191-4-3-2-19B=9123409123009120009100009C=0023400023000020000000000

(2)下三角矩阵tril(A) 求矩阵A的下三角阵。tril(A,k) 求矩阵A的第k条对角线以下的元素。tril(A,0)功能同tril(A)。

clc;A=[9,1,2,3,4;-1,9,1,2,3;... -2,-1,9,1,2;-3,-2,-1,9,1;... -4,-3,-2,-1,9]B=tril(A)C=tril(A,-2)A=91234-19123-2-1912-3-2-191-4-3-2-19B=90000-19000-2-1900-3-2-190-4-3-2-19C=0000000000-20000-3-2000-4-3-2003.2.2矩阵的转置与旋转1.矩阵的转置转置运算符是单撇号:'。>>A=[11,12,13;21,22,23;31,32,33]A=111213212223313233>>B=A'B=112131122232132333

2.矩阵的旋转rot90(A,k) 将矩阵A旋转90º的k倍,按逆时针方向。当k为1时可省略。>>A=[1,2;4,3]A=1243>>B=rot90(A)B=2314>>B1=rot90(A,1)B1=2314>>B2=rot90(A,2)B2=3421>>B0=rot90(A,0)B0=1243>>B_1=rot90(A,-1)B_1=4132

3.矩阵的左右翻转对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换;第二列和倒数第二列调换;…,依次类推。fliplr(A) 对矩阵A实施左右翻转。>>A=[1,2,3,4;1,2,3,4;1,2,3,4;1,2,3,4]A=1234123412341234>>B=fliplr(A)B=4321432143214321>>C=1:5C=12345>>fliplr(C) %逆序ans=54321

4.矩阵的上下翻转flipud(A) 对矩阵A实施上下翻转。>>A=[1,1,1,1;2,2,2,2;3,3,3,3;4,4,4,4]A=1111222233334444>>B=flipud(A)B=4444333322221111>>C=(1:5)'C=12345>>flipud(C) %逆序ans=543213.3矩阵求逆与线性方程组求解p463.3.1矩阵的逆与伪逆表求矩阵的逆与伪逆函数及其含义函数名含义inv(A)求方阵A的逆矩阵pinv(A)求A的伪逆矩阵1.矩阵的逆对于方阵A,若存在与其同阶的方阵B,使:A·B=B·A=I(I为单位矩阵)则称B为A的逆矩阵,A也是B的逆矩阵。inv(A) 求方阵A的逆矩阵。求方阵A的逆矩阵clc;A=[1,-1,1;5,-4,3;2,1,1]B=inv(A)B*AA=1-115-43211B=-1.40000.40000.20000.2000-0.20000.40002.6000-0.60000.2000ans=1.00000.0000-0.0000-0.00001.00000.00000.0000-0.00001.0000

矩阵的伪逆若A不是方阵,或A是非满秩的方阵时,A没有逆矩阵。但可找到与A'同型的矩阵B,使得: A·B·A=A B·A·B=B称B为矩阵A的伪逆,也称为广义逆矩阵。pinv(A)求A的伪逆矩阵。clcA=[3,1,1,1;1,3,1,1;1,1,3,1]B=pinv(A)A*B*AB*A*BA=311113111131B=0.3929-0.1071-0.1071-0.10710.3929-0.1071-0.1071-0.10710.39290.03570.03570.0357ans=3.00001.00001.00001.00001.00003.00001.00001.00001.00001.00003.00001.0000ans=0.3929-0.1071-0.1071-0.10710.3929-0.1071-0.1071-0.10710.39290.03570.03570.03573.3.2用矩阵求逆方法求解线性方程组 Ax=b 其解为:x=A-1b解线性方程组clc;A=[1,2,3;1,4,9;1,8,27]b=[5,-2,6]'x1=inv(A)*bx2=A\b%左除A=1231491827b=5-26x1=23.0000-14.50003.6667x2=23.0000-14.50003.66673.4矩阵求值p48表矩阵求值函数及其含义函数名含义det(A)求方阵A的行列式的值rank(A)求矩阵秩trace(A)求矩阵的迹norm(A)或norm(A,2)计算2—范数norm(A,1)计算1—范数norm(A,inf)计算∞—范数cond(A,1)计算1—范数下的条件数cond(A)或cond(A,2)计算2—范数下的条件数cond(A,inf)计算∞—范数下的条件数3.4.1方阵的行列式值把方阵看作行列式,对其按行列式规则求值,该值称矩阵所对应的行列式的值。det(A) 求方阵A所对应的行列式的值。>>A=[1,2;3,4]A=1234>>B=det(A)B=-23.4.2矩阵的秩与迹1.矩阵的秩矩阵线性无关的行数与列数称为矩阵的秩。rank(A) 求矩阵秩。>>A=[2,2,-1,1;4,3,-1,2;8,5,-3,4;3,3,-2,2]A=22-1143-1285-3433-22>>r=rank(A)r=4

2.矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。trace(A) 求矩阵A的迹。>>A=[2,2,3;4,5,-6;7,8,9]A=22345-6789>>trace(A)ans=163.4.3向量和矩阵的范数矩阵或向量的范数用来度量矩阵或向量在某种意义下的长度。范数有多种方法定义,其定义不同,范数值也就不同。

1.向量的3种常用范数及其计算函数V为n维向量(1)norm(V)或norm(V,2):计算2—范数。(2)norm(V,1):计算1—范数。(3)norm(V,inf):计算∞—范数。clc;V=[-1,1/2,1]v1=norm(V,1)v2=norm(V)vinf=norm(V,inf)V=-1.00000.50001.0000v1=2.5000v2=1.5000vinf=1

2.矩阵的范数及其计算函数A为m×n矩阵,V为n维向量(1)norm(A)或norm(A,2):计算2—范数。(2)norm(A,1):计算1—范数。(3)norm(A,inf):计算∞—范数。clc;A=[17,0,1,0,15;23,5,7,14,16;... 4,0,13,0,22;10,12,19,21,3;... 11,18,25,2,19]a1=norm(A,1)a2=norm(A)ainf=norm(A,inf)A=1701015235714164013022101219213111825219a1=75a2=59.3617ainf=753.4.4矩阵A的条件数p51(1)cond(A,1):计算1—范数下的条件数。(2)cond(A)或cond(A,2):计算2—范数下的条件数。(3)cond(A,inf):计算∞—范数下的条件数。clc;A=[2,2,3;4,5,-6;7,8,9]C1=cond(A,1)C2=cond(A)Cinf=cond(A,inf)B=[2,-5,4;1,5,-2;-1,2,4]C1=cond(B,1)C2=cond(B)Cinf=cond(B,inf)A=22345-6789C1=149.1429C2=87.9754Cinf=144.0000B=2-5415-2-124C1=5.7209C2=3.7515Cinf=7.93023.5矩阵的特征值与特征向量p52表求特征值与特征向量函数及其含义函数名含义E=eig(A)求全部特征值,构成向量E[V,D]=eig(A)求全部特征值,构成对角阵D,并求特征向量构成V的列向量[V,D]=eig(A,'nobalance')与第2种格式类似。格式2先对A作相似变换后求A的特征值和特征向量;格式3直接求A的特征值和特征向量用求特征值的方法解方程。3x5-7x4+5x2+2x-18=0clc;p=[3,-7,0,5,2,-18];A=compan(p); %A的伴随矩阵x1=eig(A) %求A的特征值x2=roots(p) %直接求多项式p的零点x1=2.18371.0000+1.0000i1.0000-1.0000i-0.9252+0.7197i-0.9252-0.7197ix2=2.183

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论