第2章matlab数值计算功能课件.ppt

上传人:飞****2 文档编号:70695671 上传时间:2023-01-25 格式:PPT 页数:84 大小:1.01MB
返回 下载 相关 举报
第2章matlab数值计算功能课件.ppt_第1页
第1页 / 共84页
第2章matlab数值计算功能课件.ppt_第2页
第2页 / 共84页
点击查看更多>>
资源描述

《第2章matlab数值计算功能课件.ppt》由会员分享,可在线阅读,更多相关《第2章matlab数值计算功能课件.ppt(84页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2.1 变量及其赋值变量及其赋值2.1.1变量变量3.MATLAB严格区分大小写字母,因此,严格区分大小写字母,因此,A和和a是不同是不同的变量。的变量。MATLAB的内定变量见表的内定变量见表2-1像任何其他计算机语言一样,像任何其他计算机语言一样,MATLAB 也是使用变量也是使用变量来保存信息的。变量由变量名表示,变量的命名应遵来保存信息的。变量由变量名表示,变量的命名应遵循如下规则:循如下规则:1变量名必须以字母开头;由字母、数字和下划线变量名必须以字母开头;由字母、数字和下划线混合组成;不允许使用空格、标点符号;混合组成;不允许使用空格、标点符号;2变量名的字符长度不应超过变量名的字

2、符长度不应超过31个(对于个(对于6.x版本);版本);4关键字(如关键字(如 if,while 等)不能作为变量名。等)不能作为变量名。eps 容差变量,定义为容差变量,定义为1.0到最近浮点数的到最近浮点数的距离距离,在在 pc机上机上=2-52 pi 圆周率圆周率 的近似值的近似值3.1415926 inf或或Inf 表示表示正无大正无大,定义为定义为1/0 NaN 非数,非数,它产生于它产生于0 ,0/0,/等运等运算算 i,j 虚数单位虚数单位 ans 对于未赋值运算结果,自动赋给对于未赋值运算结果,自动赋给ans永久变量永久变量2.1.2、MATLAB 的语句的语句 1.百分号(注

3、释符)百分号(注释符)%与其它程序语言一样,为了方便其他人及日与其它程序语言一样,为了方便其他人及日后自己对程序的阅读,增加程序的可读性,需要后自己对程序的阅读,增加程序的可读性,需要在在MATLAB文件中加入注释。注释行必须以文件中加入注释。注释行必须以%号号开始,执行文件时,开始,执行文件时,%号后面的语句不予执行。号后面的语句不予执行。2.逗号和分号逗号和分号 在赋值语句中,逗号(空格)用在同一行中各在赋值语句中,逗号(空格)用在同一行中各元素之间,分号用在行与行之间。多条语句放在一元素之间,分号用在行与行之间。多条语句放在一行,用行,用逗号逗号分开表示分开表示要求要求显示结果,由显示结

4、果,由分号分号分开表分开表示示不要求不要求显示结果。显示结果。3.续行标志(续行标志()当一条语句或矩阵太长,一行显示不下时,可用当一条语句或矩阵太长,一行显示不下时,可用续行标志续行标志,另起一行继续完成该条语句的书写。,另起一行继续完成该条语句的书写。2.1.3 矩阵及其元素的赋值矩阵及其元素的赋值矩阵是矩阵是 MATLAB 进行数据处理的基本单元,进行数据处理的基本单元,MATLAB 的大部分运算都是在矩阵的意义上进行的,矩阵运算也的大部分运算都是在矩阵的意义上进行的,矩阵运算也是是 MATLAB 最重要的运算。赋值就是把数赋予代表常最重要的运算。赋值就是把数赋予代表常量或变量的标识符。

5、量或变量的标识符。MATLAB中的变量或常量都代表中的变量或常量都代表矩阵,标量应看作是矩阵,标量应看作是11阶的矩阵。阶的矩阵。矩阵的创建可以通过以下几种形式:矩阵的创建可以通过以下几种形式:(1)直接列出元素形式;)直接列出元素形式;(2)通过语句和函数产生;)通过语句和函数产生;(3)从外部文件装入;)从外部文件装入;(4)建立在)建立在M文件中。文件中。1、直接输入矩阵:、直接输入矩阵:例如输入语句例如输入语句a=1 2 3;4 5 6;7 8 9a=1 2 3 4 5 6 7 8 9显示的结果为:显示的结果为:对于较小的简单矩阵,从键盘上直接输入矩阵时最常对于较小的简单矩阵,从键盘上

6、直接输入矩阵时最常用、最方便和最好的数值矩阵创建方法。创建矩阵的用、最方便和最好的数值矩阵创建方法。创建矩阵的基本原则:基本原则:矩阵的所有元素必须放在方括号矩阵的所有元素必须放在方括号“”内;内;矩阵元素之间必须用逗号矩阵元素之间必须用逗号“,”或空格隔开;或空格隔开;矩阵行与行之间用分号矩阵行与行之间用分号“;”或回车符隔开;或回车符隔开;矩阵元素可以是数字或任何不含未定义变量的表达式。矩阵元素可以是数字或任何不含未定义变量的表达式。矩阵里的元素也可以用表达式代替,例如输入矩阵里的元素也可以用表达式代替,例如输入X=-1.3,sqrt(3),(1+2+3)/5*4X=-1.3000 1.7

7、321 4.8000显示结果显示结果矩阵里的元素还可以是矩阵里的元素还可以是复数,复数用内定变量复数,复数用内定变量i,j表示表示2、由函数创建和修改矩阵:、由函数创建和修改矩阵:MATLAB提供用于创建某些特殊矩阵的函数提供用于创建某些特殊矩阵的函数A=创建空矩阵创建空矩阵注意空矩阵与零矩阵的差别注意空矩阵与零矩阵的差别 eye(n)单位矩阵单位矩阵,nn阶的方阵阶的方阵 zeros(m,n)元素全为零的元素全为零的mn阶阶矩阵矩阵 ones(m,n)元素全为元素全为 1 的的mn矩阵矩阵 rand(m,n)元素为在元素为在0,1上均匀分布的上均匀分布的mn随机矩阵随机矩阵 randn(m,

8、n)元素为标准正态分布的元素为标准正态分布的mn随机矩阵随机矩阵 magic(n)魔方矩阵,其特点是元素由魔方矩阵,其特点是元素由1到到n2的自然数的自然数组成,每行、每列及两对角线上的元素之和均等于组成,每行、每列及两对角线上的元素之和均等于(n3+n)/2以上命令以上命令可以可以只有一个参数,生成的是方阵只有一个参数,生成的是方阵常用创建矩阵函数常用创建矩阵函数3、从外部数据文件调入矩阵:、从外部数据文件调入矩阵:在在MATLAB中,还可以从外部文件读入数据生成矩阵。中,还可以从外部文件读入数据生成矩阵。这些文件可以是存储这些文件可以是存储Matlab已经生成的矩阵二进制文已经生成的矩阵二

9、进制文件,也可以是包含数值数据的文本文件。在文本文件件,也可以是包含数值数据的文本文件。在文本文件中,数据必须排成一个矩阵表,数据之间用用空格分中,数据必须排成一个矩阵表,数据之间用用空格分隔,每行包含矩阵的一行。保存文件时,文件名后缀隔,每行包含矩阵的一行。保存文件时,文件名后缀为为.dat例如:例如:有文本文件有文本文件mydata.txt,将后缀改为,将后缀改为.dat,在命,在命令窗口输入:令窗口输入:load mydata.dat%把文件中的内容调入到工作空间中把文件中的内容调入到工作空间中mydata%显示变量显示变量mydata4、利用、利用M文件中的函数生成矩阵文件中的函数生成

10、矩阵高维矩阵的创建(简单了解)高维矩阵的创建(简单了解)1.通过全下标元素赋值方式通过全下标元素赋值方式 A=zeros(2,2)A=0 0 0 0 A(2,2,2)=1A(:,:,1)=0 0 0 0A(:,:,2)=0 0 0 1 B(2,5,:)=1:3B(:,:,1)=0 0 0 0 0 0 0 0 0 1B(:,:,2)=0 0 0 0 0 0 0 0 0 2B(:,:,3)=0 0 0 0 0 0 0 0 0 32.由若干个同样大小的低维数组合成由若干个同样大小的低维数组合成 C=ones(2,3);C(:,:,2)=ones(2,3)*2;C(:,:,3)=ones(2,3)*3

11、C(:,:,1)=1 1 1 1 1 1C(:,:,2)=2 2 2 2 2 2C(:,:,3)=3 3 3 3 3 33.由由ones、zeros等函数直接创建等函数直接创建同样的方法还可以创建同样的方法还可以创建4维维等更高维的数组。等更高维的数组。2.1.4 向量的生成向量的生成在在MATLAB中数组可以看成是行向量,即只有一行或中数组可以看成是行向量,即只有一行或一列的矩阵。前面介绍的所有矩阵的建立和保存的方法,一列的矩阵。前面介绍的所有矩阵的建立和保存的方法,对向量同样适用,这里不再重复。同时,介绍对向量同样适用,这里不再重复。同时,介绍matlab中中创建向量的特殊命令。创建向量的

12、特殊命令。1.利用冒号利用冒号“:”创建等差数列:创建等差数列:t=初值:增量:终值初值:增量:终值其中其中“增量增量”是可以省略的,省略时,默认的增量步长是可以省略的,省略时,默认的增量步长为为1。增量也可以是。增量也可以是负值,负值,但此时,初值应该但此时,初值应该大于大于终值。终值。例如:例如:x=1:5;y=0:pi/4:2*pi;z=6:-1:0;2.利用函数利用函数linspace和和logspace创建向量:创建向量:linspace 函数,创建指定长度的等距向量函数,创建指定长度的等距向量例:例:k=linspace(-pi,pi,4)t=linspace(初值初值d1,终值,

13、终值d2,点数,点数n)logspace 函数,创建对数等距的向量函数,创建对数等距的向量y=logspace(d1,d2)y=logspace(d1,d2,N)意义为:从意义为:从10的的d1次幂到次幂到d2次幂之间按等比级数等分次幂之间按等比级数等分为为N个点,个点,N缺省时,默认为缺省时,默认为50。意义为:在线性空间上,行矢量的值从意义为:在线性空间上,行矢量的值从d1到到d2,数据,数据个数个数n,缺省时,缺省时n为为100。2.1.5 矩阵的下标矩阵的下标创建了矩阵之后,若要调用矩阵里的元素,就要了解创建了矩阵之后,若要调用矩阵里的元素,就要了解单个元素标志和寻访的单个元素标志和寻

14、访的3种方式:种方式:1.“全下标全下标”标志标志即指出即指出“第几行第几列第几行第几列”的元素。优点是:几何概念清的元素。优点是:几何概念清楚,引述简单。楚,引述简单。“全下标全下标”标志由标志由行下标行下标和和列下标列下标组成,组成,例如:例如:A(3,5)标志矩阵标志矩阵A的第的第3行第行第5列元素。列元素。2.“单下标单下标”标志标志单下标是只用一个下标来指明元素在数组中的位置。单下标是只用一个下标来指明元素在数组中的位置。matlab在存储矩阵时,将所有元素按一维进行编号,即在存储矩阵时,将所有元素按一维进行编号,即把矩阵所有把矩阵所有列列,按照,按照先左后右先左后右的次序排成一维长

15、列,然的次序排成一维长列,然后按照自上而下对元素位置进行编号。后按照自上而下对元素位置进行编号。全下标和单下标的转换:全下标和单下标的转换:sub2ind(size(A),m,n)将矩阵将矩阵A的第的第m行第行第n列的下标列的下标转换成单下标;转换成单下标;a,b=ind2sub(size(A),p)将矩阵将矩阵A中编号为中编号为p的单下标的单下标转换成全下标;转换成全下标;3.“逻辑逻辑1”标志标志在实际运用中,经常会碰到诸如寻找矩阵中所有大于某在实际运用中,经常会碰到诸如寻找矩阵中所有大于某值的问题。此时值的问题。此时“逻辑逻辑1”标志就特别得心应手。标志就特别得心应手。X=A(L)其中其

16、中L是与是与A维数相同的逻辑值数组,通过维数相同的逻辑值数组,通过L中,逻辑中,逻辑1所在的位置,指示所在的位置,指示A元素的位置。元素的位置。41016282947757150345423131303在在在在MATLABMATLABMATLABMATLAB的内部数据储存结构中,每一个矩阵都是的内部数据储存结构中,每一个矩阵都是的内部数据储存结构中,每一个矩阵都是的内部数据储存结构中,每一个矩阵都是一个以列为主的向量,因此对于矩阵内各元素的存一个以列为主的向量,因此对于矩阵内各元素的存一个以列为主的向量,因此对于矩阵内各元素的存一个以列为主的向量,因此对于矩阵内各元素的存取是按列来进行总排。取

17、是按列来进行总排。取是按列来进行总排。取是按列来进行总排。冒号冒号冒号冒号“:”表示表示表示表示“全部全部全部全部”。例:例:思考:思考:思考:思考:A(3,1,4,2)=A(3,1,4,2)=A(3,1,4,2)=A(3,1,4,2)=?例例找出数组找出数组A=-4-2 0 2 4-3-1 1 3 5中所有绝对值大于中所有绝对值大于3的元素的元素A=-4,-2,0,2,4;-3,-1,1,3,5;%创建矩阵创建矩阵AL=abs(A)3%建立矩阵建立矩阵Lislogical(L)%判断判断L中是否有逻辑中是否有逻辑1X=A(L)%指出指出A中绝对值大于中绝对值大于3的元素的元素其它赋值方式其它

18、赋值方式用户可以利用用户可以利用下标下标给某元素单独赋值。如果赋值元素的给某元素单独赋值。如果赋值元素的下标超出了原来矩阵的大小,矩阵的行列会自动扩展,下标超出了原来矩阵的大小,矩阵的行列会自动扩展,跳空的元素被自动赋值跳空的元素被自动赋值0。这种自动扩展维数的功能只适用于赋值语句这种自动扩展维数的功能只适用于赋值语句例例A=-4-2 0 2 4-3-1 1 3 5A(2,3)=10A=-4-2 0 2 4 -3-1 10 3 5 A(3,3)=10A=-4 -2 0 2 4 -3 -1 1 3 5 0 0 10 0 0给全行、全列赋值,可用冒号给全行、全列赋值,可用冒号“:”例:例:a(5,

19、:)=5,4,3;把把a的第的第2,4行及第行及第1,3列交点上的元素取出,列交点上的元素取出,构成一个新的矩阵。构成一个新的矩阵。例:例:b=a(2,4,1,3);利用空矩阵利用空矩阵“”,可抽去,可抽去a中的任意行中的任意行例:例:a(2,4,:)=;“空矩阵空矩阵”是指没有元素的矩阵,不是零矩阵。对任何是指没有元素的矩阵,不是零矩阵。对任何一个矩阵赋值一个矩阵赋值,就是使它的元素都消失。,就是使它的元素都消失。例例利用单下标创建矩阵利用单下标创建矩阵A=zeros(2,5);%创建创建25的零矩阵的零矩阵A(:)=-4:5%修改矩阵给编号从修改矩阵给编号从110的的元素分别赋值,元素分别

20、赋值,大小从大小从-4按步长按步长1一直增加到一直增加到5 A=-4-2 0 2 4 -3-1 1 3 5 2.1.6 复数表示复数表示MATLAB的每一个元素都可以是复数,实数是复数的的每一个元素都可以是复数,实数是复数的特例。复数的虚部用特例。复数的虚部用i或或j表示。表示。对复数有两种赋值方法:对复数有两种赋值方法:1.将其元素逐个赋予复数将其元素逐个赋予复数 2.将其实部和虚部矩阵分别赋值将其实部和虚部矩阵分别赋值如如z=1,3;5,7+2,4;6,8*i (*号不能省略)号不能省略)如如 z=1+2i,3+4i;5+6i,7+8i若在前面程序中曾经给若在前面程序中曾经给i或或j赋过值

21、,则赋过值,则i或或j就不再是虚就不再是虚数单位,此时应把赋值的数单位,此时应把赋值的i或或j清除再执行虚数赋值语清除再执行虚数赋值语句。句。2.2 MATLAB的基本管理命令的基本管理命令2.2.1 save与与load命令(变量的存储与下载)命令(变量的存储与下载)save filename a b c 把把a、b、c三个变量保存在文件名为三个变量保存在文件名为filename.mat的文件中。的文件中。利用利用save和和load命令实现数据文件存取是所有命令实现数据文件存取是所有MATLAB版本采用的基本操作方法。具体格式有:版本采用的基本操作方法。具体格式有:save filenam

22、e 把全部内存变量保存为把全部内存变量保存为filename.mat文件。文件。若文件名省略,默认文件名为若文件名省略,默认文件名为matlab。save filename a b c append 把把a、b、c三个变量追加到三个变量追加到文件名为文件名为filename.mat的文件中。的文件中。在在MATLAB中,第二次再用中,第二次再用save命令时,如果仍用默认命令时,如果仍用默认文件名,则原来的数据就被冲掉文件名,则原来的数据就被冲掉也可利用菜单保存变量也可利用菜单保存变量【File】Save Workspace As菜单命令会打开一个标准的文件对话框,与菜单命令会打开一个标准的文

23、件对话框,与windows操作基本一样,此时会保存工作空间里所有的变量,操作基本一样,此时会保存工作空间里所有的变量,不能选择。不能选择。load是是save的逆过程,它把磁盘上存储的的逆过程,它把磁盘上存储的mat数据取回到数据取回到MATLAB的工作空间中。默认的文件名也是的工作空间中。默认的文件名也是matlab.mat。在不用默认文件时,命令格式与在不用默认文件时,命令格式与save相似。相似。loadLoading from:matlab.mat当要提取文件中某些变量时,文件名不能省略。当要提取文件中某些变量时,文件名不能省略。例如:例如:load A 提取文件提取文件matlab中

24、的中的A变量变量?Error using=loadUnable to read file A:No such file or directory.2.2.2 clear命令(变量的删除)命令(变量的删除)Matlab中内存变量的删除可以通过在指令窗口中运行中内存变量的删除可以通过在指令窗口中运行clear来进行。来进行。clear操作通常有两种方式:操作通常有两种方式:clear 清除当前工作空间中的全部变量清除当前工作空间中的全部变量clear a b c 清除当前工作空间中的变量清除当前工作空间中的变量a、b、c被清除的变量之间只能用空格,不能用逗号或分号。被清除的变量之间只能用空格,不能

25、用逗号或分号。因为在一条指令中,逗号和分号都表示该指令结束,因为在一条指令中,逗号和分号都表示该指令结束,不同的是逗号结束的指令要显示运算结果,而分号结不同的是逗号结束的指令要显示运算结果,而分号结束的指令不显示执行结果。束的指令不显示执行结果。a=1;b=2;c=3;clear a,b;cc=3bb=2a?Undefined function or variable a.例例 用用clear命令时,系统不会给出确认提示,一旦命令时,系统不会给出确认提示,一旦删除将不能恢复。删除将不能恢复。2.2.3 who和和whos命令(变量信息的查询)命令(变量信息的查询)在调试程序的时候,往往需要检查

26、工作空间中的变量在调试程序的时候,往往需要检查工作空间中的变量及其阶数。这时需要用到及其阶数。这时需要用到who和和whos命令。命令。who命令命令用于查看工作空间都有哪些变量名;用于查看工作空间都有哪些变量名;whos命令用于了命令用于了解变量的具体细节。调用方式:解变量的具体细节。调用方式:who(whos)查看工作空间里所有的变量查看工作空间里所有的变量who(whos)a b 查看工作空间里的变量查看工作空间里的变量a和和b被查看的变量之间只能用空格,不能用逗号或分号。被查看的变量之间只能用空格,不能用逗号或分号。当想给某一个变量赋值时,为了避免与已存在的变当想给某一个变量赋值时,为

27、了避免与已存在的变量同名,就要用量同名,就要用exist查询当前的工作空间内是否存在查询当前的工作空间内是否存在该变量。调用格式:该变量。调用格式:x=exist(A)永久变量用永久变量用who指令是查看不到的,只可随时调用指令是查看不到的,只可随时调用例例a=1 2 3;4 5 6;b=2 5+8 9*i;c=23.5;whoYour variables are:a b c whos Name Size Bytes Class a 2x3 48 double array b 1x2 32 double array(complex)c 1x1 8 double arrayGrand total

28、 is 9 elements using 88 bytes2.2.4 format 命令(数据格式)命令(数据格式)format 命令用来控制数据显示格式。命令用来控制数据显示格式。format compact 数据显示紧凑格式数据显示紧凑格式format loose 数据显示稀疏格式(系统默认)数据显示稀疏格式(系统默认)数字的显示格式有数字的显示格式有12种,见书第种,见书第23页表页表2-3 format 命令只改变数字的显示格式,并不改变命令只改变数字的显示格式,并不改变数字的大小。数字的大小。2.3 matlab 的常用数学函数的常用数学函数matlab提供了几乎所有的初等数学函数,

29、包括三角函提供了几乎所有的初等数学函数,包括三角函数、对数函数、指数函数和复合运算函数等。函数的数、对数函数、指数函数和复合运算函数等。函数的一般调用格式为:一般调用格式为:函数名(变量)函数名(变量)变量就是变量就是matlab的矩阵变量。函数的运算就是将函数的矩阵变量。函数的运算就是将函数运算分别作用于变量的每一个元素。运算分别作用于变量的每一个元素。常用数学函数见书常用数学函数见书24页,表页,表2-4注意:注意:注意:注意:1.MATLAB1.MATLAB1.MATLAB1.MATLAB只对弧度操作,若为角度,则换成弧度。只对弧度操作,若为角度,则换成弧度。只对弧度操作,若为角度,则换

30、成弧度。只对弧度操作,若为角度,则换成弧度。2.MATLAB2.MATLAB2.MATLAB2.MATLAB系统提供的所有函数名都是小写字母。系统提供的所有函数名都是小写字母。系统提供的所有函数名都是小写字母。系统提供的所有函数名都是小写字母。2.4 矩阵与数组运算矩阵与数组运算Matlab有两类运算指令:矩阵算术运算和数组算术运有两类运算指令:矩阵算术运算和数组算术运算。矩阵运算操作是按照线性代数的运算法则定义的;算。矩阵运算操作是按照线性代数的运算法则定义的;数组运算操作是按元素逐个执行的。在数组运算操作是按元素逐个执行的。在matlab系统中提系统中提供了如下的矩阵运算:供了如下的矩阵运

31、算:1.矩阵加、减(矩阵加、减(,)运算)运算相加、减的两矩阵必须有相同的行和列两矩阵对应元相加、减的两矩阵必须有相同的行和列两矩阵对应元素相加减。素相加减。允许参与运算的两矩阵之一是标量。标量与矩阵的允许参与运算的两矩阵之一是标量。标量与矩阵的所有元素分别进行加减操作。所有元素分别进行加减操作。运算符运算符+和和可以作可以作为为一元运算符使用。一元运算符使用。+A就是取就是取A,A就是对就是对A中的每个元素取负。中的每个元素取负。2.4.1 矩阵与数组的算术运算矩阵与数组的算术运算2.乘(乘(、.)运算运算 A矩阵的列数必须等于矩阵的列数必须等于B矩阵的行数矩阵的行数 标量可与任何矩阵相乘。

32、标量可与任何矩阵相乘。矩阵乘(矩阵乘()运算运算A*B数组乘(数组乘(.)运算运算A.*BA,B两数组必须有相同的行和列,两数组相应元素两数组必须有相同的行和列,两数组相应元素相乘。相乘。A=1 2 3;4 5 6;7 8 9;B=2 4 6;1 3 5;7 9 10;A.*B3.乘方乘方(、.)运算运算矩阵乘方(矩阵乘方()运算运算 Ap矩阵矩阵A必须是方阵,必须是方阵,A和和p不能同时为矩阵;不能同时为矩阵;当当p取整数时,该指令的运算结果可以做如下的理解:取整数时,该指令的运算结果可以做如下的理解:u当当p0时,时,Ap表示方阵表示方阵A的直接自乘的直接自乘p次;次;u当当p a=1+2

33、i 3-2ia=1.0000+2.0000i 3.0000-2.0000i aans=1.0000-2.0000i 3.0000+2.0000i例例矩阵的转置。只是将排列形式进行转置。矩阵的转置。只是将排列形式进行转置。矩阵转置(矩阵转置(.)运算运算 a=1+2i 3-2ia=1.0000+2.0000i 3.0000-2.0000i a.ans=1.0000+2.0000i 3.0000-2.0000i例例对于实数矩阵用(对于实数矩阵用()符号或()符号或(.)求转置结果是一样)求转置结果是一样的;的;2.4.2 矩阵的关系运算矩阵的关系运算Matlab除了支持传统的数学运算外,还提供了比

34、较完除了支持传统的数学运算外,还提供了比较完善的关系和逻辑运算。善的关系和逻辑运算。关系符号关系符号意义意义=小于小于小于或等于小于或等于大于大于大于或等于大于或等于等于等于不等于不等于关系运算关系运算关系运算的基本规则关系运算的基本规则(1)两个标量之间相比,若两者关系成立,则运算)两个标量之间相比,若两者关系成立,则运算结果为真(结果为真(1);否则运算结果为假();否则运算结果为假(0););(2)标量可以和任何维数的数组进行比较,但是比)标量可以和任何维数的数组进行比较,但是比较是在此标量和数组每一个元素之间进行的,因此比较是在此标量和数组每一个元素之间进行的,因此比较结果将与被比较数

35、组同维;较结果将与被比较数组同维;(3)当比较量中没有标量时,关系符两端进行比较)当比较量中没有标量时,关系符两端进行比较的数组必须同维,比较在两数组的对应元素间进行;的数组必须同维,比较在两数组的对应元素间进行;(4)运算符)运算符,=仅对参加比较的量的实部仅对参加比较的量的实部进行比较,而运算符进行比较,而运算符=和和=则同时对它的实部和虚则同时对它的实部和虚部进行比较;部进行比较;(5)关系运算的优先级在算术运算和逻辑运算之间;)关系运算的优先级在算术运算和逻辑运算之间;例例 A=1 2 2;-1 2 1;3 5 2;B=3 4 6;5 8 9;4 5 3;a=A3a=0 0 0 0 0

36、 0 0 1 0 b=(A=2)b=1 0 0 1 0 1 1 1 0c=(B4)-Ac=-1 -2 -1 2 -1 0 -3 -4 -2为了增加程序的可读性,一为了增加程序的可读性,一般将关系运算表达式用括号般将关系运算表达式用括号括起来。括起来。d=(A=B)d=0 0 0 0 0 0 0 1 0例例 A=1 2 2;-1 2 1;3 5 2;B=3 4 6;5 8 9;4 5 3;=和和=意味着两种不同的事情:意味着两种不同的事情:=是比较两个变量,返回值为是比较两个变量,返回值为1或或0;=是赋值运算,是将运算是赋值运算,是将运算后的结果付给另一个变量。后的结果付给另一个变量。2.4.

37、3 矩阵的逻辑运算矩阵的逻辑运算Matlab提供了下述逻辑操作符来实现两个变量之间的提供了下述逻辑操作符来实现两个变量之间的逻辑比较:逻辑比较:&(与)、(与)、|(或)、(或)、(非)(非)如果说上节介绍的只是如果说上节介绍的只是“简单操作简单操作”,那么,逻辑操作,那么,逻辑操作符的引入,就让复杂关系运算成为了可能。符的引入,就让复杂关系运算成为了可能。(1)在逻辑运算中,非零元素表示逻辑真,用)在逻辑运算中,非零元素表示逻辑真,用“1”表表示;零元素为逻辑假用示;零元素为逻辑假用“0”来表示;来表示;操作符说明:操作符说明:(2)标量可以和任何维数的数组进行逻辑运算,运)标量可以和任何维

38、数的数组进行逻辑运算,运算是在此标量和数组每一个元素之间进行的,因此运算是在此标量和数组每一个元素之间进行的,因此运算结果与参加运算的数组同维;算结果与参加运算的数组同维;(3)当逻辑运算中没有标量时,参与运算的数组必)当逻辑运算中没有标量时,参与运算的数组必须同维,运算在两数组的对应元素间进行;须同维,运算在两数组的对应元素间进行;(4)在三个运算符中)在三个运算符中“”的优先级最高,的优先级最高,“&”次之,次之,“|”的优先级最低。当然我们可以用括号人为的改变运的优先级最低。当然我们可以用括号人为的改变运算的优先级。算的优先级。操作符说明:操作符说明:例例A=5-4 0-0.5,B=0

39、1 0 9A&Bans=0 1 0 1 A&1ans=1 1 0 1A|Bans=1 1 0 1A|1ans=1 1 1 1Aans=0 0 1 0关系函数和逻辑函数关系函数和逻辑函数除了逻辑运算符之外,除了逻辑运算符之外,MATLAB还提供了方便的还提供了方便的逻辑函数,与逻辑运算符一样,这些函数运算后会返逻辑函数,与逻辑运算符一样,这些函数运算后会返回回0或或1 xor 异或运算函数异或运算函数 all 检查向量中的元素是否全为非零,只要有检查向量中的元素是否全为非零,只要有0,则返回,则返回0;全是非零元素时返回;全是非零元素时返回1 any 检查向量中是否有非零元素,只要有一个非检查向

40、量中是否有非零元素,只要有一个非零元素就返回零元素就返回1,全零时返回,全零时返回0。isempty 矩阵为空时得矩阵为空时得1 isnan、isinf、issparse1.矩阵大小矩阵大小 size 命令命令m,n=size(A,x):返回矩阵的行列数:返回矩阵的行列数m与与n,当,当x=1,则只返回行数则只返回行数m,当,当x=2,则只返回列数,则只返回列数n。length 命令命令n=length(A):当:当A为数组时,返回数组的元素个数,当为数组时,返回数组的元素个数,当A为矩阵时,返回矩阵行数或列数的最大值。为矩阵时,返回矩阵行数或列数的最大值。length(A)=max(size

41、(A)2.4.4 矩阵的块操作矩阵的块操作 find 命令命令m=find(A):向量:向量A中非零元素的位置编号(单下标中非零元素的位置编号(单下标)组成数组返回组成数组返回mm,n=find(A):返回矩阵中非零元素所在的行、列:返回矩阵中非零元素所在的行、列a=0 0 0 1 6 0 0 0 0例例 m,n=find(a)m=2 2n=1 2 find(a)ans=2 5i=find(a8);a(i)=100a=100 2 3 100 5 100 100 8 100 7 6 100 4 100 100 1可以将可以将A组合成其他形式的表达式组合成其他形式的表达式例:例:a=magic(4

42、)a=16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 max 命令命令max(A)返回向量返回向量A中值最大的元素;若中值最大的元素;若A为矩阵,为矩阵,则返回则返回A中每列元素的最大值;中每列元素的最大值;Y,Z=max(A)Y返回的是最大值,返回的是最大值,Z返回的是最大返回的是最大值所在的位;值所在的位;max(A,1)寻找寻找A中每列元素的最大值;中每列元素的最大值;max(A,2)寻找寻找A中每行元素的最大值;中每行元素的最大值;max(A,B)返回返回A、B两个矩阵中相应元素的最大值两个矩阵中相应元素的最大值构成的矩阵。构成的矩阵。min 命令命令 m

43、ean 命令命令mean(A)返回向量返回向量A中元素的平均值;若中元素的平均值;若A为矩阵,为矩阵,则返回则返回A中每列元素的平均值;中每列元素的平均值;mean(A,1)返回矩阵返回矩阵A中每列元素的平均值;中每列元素的平均值;mean(A,2)返回矩阵返回矩阵A中每行元素的平均值;中每行元素的平均值;sum 命令命令求向量或矩阵的和求向量或矩阵的和 std 命令命令求向量或矩阵的标准方差求向量或矩阵的标准方差2.矩阵的翻转矩阵的翻转Matlab提供了几种可以实现矩阵的翻转及对角化操作提供了几种可以实现矩阵的翻转及对角化操作的函数:的函数:flipud(A)命令命令 将矩阵将矩阵A作上下翻

44、转作上下翻转fliplr(A)命令命令 将矩阵将矩阵A作左右翻转作左右翻转rot90(A)命令命令 将矩阵将矩阵A作逆时针作逆时针90旋转旋转例:例:A=1 2 3 4 5 6rot90(A)ans=3 6 2 5 1 4 diag(A)提取矩阵提取矩阵A的对角线元素,返回列向量。的对角线元素,返回列向量。当当A是列(行)向量时,命令是列(行)向量时,命令diag(A)将以列(行)向量将以列(行)向量为对角元素创建对角矩阵。为对角元素创建对角矩阵。tril(A)提取矩阵提取矩阵A的下三角矩阵。的下三角矩阵。triu(A)提取矩阵提取矩阵A的上三角矩阵。的上三角矩阵。例例A=magic(3);d

45、iag(A)ans=8 5 2 diag(ans)ans=8 0 0 0 5 0 0 0 22.4.5 矩阵函数矩阵函数MATLAB提供了很多用于求解线性代数数值问题的矩提供了很多用于求解线性代数数值问题的矩阵函数:阵函数:V,D=eig(A)矩阵的特征相量与特征值矩阵的特征相量与特征值式中式中A为待求矩阵,为待求矩阵,D由特征值组成的对角线矩阵,由特征值组成的对角线矩阵,V的列由对应的特征向量组成的列由对应的特征向量组成d=eig(A),返回的是由矩阵,返回的是由矩阵A的所有特征值组成的向量的所有特征值组成的向量A=0-6-1;6 2-16;-5 20-10;d=eig(A)d=-3.071

46、0 -2.4645+17.6008i -2.4645-17.6008i det(A)计算矩阵计算矩阵A的行列式的值,的行列式的值,A必须为方阵。必须为方阵。rank(A)求矩阵求矩阵A的秩的秩 inv(A)计算矩阵计算矩阵A的逆的逆,A必须为方阵。必须为方阵。trace(A)求矩阵求矩阵A的对角线元素的和。的对角线元素的和。poly(A)求矩阵求矩阵A的特征多项式。的特征多项式。expm(A)求矩阵求矩阵A的指数。的指数。logm(A)求矩阵求矩阵A的对数。的对数。sqrtm(A)求矩阵求矩阵A的平方根。的平方根。2.4.6 稀疏矩阵稀疏矩阵 一般来说,稀疏矩阵的阶数都很高,但其中的非一般来说

47、,稀疏矩阵的阶数都很高,但其中的非零元素又很少。若用一般的方法建立稀疏矩阵,不仅零元素又很少。若用一般的方法建立稀疏矩阵,不仅浪费时间,而且浪费计算机的资源。浪费时间,而且浪费计算机的资源。格式:格式:speye(n)例:例:speye(3)ans=(1,1)1 (2,2)1 (3,3)1用用speye命令建立的命令建立的3阶稀疏矩阵,阶稀疏矩阵,占用占用53字节,而普通的方法建立字节,而普通的方法建立的的3阶单位矩阵,会占用阶单位矩阵,会占用72字节。字节。阶数越高,节省的空间越多。阶数越高,节省的空间越多。一、稀疏矩阵的建立一、稀疏矩阵的建立 speye命令命令 建立建立n阶单位稀疏矩阵阶

48、单位稀疏矩阵 sparse(i,j,n)建立建立ij阶,最后一个元素为阶,最后一个元素为n的稀疏矩阵的稀疏矩阵sparse 命令命令 sparse(1:m,n,p)建立建立mn阶稀疏矩阵阶稀疏矩阵,第第n列元素为列元素为p sparse(m,1:n,p)建立建立mn阶稀疏矩阵阶稀疏矩阵,第第m行元素为行元素为p sparse(A)将普通矩阵将普通矩阵A转换成稀疏矩阵转换成稀疏矩阵 full(A)将稀疏矩阵转换成普通矩阵将稀疏矩阵转换成普通矩阵当稀疏矩阵的阶数很高时,不能用当稀疏矩阵的阶数很高时,不能用full命令将其转化为命令将其转化为普通矩阵,因为会占用太多的内存。普通矩阵,因为会占用太多的

49、内存。二、稀疏矩阵的操作函数二、稀疏矩阵的操作函数 find 找出矩阵非零元素的下标找出矩阵非零元素的下标 nonzeros 寻找矩阵的非零元素寻找矩阵的非零元素find函数返回非零元素所在的行列,不显示元素的值;函数返回非零元素所在的行列,不显示元素的值;nonzeros函数返回由非零元素组成的列向量,不显示函数返回由非零元素组成的列向量,不显示下标下标 sprandn(m,n,d)随机产生服从正态分布的随机产生服从正态分布的m n阶的稀疏矩阵,阶的稀疏矩阵,d为数据之间的分布密度参数为数据之间的分布密度参数 spy(A,标记形状颜色,标号大小标记形状颜色,标号大小)显示稀疏矩显示稀疏矩阵的

50、结构阵的结构spy函数无返回值,它将要显示结构的矩阵以图形的函数无返回值,它将要显示结构的矩阵以图形的形式显示出来形式显示出来 nnz 寻找稀疏矩阵非零元素的个数寻找稀疏矩阵非零元素的个数2.5 多项式运算多项式运算(ployfun)可用行向量可用行向量 p=an an-1 a1 a0表示表示MATLAB语言把多项式表达成一个行向量,该向量中的语言把多项式表达成一个行向量,该向量中的元素是按多项式降幂排列的。元素是按多项式降幂排列的。2.5.1 多项式的表达与创建多项式的表达与创建所以,输入语句所以,输入语句p=1 2 0-5 6即表示创建多项式即表示创建多项式1.poly(A)由指定的根组成

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁