版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章第三章 数值阵列数值阵列及向量化运算及向量化运算 数值计算的优点:适应了现代主流数值计算的优点:适应了现代主流计算机只能表示、保存、运算和输出计算机只能表示、保存、运算和输出有限精度数字的特点,计算速度快,有限精度数字的特点,计算速度快,容量大,能处理各种复杂的函数关系。容量大,能处理各种复杂的函数关系。 数值计算的缺点:只能用有限长度数值计算的缺点:只能用有限长度的数据,以有限的精度,表现有限时的数据,以有限的精度,表现有限时间和范围内的函数关系。间和范围内的函数关系。符号解法:符号解法:syms t x;ft=exp(-abs(sin(t);sx=int(ft,t,0,4);4sin
2、( )0( ), ( )( )tf tes xf t dt已知已知, 求求s(x)数值解法数值解法:dt=0.05; t=0:dt:5;Ft=exp(-abs(sin(t);Sx=cumtrapz(t,Ft);%计算计算%从从0开始到每个采样点为止开始到每个采样点为止%的区间内,的区间内,Ft曲线下的面积曲线下的面积plot(t,Sx,.k,MarkerSize,12)例例3.11说明:说明: 进行数值计算前,必须生成由一系自变量进行数值计算前,必须生成由一系自变量采样点构成的数组,然后计算各采样点对应采样点构成的数组,然后计算各采样点对应的函数值、积分值。的函数值、积分值。 执行数值计算的表
3、达式都是在执行数值计算的表达式都是在已知的数值点已知的数值点上进行的。计算结果也是上进行的。计算结果也是离散离散的。的。通过离散数据的通过离散数据的图形曲线图形曲线可以形象的体现数可以形象的体现数据之间的函数关系。注意:图形展示的函数据之间的函数关系。注意:图形展示的函数性状仅在自变量的取值区间有意义。性状仅在自变量的取值区间有意义。3.2 矩阵、数组及向量化编程矩阵、数组及向量化编程3.2.1 矩阵概念及矩阵运算规则矩阵概念及矩阵运算规则111212122212NNM NijM NMMMNaaaaaaAaaaa矩阵的四种特殊形式:矩阵的四种特殊形式:v2. 矩阵的运算规则矩阵的运算规则(见表
4、(见表3.2-1(P121)v矩阵加减:矩阵加减:A+B,A-Bv标量与矩阵加减:标量与矩阵加减:b+A,b-Av标量与矩阵相乘:标量与矩阵相乘:b*Av矩阵乘积:矩阵乘积:C=A*Bv矩阵的共轭转置:矩阵的共轭转置:B=Av矩阵的右除:矩阵的右除:C=A/B ( )v矩阵的左除:矩阵的左除:C=AB ( )v方阵的求幂:方阵的求幂:C=Amv方阵的求逆:方阵的求逆:inv(A)或或Aeye(N)例例3.2-1 C2=A*B1CA B1CABA=1+1i,2+2i,3+2i;2i+4,5+2i,6+2i;7+2i,8+2i,9+2iA=1.0000+1.0000i2.0000+2.0000i3
5、.0000+2.0000i4.0000+2.0000i5.0000+2.0000i6.0000+2.0000i7.0000+2.0000i8.0000+2.0000i9.0000+2.0000iB=AB=1.0000-1.0000i4.0000-2.0000i7.0000-2.0000i2.0000-2.0000i5.0000-2.0000i8.0000-2.0000i3.0000-2.0000i6.0000-2.0000i9.0000-2.0000i3.2.2 数组概念及数组运算规则数组概念及数组运算规则2. 数组运算规则数组运算规则(1) 同维同规模数组之间的(加、减、乘、除、求幂同维同规
6、模数组之间的(加、减、乘、除、求幂等)运算,体现为等)运算,体现为“数组对应元素间的运算数组对应元素间的运算” 。 设设A和和B的算术运算结果为数组的算术运算结果为数组C,则,则C数组的第数组的第(i,j)元素一定是数组元素一定是数组A和和B相同位置元素进行该算相同位置元素进行该算术运算的结果,即术运算的结果,即Cij=aij#bij 。(2) 标量与数组之间的(加、减、乘、除、求幂)运标量与数组之间的(加、减、乘、除、求幂)运算,体现为算,体现为“标量与数组每个元素之间的运算标量与数组每个元素之间的运算”。设标量设标量a和数组和数组B进行算术运算的结果为与进行算术运算的结果为与B大小大小相同
7、的数组相同的数组C,其中,其中Cij=a#Bij。 符号符号#可代表加减乘除幂运算中的任何一种运算。可代表加减乘除幂运算中的任何一种运算。数组运算符由数组运算符由“常规算术运算符前加小黑点常规算术运算符前加小黑点”构成。构成。(3) 初等函数对数组的运算,体现为初等函数对数组的运算,体现为“初等函初等函数对数组的每个元素的运算数对数组的每个元素的运算”。见表3.2-3(P124)服从数组运算规则的MATLAB初等函数及关系逻辑算符重点掌握sin,cos,tan,exp,sqrt,mod,abs,angle,real,imag,conjv数组之间相加和相减:A.+B,A.-Bv标量和数组之间相加
8、和相减:a.+B,a.-Bv标量和数组之间相乘:a.*Bv数组乘:A.*Bv数组的非共轭转置:A.v数组右除:A./B(等同于B.A)v数组左除:A.B(等同于B./A)v标量除以数组:b./A(等同于A.b)v数组底的标量指数求幂:A.bv数组底的数组指数求幂:A.B3.2.3 两套算术运算规则的功能比较两套算术运算规则的功能比较见表见表3.2-2、3.2-4和表和表3.2-5(P124-125)例例3.2-2(P126-127) v“数组运算数组运算”、“向量或矩阵运算向量或矩阵运算”模式模式 “流水线流水线”加工,可大大提高效率。加工,可大大提高效率。 例例3. 2-3 (P128) 3
9、.2.4 向量化编程向量化编程3.3 数值数组的创建和寻访数值数组的创建和寻访vMATLAB总是把数组看作存储和运算的基总是把数组看作存储和运算的基本单元。本单元。v应用应用MATLAB语言编程时,尤其要注意数语言编程时,尤其要注意数组和向量的维数问题。组和向量的维数问题。v标量数据被看作(标量数据被看作(11)的数组。对于向)的数组。对于向量可看作量可看作1M或或M1维数组。维数组。向量创建向量创建时默认为行向量。时默认为行向量。3.3.1 行行(列列)数组的创建数组的创建1. 递增递增/递减型行递减型行(列列)数组的创建数组的创建(1) “冒号冒号”生成法生成法 使用冒号指定数值范围和相邻
10、值的步长使用冒号指定数值范围和相邻值的步长 x=a:inc:b 其中其中a是起始值是起始值,即数组的第一个元素,即数组的第一个元素,inc是采样点是采样点之之间的间隔,即步长。若(间的间隔,即步长。若(b-a)是)是inc的整数倍,则数的整数倍,则数组的最后一个元素等于组的最后一个元素等于 b。步长。步长inc默认为默认为1,则,则x=a:b。inc可以取正数或负数。可以取正数或负数。inc取正时,取正时,ab。 例如例如 x=1:2:9 则则x=1 3 5 7 9 x=0.4:2 则则x=0.4 1.4 x=12.5:-3: 5 则则x=12.5 9.5 6.5 (2) 线性线性(或对数或对
11、数)定点法定点法 x=linspace(a,b,n) %以以a,b为左右端点,产生为左右端点,产生线性等间隔的线性等间隔的(1*n)行数组行数组x=logspace(a,b,n)%以以a,b为左右端点,产生为左右端点,产生对数等间隔的对数等间隔的(1*n)行数组行数组其中其中 n是总采样点数,即一维数组的长度。是总采样点数,即一维数组的长度。x=linspace(a,b,n)等价于等价于x=a:(b-a)/(n-1):b 两种方法的区别两种方法的区别 冒号法强调步长,有可能取不到终点值。冒号法强调步长,有可能取不到终点值。 a=12.5:-3:5,则,则a =12.5 9.5 6.5 线性定点
12、法特别强调数据的数量,两端点线性定点法特别强调数据的数量,两端点必在数据范围内。必在数据范围内。va=linspace(12.5,5,3),则,则a =12.5 8.75 52. 其他类型行其他类型行(列列)数组的创建数组的创建(1) 逐个元素输入法逐个元素输入法例:例:x=2 pi/2 -0.7e3 3+5i(2) 运用运用MATLAB函数生成法函数生成法 例:例:c=rand(1,5); c1=ones(size(c ); c2=ones(1,n); 例例3.3-1(P132)v“列列”数组生成方法举例:数组生成方法举例: x1=(1:6),x2=linspace(0,pi,4) y1=r
13、and(5,1) z1=2;pi/2;sqrt(3);3+5i3.3.2 二维数组的创建二维数组的创建(1) 小规模数组的直接输入法小规模数组的直接输入法二维数组的三要素:二维数组的三要素: 整个输入数组必须用方括号整个输入数组必须用方括号 括住;括住; 数组元素必须用逗号数组元素必须用逗号“,”或空格分隔;或空格分隔; 数组的行与行之间必须用分号数组的行与行之间必须用分号“;” 或或者回车键者回车键Enter隔离。隔离。(2) 中规模数组的数组编辑器创建法中规模数组的数组编辑器创建法 先在命令行上定义一个变量,然后在工作空先在命令行上定义一个变量,然后在工作空间间workspace中右键点击
14、该变量,进行编辑。中右键点击该变量,进行编辑。(3) 中规模的中规模的M文件创建法文件创建法 打开打开M文件编辑器,在空白处输入所需数文件编辑器,在空白处输入所需数组,然后保存。以后使用时直接在指令窗中组,然后保存。以后使用时直接在指令窗中输入文件名,即可将数据加入到输入文件名,即可将数据加入到workspace中。中。(4)利用利用MATLAB函数创建数组函数创建数组 diag 产生对角数组产生对角数组 eye 产生单位数组产生单位数组 magic 产生魔方数组产生魔方数组 rand 产生均匀分布随机数组产生均匀分布随机数组 randn 产生正态分布随机数组产生正态分布随机数组 ones 全
15、全1数组数组 zeros 全全0数组数组例例3.3-5(P135)3.3.3 二维数组元素的编址和寻访二维数组元素的编址和寻访1.二维数组元素的编址二维数组元素的编址v全下标编址全下标编址 借助元素在数组中借助元素在数组中“行序号和列序号构成的行序号和列序号构成的数对数对” (i,j),唯一地标识元素在二维数组,唯一地标识元素在二维数组中的位置。中的位置。 优点:最明了直接,最常用。优点:最明了直接,最常用。 例如:例如: A(2,1)就表示第就表示第2行第行第1列上的元素列上的元素a21。111212122212NNM NijM NMMMNaaaaaaAaaaav单序号编址单序号编址用单个序
16、号唯一地确定元素在数组中的位置。用单个序号唯一地确定元素在数组中的位置。MATLAB的单序号产生规则:的单序号产生规则: AM N 数组的第一列元素位置,自上而下依数组的第一列元素位置,自上而下依次编序为次编序为1,2,M。 AM N 数组的第二列元素位置,自上而下依数组的第二列元素位置,自上而下依次编序为次编序为1M+1, 1M+ 2, 1 M+M。AM N数组的第数组的第N列元素位置,自上而下依次列元素位置,自上而下依次编序为编序为(N-1)M+1, (N-1)M+ 2, (N-1)M+ M。全下标编址与单序号编址的转换关系全下标编址与单序号编址的转换关系 以以(MN)的二维数组的二维数组
17、A为例,若为例,若“全下标全下标”元素位置是元素位置是“第第r行,第行,第c列列”,那么相应,那么相应的的“单序号单序号”为为L=(c-1) M+r。图3.3-3二维数组的全下标编址与单序号编址对照全下标编址与单序号编址的转换指令全下标编址与单序号编址的转换指令rowsub,colsub=ind2sub(ArraySize,IND) 据单下标换算出全下标。据单下标换算出全下标。IND=sub2ind(ArraySize,rowSub,colSub) 据全下标换算出单下标。据全下标换算出单下标。例:例: R,C=ind2sub(4,4,3,5,7,9) IND=sub2ind(4,4,1,1,1
18、,2,3,4)2. 二维数组元素的寻访二维数组元素的寻访v全下标寻访法全下标寻访法 全下标寻访是指根据需寻访的所有元素的全下标,全下标寻访是指根据需寻访的所有元素的全下标,构成一对构成一对“行序号数组行序号数组” 和和“列序号数组列序号数组”;然后借然后借助这对助这对“行序号数组行序号数组” 和和“列序号数组列序号数组”,提取或设提取或设置相应的元素值。即指出是置相应的元素值。即指出是“第几行,第几列第几行,第几列”的的元素。元素。 全下标寻访数组元素的格式:全下标寻访数组元素的格式:A(r,c):由由A的的“r指定行指定行”和和“c指定列指定列”上的元素上的元素组成。组成。A(r, :):由
19、由A的的“r指定行指定行”上所有列元素组成,结果上所有列元素组成,结果是一个行向量。是一个行向量。A(:,c):由由A的的“c指定列指定列”上的所有行元素构成,结上的所有行元素构成,结果是一个列向量。果是一个列向量。 v注意:r是由是由“所寻元素行序号所寻元素行序号”构成的一维行构成的一维行或列或列数组。数组。c是由是由“所寻元素列序号所寻元素列序号”构成的一维行构成的一维行或列或列数组数组。且。且r和和c的规模应该一致。的规模应该一致。在全下标寻访格式中,英文冒号:,在全下标寻访格式中,英文冒号:,“所在所在维度上全部元素的序号维度上全部元素的序号”。 例例:A= 1 2 3 4 5 6 7
20、 8 9 10 11 12 13 14 15 则则 A(2,3)= 8, A(3,2)= 12 , A(3,5)= 15, A(1,5)= 5 A(2,3,2,4)=7,9;12,14例例:A= 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 则则 A(2,:)= 6 7 8 9 10 A(:,2) = 2 7 12 A(:,1,3)= 1 3 6 8 11 13v单序号寻访单序号寻访 单序号寻访是指采用单个单序号寻访是指采用单个“一维行或列数一维行或列数组组”寻访元素的方法。寻访元素的方法。A(:): “单序号全元素单序号全元素”寻访。寻访。 它由它由A的各列的各列
21、按自左到右的次序,首尾相接而生按自左到右的次序,首尾相接而生成成 的的“一维长列一维长列”数组。数组。 A(ind):“单序号单序号”寻访。寻访。 ind 是一维数组,生成由是一维数组,生成由ind指定位置元素的一维指定位置元素的一维数组,结果和数组,结果和ind的行列性质有关。若的行列性质有关。若ind是是“行行数组数组”(或(或“列数组列数组” ),则),则A(ind ) 就是长度就是长度相同的相同的“行数组行数组”(或(或“列数组列数组” )。)。例例:矩阵矩阵A= 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 则则 A(2)=6, A(5)=7, A(8)=
22、8, A(12)= 14例例:矩阵矩阵A= 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 b=A(4:9) 结果是结果是b=2 7 12 3 8 13 b=A(4:9)结果是结果是b=2 7 12 3 8 13 注意:在单序号寻访格式中,英文冒号:代表注意:在单序号寻访格式中,英文冒号:代表 “被寻访数组全部元素的单序号被寻访数组全部元素的单序号”。v逻辑寻访法逻辑寻访法A(L): “逻辑逻辑1”寻访。寻访。 生成生成“一维一维”列数组:由列数组:由 与与A数组同样规模数组同样规模的的“逻辑数组逻辑数组”L中的中的“1”元素选出元素选出A的对应的对应元素;按元素;按“
23、单序号单序号”次序排成长列组成。次序排成长列组成。 L的元素或是的元素或是0或是或是1,它是,它是“逻辑数组逻辑数组(Logical Array)”。是一种特殊的数据类型。是一种特殊的数据类型。注意:全下标寻访和单序号寻访,在寻访前都必须注意:全下标寻访和单序号寻访,在寻访前都必须预知被寻访元素的位置。在不预知被寻访元素位预知被寻访元素的位置。在不预知被寻访元素位置,但知道被寻访元素必须满足的条件的情况下,置,但知道被寻访元素必须满足的条件的情况下,采用逻辑寻访法。采用逻辑寻访法。例3.3-6(P138-140)说明:全下标法只能寻访原数组中“呈现矩形排列位置上元素构成的子数组”。单下标法能寻
24、访原数组中“非矩形排列位置上元素构成的子数组”。逻辑法能根据“条件”决定待寻访的元素位置。end的含义:在全下标编址中,end或表示最后一行的编号,或表示最后一列的编号。在单序号编址中,end表示最后一个元素的编号。clear,clcA=1,2,3,4,5;6,7,8,9,10;11,12,13,14,15A1=A(2,4)%A1 = 9A2=A(8) %A2 = 8A3=A(:,1,3)%A3 =1,3;6,8;11,13A4=A(1,2,5,6) %A4 =1,6,7,12A5=A(:,4:end)%A5 =4,5;9,10;14,15A(2,1:2:5)=-1,-3,-5%A =1,2,
25、3,4,5;-1,7,-3,9,-5; %11,12,13,14,15A7=A(1,2,2,2,1,3,5) %A7 =1,3,5; -1,-3,-5; % -1,-3,-5; -1,-3-5clear,clcA=1,2,3,4,5;6,7,8,9,10;11,12,13,14,15A1=A(2,4) %A1 = 9A2=A(9) %A2 = 13A3=A(:,1,3) %A3 =1,3;6,8;11,13A4=A(2:end, :) %A4 =6,7,8,9,10;11,12,13,14,15A5=A(1,2,5,6) %A5 =1,6,7,12A(2,1:2:5)=-1,-3,-5 %A
26、=1,2,3,4,5;-1,7,-3,9,-5; %11,12,13,14,15A7=A(1,2,2,2,1,3,5)%A7 =1,3,5; -1,-3,-5; % -1,-3,-5; -1,-3-5A(:,2,4)= A = 1 3 5 -1 -3 -5 11 13 15L=A3 L = 1 0 0 1 1 1 0 0 0A(L)=NaNA = NaN 3 5 NaN NaN NaN 11 13 153.3.4 数组构作技法综合数组构作技法综合 Matlab提供了如反转、插入、提取、收缩、提供了如反转、插入、提取、收缩、重组等数组操作指令,见表重组等数组操作指令,见表3.2-3。 例例3.3
27、-7 (P140-141)3.4 “非数非数”和和“空空”数组数组1.非数非数v按按IEEE规定,规定,0/0,/,0, -等运等运算都会产生非数(算都会产生非数(Not a Number)。该非数)。该非数在在MATLAB中用中用NaN或或nan记述。记述。v根据根据IEEE数学规范,数学规范,NaN具有以下性质:具有以下性质:NaN参与运算所得的结果也是参与运算所得的结果也是NaN,即具,即具有有传递性传递性;非数没有大小概念,因此非数没有大小概念,因此不能比较两个非不能比较两个非数的大小数的大小。v非数的功用:非数的功用:真实记述真实记述0/0,/,0, -运算的运算的后果;后果;避免可
28、能因避免可能因0/0,/,0, -运算运算而造成程序执行的中断;而造成程序执行的中断;在数据可视化中,用来裁剪图形。在数据可视化中,用来裁剪图形。2.“空空”数组数组v“空空”数组是数组是MATLAB为操作和表述需要而专门设为操作和表述需要而专门设计的一种数组。计的一种数组。v二维二维“空空”数组,用一个方括号表示。数组,用一个方括号表示。某维长度为某维长度为0或或若干维长度均为若干维长度均为0的数组都是的数组都是“空空”数组。数组。v“空空”数组的功用:数组的功用:在没有在没有“空空”数组参与运算时,计算结果中的数组参与运算时,计算结果中的“空空”可以合理地解释可以合理地解释“所得结果的含义所得结果的含义”;运用运用“空空”数组对其他非空数组赋值,可以使数数组对其他非空数组赋值,可以使数组变小,但不能改变那数组的维数。组变小,但不能改变那数组的维数。例例3.4-3(3)()(P145)“空空”数组用于子数组的删数组用于子数组的删除除3.5 关系操作和逻辑操作关系操作和逻辑操作v在所有关系表达式和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年石油化工设备产业市场深度调研及发展趋势与投资战略研究报告
- 2024-2030年电炒锅项目融资商业计划书
- 2024-2030年电器行业市场深度调研及发展规划与投资前景研究报告
- 2024-2030年电动摩托车项目融资商业计划书
- 2024-2030年瑕疵膏和颜色矫正产品行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2024-2030年现场声音放大器行业市场现状供需分析及投资评估规划分析研究报告
- 2024-2030年燃烧器产业发展分析及政府战略规划实施研究报告
- 2024-2030年煤气罐市场前景分析及投资策略与风险管理研究报告
- 2024年安全生产会议制度实施细则范本(五篇)
- 2024年小学教师个人校本研修工作计划范文(四篇)
- 智能机器人设计与实践智慧树知到答案2024年北京航空航天大学
- 成长生涯发展展示
- 城轨行车组织-工程列车的开行
- 道路危险货物运输企业安全生产标准化评价实施细则
- 船舶贸易智慧树知到答案章节测试2023年上海海事大学
- 第五章 工程师的职业伦理
- (新版)征信知识竞赛基础题库(500题)
- 《幼儿园中班第一学期家长会》 PPT课件
- 肌内注射法PPT课件
- 第二章 冷冻干燥食品
- 金属切削原理与刀具教案
评论
0/150
提交评论