第二章数值运算优秀PPT.ppt
《第二章数值运算优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第二章数值运算优秀PPT.ppt(70页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章数值运算第二章数值运算第一页,本课件共有70页Matlab程序设计程序设计第二章 数值运算第二页,本课件共有70页Matlab程序设计程序设计本章目标1 1、掌握矩阵、数组的创建和标识方法、掌握矩阵、数组的创建和标识方法2 2、掌握矩阵的算术、关系及逻辑运算、掌握矩阵的算术、关系及逻辑运算3 3、特殊矩阵、特殊矩阵4 4、字符串数组、字符串数组5 5、异质数组、异质数组6 6、结构数组、结构数组第三页,本课件共有70页Matlab程序设计程序设计第一节第一节 数组和矩阵的创建数组和矩阵的创建u数组数组:是指由一组实数或复数排成的长方阵列。:是指由一组实数或复数排成的长方阵列。u数组运算数
2、组运算:是指无论在数组上施加什么运算(:是指无论在数组上施加什么运算(+、-、或函数),总认为那种运算对被运算数组中的每个元素或函数),总认为那种运算对被运算数组中的每个元素(ElementElement)平等地实施同样的操作。)平等地实施同样的操作。u目的:目的:使计算程序简单、易读,使程序指令更接近于教科书使计算程序简单、易读,使程序指令更接近于教科书上的数学计算公式;上的数学计算公式;提高程序的向量化程度,提高计算效率,节省计算机提高程序的向量化程度,提高计算效率,节省计算机开销。开销。第四页,本课件共有70页Matlab程序设计程序设计n 一维数组的创建一维数组的创建(1 1)逐个元素
3、输入法)逐个元素输入法 x=2 pi/2 sqrt(3)3+5ix=2 pi/2 sqrt(3)3+5i (2 2)冒号生成法)冒号生成法通过通过“步长步长”设定,生成一维设定,生成一维“行行”数组的方法。数组的方法。通用格式:通用格式:x=a:inc:bx=a:inc:b(3 3)采用)采用linspacelinspace和和logspacelogspace函数法函数法 x=linspace(a,b,n)x=linspace(a,b,n):该指令生成(:该指令生成(1 n1 n)数组,其作)数组,其作用与用与x=a:(b-a)/(n-1):bx=a:(b-a)/(n-1):b同,同,n n默
4、认值为默认值为100100。logspace(a,b,n)logspace(a,b,n):生成:生成1010a a到到1010b b之间按对数等分的之间按对数等分的n n个个元素的行向量,元素的行向量,n n默认值为默认值为5050。第五页,本课件共有70页Matlab程序设计程序设计n 二维数组的创建二维数组的创建u 直接输入法直接输入法对于较小数组,从键盘上直接输入最方便。对于较小数组,从键盘上直接输入最方便。二维数组必须有以下三个要素:二维数组必须有以下三个要素:整个输入数组必须以方括号整个输入数组必须以方括号“”为其首尾;为其首尾;数组的行与行之间必须用分号数组的行与行之间必须用分号“
5、;”或回车键隔离;或回车键隔离;数组元素必须由逗号数组元素必须由逗号“,”或空格分隔。或空格分隔。u 利用利用M M文件创建和保存数组文件创建和保存数组对于今后经常需要调用的数组,尤其是比较大而复杂的数组,为对于今后经常需要调用的数组,尤其是比较大而复杂的数组,为它专门建立一个它专门建立一个M M文件是值得的。文件是值得的。第六页,本课件共有70页Matlab程序设计程序设计u MATLABMATLAB函数函数法法zeros(m,nzeros(m,n)生成全生成全0 0矩阵矩阵ones(m,n)ones(m,n)生成全生成全1 1矩阵矩阵eye(m,n)eye(m,n)生成单位矩阵生成单位矩阵
6、rand(m,n)rand(m,n)生成均匀分布的随机矩阵生成均匀分布的随机矩阵(0.01.0)(0.01.0)randn(m,n)randn(m,n)生成正态分布的随机矩阵生成正态分布的随机矩阵magic(n)magic(n)产生产生n n阶魔方矩阵(行、列、对角线元阶魔方矩阵(行、列、对角线元素和相等)素和相等)u 通过通过MATMAT数据文件加载矩阵数据文件加载矩阵loadload指令,或指令,或File File Import DataImport Data第七页,本课件共有70页Matlab程序设计程序设计第二节数组元素的标识n 一维数组的标识n 二维数组的标识 全下标标识全下标标识
7、:行下标,列下标:行下标,列下标优点:优点:几何概念清楚,引述简单。几何概念清楚,引述简单。例例:矩阵矩阵A=1 2 3 4 5A=1 2 3 4 5 6 7 8 9 106 7 8 9 1011 12 13 14 15 11 12 13 14 15 则则 A(2A(2,3)=8 ,A(33)=8 ,A(3,2)=12 2)=12 A(3 A(3,5)=15,A(15)=15,A(1,5)=5 5)=5 第八页,本课件共有70页Matlab程序设计程序设计第九页,本课件共有70页Matlab程序设计程序设计第十页,本课件共有70页Matlab程序设计程序设计 逻辑逻辑1 1标识标识 -通过与通
8、过与A A同样大小的逻辑数组同样大小的逻辑数组L L中中“逻辑值逻辑值1 1”所在的位置,所在的位置,指出指出A A中元素的位置。中元素的位置。-L-L的元素或是的元素或是0 0或是或是1 1,它是,它是“逻辑数组逻辑数组(Logical Array)(Logical Array)”。是一种特殊的数据类型。是一种特殊的数据类型。例例:A(L):A(L)逻辑数组的创建直接建立逻辑数组x=true false用逻辑运算建立逻辑数组第十一页,本课件共有70页Matlab程序设计程序设计子数组寻访和赋值格式汇总表 子数组寻访和赋值子数组寻访和赋值使使 用用 说说 明明A(r,c)A(r,c)它由它由A
9、 A的的“r r指定行指定行”和和“c c指定列指定列”上的元素组成上的元素组成A(r,:)A(r,:)它由它由A A的的“r r指定行指定行”和和“全部列全部列”上的元素组成上的元素组成A(:,c)A(:,c)它由它由A A的的“全部行全部行”和和“c c指定列指定列”上的元素组成上的元素组成A(:)A(:)“单下标元素单下标元素”寻访。它由寻访。它由A A的各列按自左到右的次序,首尾相接而生成的各列按自左到右的次序,首尾相接而生成“一维长列一维长列”数组数组A(s)A(s)“单下标单下标”寻访。生成寻访。生成“s s指定的指定的”一维数组。一维数组。s s若是若是“行数组行数组”(或(或“
10、列数组列数组”),则),则A(s)A(s)就是就是长度相同的长度相同的“行数组行数组”(或(或“列数组列数组”)A(L)A(L)“逻辑逻辑1 1”寻访。生成寻访。生成“一维一维”列数组:由与列数组:由与A A同样大小的同样大小的“逻辑数组逻辑数组”L L中的中的“1 1”元素选出元素选出A A的的对应元素;按对应元素;按“单下标单下标”次序排成长列组成。次序排成长列组成。A(r,c)=SaA(r,c)=Sa以以“双下标双下标”方式,对子数组方式,对子数组A(r,c)A(r,c)进行赋值;进行赋值;SaSa的的“行宽、列长行宽、列长”必须与必须与A(r,c)A(r,c)的的“行宽、行宽、列长列长
11、”相同相同A(:)=D(:)A(:)=D(:)全元素赋值方式。结果:保持全元素赋值方式。结果:保持A A的的“行宽、列长行宽、列长”不变。条件:不变。条件:A A、D D两个数组的总元素相等,两个数组的总元素相等,但但“行宽、列长行宽、列长”不一定相同不一定相同A(s)=SaA(s)=Sa按按“单下标单下标”方式,对方式,对A A的部分元素重新赋值。结果:保持的部分元素重新赋值。结果:保持A A的的“行宽、列长行宽、列长”不变。条件:不变。条件:s s单下标数组的长度必须与单下标数组的长度必须与“一维数组一维数组”Sa Sa的长度相等,但是的长度相等,但是s s、SaSa不一定同是不一定同是“
12、行数组行数组”或或“列数组列数组”第十二页,本课件共有70页Matlab程序设计程序设计n 多(高)维数组的创建多(高)维数组的创建多维数组的第一维称为多维数组的第一维称为“行(行(RowRow)”,第二维称为,第二维称为“列(列(ColumnColumn)”,第三维称为,第三维称为“页(页(PagePage)”,第四维称为,第四维称为“箱(箱(BoxBox)”,直接通过全下标元素赋值方式创建多维数组;直接通过全下标元素赋值方式创建多维数组;由若干同样大小的低维数组组合成多维数组;由若干同样大小的低维数组组合成多维数组;由函数由函数ones,zeros,rand,randnones,zeros
13、,rand,randn直接创建标准多维数组;直接创建标准多维数组;借助借助cat,repmat,reshapecat,repmat,reshape等函数构作多维数组。等函数构作多维数组。第三节多维数组的创建和标识第十三页,本课件共有70页Matlab程序设计程序设计n多维数组的标识数组的维数(数组的维数(DimensionDimension)和)和ndimsndims指令指令指令指令ndims(A)ndims(A)可直接给出数组可直接给出数组A A的维数。的维数。数组的大小(数组的大小(SizeSize)和)和sizesize指令指令不管不管A A数组的维数是多少,数组的维数是多少,size(
14、A)size(A)可给出可给出A A各维的大小,各维的大小,而指令而指令length(A)length(A)可给出所有维中的最大长度。即可给出所有维中的最大长度。即length(A)length(A)等价于等价于max(size(A)max(size(A)。第十四页,本课件共有70页Matlab程序设计程序设计第四节 数组运算和矩阵运算无无论论在在数数组组上上施施加加什什么么运运算算(+、-、或或函函数数),总总认认为为那那种种运运算算对对被被运运算算数数组组中中的的每每个个元元素素(ElementElement)平平等等地实施同样的操作。地实施同样的操作。当当两两个个数数组组具具有有相相同同
15、阶阶数数时时,进进行行加加、减减、乘乘、除除的的点点运运算算,其其运算是按元素对元素方式进行的。运算是按元素对元素方式进行的。n 数组运算第十五页,本课件共有70页Matlab程序设计程序设计n 矩阵运算矩阵转置:转置符:矩阵转置:转置符:矩阵的乘法矩阵的乘法矩阵的相除矩阵的相除左除,符号为左除,符号为/右除,符号为右除,符号为 矩阵的乘方矩阵的乘方当矩阵为方阵时,可进行指数乘法运算。当矩阵为方阵时,可进行指数乘法运算。第十六页,本课件共有70页Matlab程序设计程序设计n 数组运算和矩阵运算的区别从外观形状和数据结构上看,二维数组和(数学中的)矩从外观形状和数据结构上看,二维数组和(数学中
16、的)矩阵没有区别。阵没有区别。但是,矩阵作为一种变换或映射算子的体现,矩阵运算但是,矩阵作为一种变换或映射算子的体现,矩阵运算有着明确而严格的数学规则;数组运算是有着明确而严格的数学规则;数组运算是MATLABMATLAB软件所软件所定义的规则,其目的是为了数据管理方便、操作简单、定义的规则,其目的是为了数据管理方便、操作简单、指令形式自然和执行计算的有效。指令形式自然和执行计算的有效。虽然数组运算尚缺乏严谨的数学推理,数组运算本身仍在虽然数组运算尚缺乏严谨的数学推理,数组运算本身仍在完善和成熟中,但它的作用和影响正随着完善和成熟中,但它的作用和影响正随着MATLABMATLAB的发展而的发展
17、而扩大。扩大。第十七页,本课件共有70页Matlab程序设计程序设计数组运算和矩阵运算指令对照汇总(一)数组运算和矩阵运算指令对照汇总(一)数数 组组 运运 算算矩矩 阵阵 运运 算算指指 令令含含 义义指指 令令含含 义义A.非共轭转置。相当于conj(A)A共轭转置A=s把标量s赋给A的每个元素s+B标量s分别与B元素之和s-B,B-s标量s分别与B的元素之差s.*A标量s分别与A的元素之积s*A标量s分别与A每个元素之积s./B,B.ss分别被B的元素除s*inv(B)B阵的逆乘sA.nA的每个元素自乘n次AnA为方阵时,自乘n次A.p对A的各元素分别求非整数幂Ap方阵A的非整数乘方p.
18、A以p为底,分别以A的元素为指数求幂值pAA阵为方阵时,标量的矩阵乘方A+B对应元素相加A+B矩阵相加A-B对应元素相减A-B矩阵相减第十八页,本课件共有70页Matlab程序设计程序设计数组运算和矩阵运算指令对照汇总(二)数组运算和矩阵运算指令对照汇总(二)数数 组组 运运 算算矩矩 阵阵 运运 算算指指 令令含含 义义指指 令令含含 义义A.*B对应元素相乘对应元素相乘A*B内维相同矩阵的乘积内维相同矩阵的乘积A./BA的元素被的元素被B的对应元素除的对应元素除A/BA右除右除BB.A(一定与上相同)(一定与上相同)BAA左除左除B(一般与右除不同)(一般与右除不同)exp(A)以自然数以
19、自然数e为底,分别以为底,分别以A的的元素为指数,求幂元素为指数,求幂expm(A)A的矩阵指数函数的矩阵指数函数log(A)对对A的各元素求对数的各元素求对数logm(A)A的矩阵对数函数的矩阵对数函数sqrt(A)对对A的各元素求平方根的各元素求平方根sqrtm(A)A的矩阵平方根函数的矩阵平方根函数f(A)求求A各个元素的函数值。各个元素的函数值。f(.)表示为上节所列各函数表示为上节所列各函数funm(A,FN)一般函数矩阵一般函数矩阵A#BA、B阵对应元素间的关系运阵对应元素间的关系运算。算。#代表关系运算符代表关系运算符ABA、B阵对应元素间的逻辑运阵对应元素间的逻辑运算。算。代表
20、逻辑运算符代表逻辑运算符第十九页,本课件共有70页Matlab程序设计程序设计第五节 特殊矩阵第二十页,本课件共有70页Matlab程序设计程序设计n 非数NaN按按IEEEIEEE规定,规定,0/00/0,/,00等运算都会产生非数(等运算都会产生非数(Not Not a Numbera Number)。该非数在)。该非数在MATLABMATLAB中用中用NaNNaN或或nannan记述。记述。根据根据IEEEIEEE数学规范,数学规范,NaNNaN具有以下性质:具有以下性质:NaNNaN参与运算所得的结果也是参与运算所得的结果也是NaNNaN,即具有传递性;,即具有传递性;非数没有大小概念
21、,因此不能比较两个非数的大小。非数没有大小概念,因此不能比较两个非数的大小。非数的功用:非数的功用:真实记述真实记述0/00/0,/,00运算的后果;运算的后果;避免可能因避免可能因0/00/0,/,00运算而造成程序执行的中运算而造成程序执行的中断;断;在数据可视化中,用来裁剪图形。在数据可视化中,用来裁剪图形。第二十一页,本课件共有70页Matlab程序设计程序设计n 空数组(空阵)“空空”数组数组是是MATLABMATLAB为操作和表述需要而专门设计的一种为操作和表述需要而专门设计的一种数组。数组。某维长度为某维长度为0 0或若干维长度均为或若干维长度均为0 0的数组都是的数组都是“空空
22、”数组。数组。“空空”数组的数组的功用功用:在有在有“空空”数组参与的运算时,计算结果中的数组参与的运算时,计算结果中的“空空”可以可以合理地解释合理地解释“所得结果的含义所得结果的含义”;运用运用“空空”数组对其他非空数组赋值,可以改变数组的大数组对其他非空数组赋值,可以改变数组的大小,但不能改变数组的维数。小,但不能改变数组的维数。第二十二页,本课件共有70页Matlab程序设计程序设计第六节 关系操作和逻辑操作u在程序流控制和逻辑、模糊逻辑推理中,都需要对一类在程序流控制和逻辑、模糊逻辑推理中,都需要对一类是非问题作出是非问题作出“是真,是假是真,是假”的回答。为此的回答。为此MATLA
23、BMATLAB设计设计了关系操作、逻辑操作了关系操作、逻辑操作 和一些相关函数。和一些相关函数。uMATLABMATLAB的的约定约定:在所有关系表达式和逻辑表达式中,作为输入的任何非在所有关系表达式和逻辑表达式中,作为输入的任何非0 0数都被数都被看作是看作是“逻辑真逻辑真”,而只有,而只有0 0才被认为是才被认为是“逻辑假逻辑假”。所有关系表达式和逻辑表达式的计算结果,即输出,是一个由所有关系表达式和逻辑表达式的计算结果,即输出,是一个由0 0和和1 1组成的组成的“逻辑数组(逻辑数组(Logical ArrayLogical Array)”。在此数组中的。在此数组中的1 1表示表示“真真
24、”,0 0表示表示“假假”。逻辑数组是一种特殊的数值数组。逻辑数组是一种特殊的数值数组。第二十三页,本课件共有70页Matlab程序设计程序设计指指 令令含含 义义指指 令令含含 义义小于小于=大于等于大于等于=小于等于小于等于=等于等于大于大于=不等于不等于 说明说明 u标量可以与任何维数组进行比较。比较在此标量与数组每个元素之间标量可以与任何维数组进行比较。比较在此标量与数组每个元素之间进行,因此比较结果将与被比较数组同维。进行,因此比较结果将与被比较数组同维。u当比较量中没有标量时,关系符两端进行比较的数组必须维数相同。当比较量中没有标量时,关系符两端进行比较的数组必须维数相同。比较在两
25、数组相同位置上的元素间进行,因此比较结果将与被比数组同比较在两数组相同位置上的元素间进行,因此比较结果将与被比数组同维。维。n 关系操作第二十四页,本课件共有70页Matlab程序设计程序设计指指 令令含含 义义指指 令令含含 义义指指 令令含含 义义与、和与、和|或或否、非否、非 说明说明 u标量可以与任何维数组进行逻辑运算。运算比较在标量与数组每个元标量可以与任何维数组进行逻辑运算。运算比较在标量与数组每个元素之间进行,因此运算结果与参与运算的数组同维。素之间进行,因此运算结果与参与运算的数组同维。u当逻辑运算中没有标量时,参与运算的数组必须维数相同。运算在两当逻辑运算中没有标量时,参与运
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二 数值 运算 优秀 PPT
限制150内