数值运算及数据类型.ppt

上传人:wuy****n92 文档编号:88338849 上传时间:2023-04-25 格式:PPT 页数:30 大小:335.50KB
返回 下载 相关 举报
数值运算及数据类型.ppt_第1页
第1页 / 共30页
数值运算及数据类型.ppt_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《数值运算及数据类型.ppt》由会员分享,可在线阅读,更多相关《数值运算及数据类型.ppt(30页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第二章 数值运算及数据类型 Matlab技术技术本章目标1 1、掌握矩阵、数组的创建和标识方法、掌握矩阵、数组的创建和标识方法2 2、掌握矩阵的算术、关系及逻辑运算、掌握矩阵的算术、关系及逻辑运算3 3、特殊矩阵、特殊矩阵Matlab技术技术第一节第一节 数组和矩阵的创建数组和矩阵的创建u数组数组:是指由一组实数或复数排成的长方阵列(:是指由一组实数或复数排成的长方阵列(ArrayArray)。)。u数组运算数组运算:是指无论在数组上施加什么运算(:是指无论在数组上施加什么运算(+、-、或函数),总认为那种运算对被运算数组中的每个元或函数),总认为那种运算对被运算数组中的每个元素(素(Elem

2、entElement)平等地实施同样的操作。)平等地实施同样的操作。u目的:目的:使计算程序简单、易读,使程序指令更接近于教科书上的数学使计算程序简单、易读,使程序指令更接近于教科书上的数学计算公式;计算公式;提高程序的向量化程度,提高计算效率,节省计算机开提高程序的向量化程度,提高计算效率,节省计算机开销销。Matlab技术技术n 一维数组的创建一维数组的创建(1 1)逐个元素输入法)逐个元素输入法 x=2 pi/2 sqrt(3)3+5ix=2 pi/2 sqrt(3)3+5i (2 2)冒号生成法)冒号生成法通过通过“步长步长”设定,生成一维设定,生成一维“行行”数组的方法。数组的方法。

3、通用格式:通用格式: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默认值为默认值为100100。logspace(a,b,n)logspace(a,b,n):生成:生成1010a a到到1010b b之间按对数等分的之间按对数等分的n n个元素的行向量,个元素的行向量,n n默认值为默

4、认值为5050。Matlab技术技术n 二维数组的创建二维数组的创建u 直接输入法直接输入法对于较小数组,从键盘上直接输入最方便。对于较小数组,从键盘上直接输入最方便。二维数组必须有以下三个要素:二维数组必须有以下三个要素:整个输入数组必须以方括号整个输入数组必须以方括号“”为其首尾;为其首尾;数组的行与行之间必须用分号数组的行与行之间必须用分号“;”或回车键隔离;或回车键隔离;数组元素必须由逗号数组元素必须由逗号“,”或空格分隔。或空格分隔。u 利用利用M M文件创建和保存数组文件创建和保存数组对于今后经常需要调用的数组,尤其是比较大而复杂的对于今后经常需要调用的数组,尤其是比较大而复杂的数

5、组,为它专门建立一个数组,为它专门建立一个M M文件是值得的。文件是值得的。Matlab技术技术u MATLABMATLAB函数法函数法zeros(m,nzeros(m,n)生成全生成全0 0矩阵矩阵ones(m,n)ones(m,n)生成全生成全1 1矩阵矩阵eye(m,n)eye(m,n)生成单位矩阵生成单位矩阵rand(m,n)rand(m,n)生成均匀分布的随机矩阵生成均匀分布的随机矩阵(0.0-1.0)(0.0-1.0)randn(m,n)randn(m,n)生成正态分布的随机矩阵生成正态分布的随机矩阵magic(n)magic(n)产生产生n n阶魔方矩阵(行、列、对角线元素阶魔方

6、矩阵(行、列、对角线元素和相等)和相等)u 通过通过MATMAT数据文件加载矩阵数据文件加载矩阵loadload指令,或指令,或File File Import DataImport DataMatlab技术技术第二节数组元素的标识n 一维数组的标识n 二维数组的标识 全下标标识全下标标识:行下标,列下标:行下标,列下标优点:优点:几何概念清楚,引述简单。几何概念清楚,引述简单。例例:矩阵矩阵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,

7、2)=12 2)=12 A(3 A(3,5)=15,A(15)=15,A(1,5)=5 5)=5 Matlab技术技术Matlab技术技术Matlab技术技术 逻辑逻辑1 1标识标识 -通过与通过与A A同样大小的逻辑数组同样大小的逻辑数组L L中中“逻辑值逻辑值1 1”所在的位所在的位置,指出置,指出A A中元素的位置。中元素的位置。-L -L的元素或是的元素或是0 0或是或是1 1,它是,它是“逻辑数组逻辑数组(Logical(Logical Array)Array)”。是一种特殊的数据类型。是一种特殊的数据类型。例例:A(L):A(L)逻辑数组的创建直接建立逻辑数组x=true fals

8、e用逻辑运算建立逻辑数组Matlab技术技术子数组寻访和赋值格式汇总表 子数组寻访和赋值子数组寻访和赋值使使 用用 说说 明明A(r,c)A(r,c)它由它由A 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的各列按自左到右的次序,首尾相接而生成的各列按自左到右的次序,首尾相接而生成“

9、一维长列一维长列”数数组组A(s)A(s)“单下标单下标”寻访。生成寻访。生成“s“s指定的指定的”一维数组。一维数组。s s若是若是“行数组行数组”(或(或“列数组列数组”),则),则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以以“双下标双下标”方式,对

10、子数组方式,对子数组A(r,c)A(r,c)进行赋值;进行赋值;SaSa的的“行宽、列长行宽、列长”必须与必须与A(r,c)A(r,c)的的“行宽、列长行宽、列长”相同相同A(:)=D(:)A(:)=D(:)全元素赋值方式。结果:保持全元素赋值方式。结果:保持A A的的“行宽、列长行宽、列长”不变。条件:不变。条件:A A、D D两个数组的总元素相两个数组的总元素相等,但等,但“行宽、列长行宽、列长”不一定相同不一定相同A(s)=SaA(s)=Sa按按“单下标单下标”方式,对方式,对A A的部分元素重新赋值。结果:保持的部分元素重新赋值。结果:保持A A的的“行宽、列长行宽、列长”不变。条不变

11、。条件:件:s s单下标数组的长度必须与单下标数组的长度必须与“一维数组一维数组”Sa”Sa的长度相等,但是的长度相等,但是s s、SaSa不一定同是不一定同是“行行数组数组”或或“列数组列数组”Matlab技术技术n 多(高)维数组的创建多(高)维数组的创建多维数组的第一维称为多维数组的第一维称为“行(行(RowRow)”,第二维称为,第二维称为“列列(ColumnColumn)”,第三维称为,第三维称为“页(页(PagePage)”,第四维称为,第四维称为“箱(箱(BoxBox)”,直接通过全下标元素赋值方式创建多维数组;直接通过全下标元素赋值方式创建多维数组;由若干同样大小的低维数组组合

12、成多维数组;由若干同样大小的低维数组组合成多维数组;由函数由函数ones,zeros,rand,randnones,zeros,rand,randn直接创建标准多维数组;直接创建标准多维数组;借助借助cat,repmat,reshapecat,repmat,reshape等函数构作多维数组。等函数构作多维数组。第三节多维数组的创建和标识Matlab技术技术n多维数组的标识数组的维数(数组的维数(DimensionDimension)和)和ndimsndims指令指令指令指令ndims(Andims(A)可直接给出数组可直接给出数组A A的维数。的维数。数组的大小(数组的大小(SizeSize)

13、和)和sizesize指令指令不管不管A A数组的维数是多少,数组的维数是多少,size(Asize(A)可给出可给出A A各维的大各维的大小,而指令小,而指令length(Alength(A)可给出所有维中的最大长度。可给出所有维中的最大长度。即即length(Alength(A)等价于等价于max(size(Amax(size(A)。Matlab技术技术第四节 数组运算和矩阵运算无无论论在在数数组组上上施施加加什什么么运运算算(+、-、或或函函数数),总总认认为为那那种种运运算算对对被被运运算算数数组组中中的的每每个个元元素素(ElementElement)平等地实施同样的操作。平等地实施

14、同样的操作。当当两两个个数数组组具具有有相相同同阶阶数数时时,进进行行加加、减减、乘乘、除除的的点点运算,其运算是按元素对元素方式进行的。运算,其运算是按元素对元素方式进行的。n 数组运算Matlab技术技术n 矩阵运算矩阵转置:转置符:矩阵转置:转置符:矩阵的乘法矩阵的乘法矩阵的相除矩阵的相除左除,符号为左除,符号为/右除,符号为右除,符号为 矩阵的乘方矩阵的乘方当矩阵为方阵时,可进行指数乘法运算。当矩阵为方阵时,可进行指数乘法运算。Matlab技术技术n 数组运算和矩阵运算的区别从外观形状和数据结构上看,二维数组和(数学中的)从外观形状和数据结构上看,二维数组和(数学中的)矩阵没有区别。矩

15、阵没有区别。但是,矩阵作为一种变换或映射算子的体现,矩阵运算但是,矩阵作为一种变换或映射算子的体现,矩阵运算有着明确而严格的数学规则;数组运算是有着明确而严格的数学规则;数组运算是MATLABMATLAB软件所软件所定义的规则,其目的是为了数据管理方便、操作简单、定义的规则,其目的是为了数据管理方便、操作简单、指令形式自然和执行计算的有效。指令形式自然和执行计算的有效。虽然数组运算尚缺乏严谨的数学推理,数组运算本身仍虽然数组运算尚缺乏严谨的数学推理,数组运算本身仍在完善和成熟中,但它的作用和影响正随着在完善和成熟中,但它的作用和影响正随着MATLABMATLAB的发的发展而扩大。展而扩大。Ma

16、tlab技术技术数组运算和矩阵运算指令对照汇总(一)数组运算和矩阵运算指令对照汇总(一)数数 组组 运运 算算矩矩 阵阵 运运 算算指指 令令含含 义义指指 令令含含 义义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.A以p为底,分别以A的元素为指数求幂值pAA阵为

17、方阵时,标量的矩阵乘方A+B对应元素相加A+B矩阵相加A-B对应元素相减A-B矩阵相减Matlab技术技术数组运算和矩阵运算指令对照汇总(二)数组运算和矩阵运算指令对照汇总(二)数数 组组 运运 算算矩矩 阵阵 运运 算算指指 令令含含 义义指指 令令含含 义义A.*B对应元素相乘对应元素相乘A*B内维相同矩阵的乘积内维相同矩阵的乘积A./BA的元素被的元素被B的对应元素除的对应元素除A/BA右除右除BB.A(一定与上相同)(一定与上相同)BAA左除左除B(一般与右除不同)(一般与右除不同)exp(A)以自然数以自然数e为底,分别以为底,分别以A的的元素为指数,求幂元素为指数,求幂expm(A

18、)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阵对应元素间的逻辑阵对应元素间的逻辑运算。运算。#代表逻辑运算符代表逻辑运算符Matlab技术技术第五节 特殊矩阵Matlab技术技术

19、n 非数NaN按按IEEEIEEE规定,规定,0/00/0,/,00等运算都会产生非数等运算都会产生非数(Not a NumberNot a Number)。该非数在)。该非数在MATLABMATLAB中用中用NaNNaN或或nannan记述。记述。根据根据IEEEIEEE数学规范,数学规范,NaNNaN具有以下性质:具有以下性质:NaNNaN参与运算所得的结果也是参与运算所得的结果也是NaNNaN,即具有传递性;,即具有传递性;非数没有大小概念,因此不能比较两个非数的大小。非数没有大小概念,因此不能比较两个非数的大小。非数的功用:非数的功用:真实记述真实记述0/00/0,/,00运算的后果;

20、运算的后果;避免可能因避免可能因0/00/0,/,00运算而造成程序执行运算而造成程序执行的中断;的中断;在数据可视化中,用来裁剪图形。在数据可视化中,用来裁剪图形。Matlab技术技术n 空数组(空阵)“空空”数组数组是是MATLABMATLAB为操作和表述需要而专门设计的一为操作和表述需要而专门设计的一种数组。种数组。某维长度为某维长度为0 0或若干维长度均为或若干维长度均为0 0的数组都是的数组都是“空空”数组。数组。“空空”数组的数组的功用功用:在有在有“空空”数组参与的运算时,计算结果中的数组参与的运算时,计算结果中的“空空”可以合理地解释可以合理地解释“所得结果的含义所得结果的含义

21、”;运用运用“空空”数组对其他非空数组赋值,可以改变数数组对其他非空数组赋值,可以改变数组的大小,但不能改变数组的维数。组的大小,但不能改变数组的维数。Matlab技术技术第六节 关系操作和逻辑操作u在程序流控制和逻辑、模糊逻辑推理中,都需要对一类在程序流控制和逻辑、模糊逻辑推理中,都需要对一类是非问题作出是非问题作出“是真,是假是真,是假”的回答。为此的回答。为此MATLABMATLAB设计设计了关系操作、逻辑操作了关系操作、逻辑操作 和一些相关函数。和一些相关函数。uMATLABMATLAB的的约定约定:在所有关系表达式和逻辑表达式中,作为输入的任何非在所有关系表达式和逻辑表达式中,作为输

22、入的任何非0 0数都被数都被看作是看作是“逻辑真逻辑真”,而只有,而只有0 0才被认为是才被认为是“逻辑假逻辑假”。所有关系表达式和逻辑表达式的计算结果,即输出,是一个由所有关系表达式和逻辑表达式的计算结果,即输出,是一个由0 0和和1 1组成的组成的“逻辑数组(逻辑数组(Logical ArrayLogical Array)”。在此数组中的。在此数组中的1 1表表示示“真真”,0 0表示表示“假假”。逻辑数组是一种特殊的数值数组。逻辑数组是一种特殊的数值数组。Matlab技术技术指指 令令含含 义义指指 令令含含 义义小于小于=大于等于大于等于=小于等于小于等于=等于等于大于大于=不等于不等

23、于 说明说明 u标量可以与任何维数组进行比较。比较在此标量与数组每个元素之标量可以与任何维数组进行比较。比较在此标量与数组每个元素之间进行,因此比较结果将与被比较数组同维。间进行,因此比较结果将与被比较数组同维。u当比较量中没有标量时,关系符两端进行比较的数组必须维数相同。当比较量中没有标量时,关系符两端进行比较的数组必须维数相同。比较在两数组相同位置上的元素间进行,因此比较结果将与被比数组比较在两数组相同位置上的元素间进行,因此比较结果将与被比数组同维。同维。n 关系操作Matlab技术技术t=-2*pi:pi/10:2*pi;y=sin(t)./t;tt=t+(t=0)*eps;yy=si

24、n(tt)./tt;subplot(1,2,1),plot(t,y),axis(-7,7,-0.5,1.2),xlabel(t),ylabel(y),title(残缺残缺图图形形)subplot(1,2,2),plot(tt,yy),axis(-7,7,-0.5,1.2)xlabel(t),ylabel(yy),title(正确正确图图形形)Warning:Divide by zero.n 关系操作示例Matlab技术技术指指 令令含含 义义指指 令令含含 义义指指 令令含含 义义与、和与、和|或或否、非否、非 说明说明 u标量可以与任何维数组进行逻辑运算。运算比较在标量与数组每个标量可以与任

25、何维数组进行逻辑运算。运算比较在标量与数组每个元素之间进行,因此运算结果与参与运算的数组同维。元素之间进行,因此运算结果与参与运算的数组同维。u当逻辑运算中没有标量时,参与运算的数组必须维数相同。运算在当逻辑运算中没有标量时,参与运算的数组必须维数相同。运算在两数组相同位置上的元素间进行,因此运算结果数组必定和参与运算两数组相同位置上的元素间进行,因此运算结果数组必定和参与运算的数组同维。的数组同维。n 逻辑操作Matlab技术技术l【例】逻辑操作示例。注意逻辑运算和关系运算之间的优先级次序。A=-3:3;lL1=(A0)lL2=A0lL3=AlL4=A-2&A1 lL1=l 1 1 1 1

26、0 0 0lL2=l 0 0 0 1 0 0 0lL3=l 0 0 0 1 0 0 0lL4=l 0 0 1 1 0 0 0 n 逻辑操作示例Matlab技术技术n 关系、逻辑函数MATLABMATLAB中能给出中能给出“逻辑数组逻辑数组”类型计算结果的函数有很类型计算结果的函数有很多,包括:关系逻辑函数、工作状态判断函数、特殊数多,包括:关系逻辑函数、工作状态判断函数、特殊数据判断函数、数据类型判断函数等。据判断函数、数据类型判断函数等。Matlab技术技术关系逻辑函数关系逻辑函数指指 令令含含 义义all(A)all(A)当向量当向量A A的元素全非的元素全非0 0时,结果才是时,结果才是

27、1 1;否则结;否则结果是果是0 0any(A)any(A)只要向量只要向量A A中有非中有非0 0元素,结果就是元素,结果就是1 1;否则结;否则结果是果是0 0isequal(A,isequal(A,B)B)A A,B B对应元素相等时,相应元素位置取对应元素相等时,相应元素位置取1 1;否;否则取则取0 0 xor(A,B)xor(A,B)A A,B B对应元素同为对应元素同为0 0,或非,或非0 0时,相应元素位置时,相应元素位置取取0 0;否则取;否则取1 1Matlab技术技术特殊数据判断指令指令指令含义含义指令指令含义含义isempty(isempty(x)x)x x是空,则结果

28、为是空,则结果为1 1isnan(x)isnan(x)对应对应x x中非数中非数NaNNaN元素的元素的位置取位置取1 1,其余均为,其余均为0 0isfiniteisfinite(x)(x)对应对应x x中有限大小元素的中有限大小元素的位置取位置取1 1,其余均为,其余均为0 0isprime(isprime(x)x)对应对应x x中质数元素的位置中质数元素的位置取取1 1,其余均为,其余均为0 0isinf(x)isinf(x)对应对应x x中无穷大小元素的中无穷大小元素的位置取位置取1 1,其余均为,其余均为0 0isreal(xisreal(x)对应对应x x中实数元素的位置中实数元素

29、的位置取取1 1,其余均为,其余均为0 0isletterisletter(x)(x)对应对应x x中英文字母的元素中英文字母的元素位置取位置取1 1,其余均为,其余均为0 0isspace(isspace(x)x)对应对应x x中空格的元素位置中空格的元素位置取取1 1,其余均为,其余均为0 0Matlab技术技术数据类型判断指令指令指令含义含义指令指令含义含义isa(x,name)输入宗量输入宗量name是指具体数据是指具体数据类型的英文名称。假如类型的英文名称。假如x是指是指定的数据类型,则结果为定的数据类型,则结果为1ishandle(x)若若x是图柄代号,则结果为是图柄代号,则结果为

30、1iscell(x)若若x是元胞,则结果为是元胞,则结果为1islogical(x)若若x是逻辑数,则结果为是逻辑数,则结果为1iscellstr(x)若若x是字符串组成的元胞数是字符串组成的元胞数组,则结果为组,则结果为1isnumeric(x)若若x是数值,则结果为是数值,则结果为1ischar(x)若若x是字符串,则结果为是字符串,则结果为1isobject(x)若若x是对象,则结果为是对象,则结果为1isfield(x,name)若若name指定的名称是构架指定的名称是构架x的域名,则结果为的域名,则结果为1issparse(x)若若x稀疏,则结果为稀疏,则结果为1isglobal(x)若若x是全局变量,结果为是全局变量,结果为1isstruct(x)若若x是构架,则结果为是构架,则结果为1Matlab技术技术

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

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com