MATLAB及其在理工课程中的应用-2_第1页
MATLAB及其在理工课程中的应用-2_第2页
MATLAB及其在理工课程中的应用-2_第3页
MATLAB及其在理工课程中的应用-2_第4页
MATLAB及其在理工课程中的应用-2_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、1数值数组及其运算数值数组及其运算2第二章第二章 数值数组及数组运算数值数组及数组运算n 数值数组数值数组(Numeric ArrayNumeric Array)和)和数组运算数组运算(Array OpArray Operationserations)始终是)始终是MATLABMATLAB的核心内容。的核心内容。n 本章内容本章内容 一维数组的创建与寻访一维数组的创建与寻访 二维数组的创建与标识二维数组的创建与标识 二维数组的寻访与赋值二维数组的寻访与赋值 数组运算与矩阵运算数组运算与矩阵运算 标准数组生成函数和数组操作函数标准数组生成函数和数组操作函数 数组构作技法综合数组构作技法综合 高维

2、数组高维数组 “非数非数”和和“空空” 数组数组 关系操作和逻辑操作关系操作和逻辑操作32.1 2.1 一维数组的创建与寻访一维数组的创建与寻访n数组是指由一组实数或复数排成的数组是指由一组实数或复数排成的长方阵列长方阵列(ArrayArray)。)。n数组运算是指无论在数组上施加什么运算(加减乘除或函数组运算是指无论在数组上施加什么运算(加减乘除或函数),总认定该运算被运算数组中的每个元素数),总认定该运算被运算数组中的每个元素 (ElementElement)平等的实施平等的实施同样的操作。同样的操作。n数组运算优点数组运算优点n使计算程序简单、易读,使程序指令更接近于教科书上的使计算程序

3、简单、易读,使程序指令更接近于教科书上的数学计算公式;数学计算公式;n提高程序的向量化程度,提高计算效率,节省计算机开销提高程序的向量化程度,提高计算效率,节省计算机开销;n例题例题exm2.1_1exm2.1_1 绘制绘制 在在【0 0,1 1】时的曲线。时的曲线。xxey42.1 2.1 一维数组的创建与寻访一维数组的创建与寻访n 逐个元素输入法;逐个元素输入法; 最简单、最通用的构造方法。最简单、最通用的构造方法。n 冒号生成法;冒号生成法; 通过通过“步长步长”设定,生成一维设定,生成一维“行行”数组的方法。数组的方法。n 定数线性采样法;定数线性采样法; 在设定的在设定的“总点数总点

4、数”下,均匀采样生成一维下,均匀采样生成一维“行行”数组。数组。l 一维数组的寻访与赋值一维数组的寻访与赋值例题中应注意的问题:例题中应注意的问题:n randrand函数函数(rand(state,sum(100rand(state,sum(100* *clock)clock)););n 寻访什么样的子数组取决于数组寻访什么样的子数组取决于数组x(index)x(index)中的下标中的下标index;index;n indexindex中的每个元素取值必须在闭区间中的每个元素取值必须在闭区间1,end1,end内;内;n 被重新赋值的子数组的长度须与送入的数组长度相同。被重新赋值的子数组的

5、长度须与送入的数组长度相同。52.2 2.2 二维数组的创建与标识二维数组的创建与标识n 二维数组是由实数或复数排列成矩形而构成的。当二维二维数组是由实数或复数排列成矩形而构成的。当二维数组带有线性变换含义时,二维数组就是矩阵。数组带有线性变换含义时,二维数组就是矩阵。n 创建方法创建方法n 直接输入法直接输入法n 整个输入数组必须以方括号整个输入数组必须以方括号“”为首尾;为首尾;n 数组的行与行之间必须用数组的行与行之间必须用分号分号“;”;”或回车键或回车键隔离;隔离;n 数组元素必须由数组元素必须由逗号逗号“,”,”或空格或空格分隔。分隔。n 利用利用M M文件创建和保存数组文件创建和

6、保存数组主要针对需要经常调用、比较大而且复杂的数组。主要针对需要经常调用、比较大而且复杂的数组。例题例题62.2 2.2 二维数组的创建与标识二维数组的创建与标识“全下标全下标”标识标识u 对具体矩阵元素,采用对具体矩阵元素,采用“全下标全下标”标识法,即指出是标识法,即指出是“第几第几行、第几列行、第几列”的元素。的元素。“单下标单下标”标识标识u 只用一个下标指明元素在数组中的位置。只用一个下标指明元素在数组中的位置。u “一维编号一维编号”:将二维数组的所有列,按先左后右的次序、首:将二维数组的所有列,按先左后右的次序、首尾相接排成尾相接排成“一维长列一维长列”,自上往下对元素位置进行编

7、号。,自上往下对元素位置进行编号。u 两种标识方法的转换两种标识方法的转换 sub2ind sub2ind 据全下标换算出单下标据全下标换算出单下标 ind2sub ind2sub 据单下标换算出全下标据单下标换算出全下标u “逻辑逻辑1 1”标识标识 寻找数组中大于某值的元素寻找数组中大于某值的元素 islogical(index)islogical(index)例题例题72.3 2.3 二维数组的寻访与赋值二维数组的寻访与赋值n 不同寻访及赋值方式不同寻访及赋值方式A(r,c)A(r,c)、 A(r,A(r,:) )、 A(A(:,c),c)、 A(A(:) )、 A(s)A(s)、 A(

8、r,A(r,c)=sac)=sa、 A(:)= D(:) A(:)= D(:) 、 A(s)=saA(s)=san 全元素赋值方式全元素赋值方式n 单下标赋值方式单下标赋值方式n 双下标赋值方式双下标赋值方式82.4 2.4 数组运算与矩阵运算数组运算与矩阵运算n 三角函数和双曲函数三角函数和双曲函数 acosacos、acoshacosh、acotacot、acothacoth、acscacsc、acschacsch、asecasec、asechasech、asinasin、asinhasinh、atanatan、atan2atan2、atanhatanh、coscos、coshcosh、c

9、otcot、cothcoth、csccsc、cschcsch、secsec、sechsech、s sinin、sinhsinh、tantan、tanhtanhn 指数函数指数函数 expexp、loglog、log10log10、log2log2、pow2pow2、sqrtsqrtn 复数函数复数函数 absabs、angleangle、conjconj、imagimag、realrealn 圆整函数和求余函数圆整函数和求余函数 ceilceil、fixfix、floorfloor、modmod、remrem、roundround、signsignn 坐标变换函数坐标变换函数 cart2sph

10、cart2sph、cart2polcart2pol、pol2cartpol2cart、sph2cartsph2cart92.4 2.4 数组运算与矩阵运算数组运算与矩阵运算u函数数组运算规则函数数组运算规则u从外观形状和数据结构上看,二维数组和矩阵没有区从外观形状和数据结构上看,二维数组和矩阵没有区别。但别。但矩阵作为一种变换或映射算子的体现,矩阵运矩阵作为一种变换或映射算子的体现,矩阵运算有明确而严格的数学规则算有明确而严格的数学规则;数组运算是;数组运算是MATLABMATLAB软件软件定义的规则,还缺乏严谨的数学推理。定义的规则,还缺乏严谨的数学推理。数组运算时,运算符前的数组运算时,运

11、算符前的小黑点小黑点不能遗漏;不能遗漏;数组与数组之间的运算,参与运算的数组必须同维;数组与数组之间的运算,参与运算的数组必须同维;两种运算的根本区别:求两种运算的根本区别:求“乘、除、乘方、三角和指乘、除、乘方、三角和指数函数数函数”时时关系运算和逻辑运算关系运算和逻辑运算仅对数组进行。仅对数组进行。102.4 2.4 数组运算与矩阵运算数组运算与矩阵运算n 指令对照指令对照n 数组运算指令数组运算指令 对应元素的运算对应元素的运算 A.A. A=s sA=s sB s.B s.* *A s./B B.s A.nA s./B B.s A.n A.p p.A A+-B A. A.p p.A A

12、+-B A.* *B A./B B.A exp(A)B A./B B.A exp(A) log(A) sqrt(A) f(A) log(A) sqrt(A) f(A) A#B ABA#B ABn 矩阵运算指令矩阵运算指令 符合矩阵运算规则符合矩阵运算规则 A A s s* *A sA s* *inv(B) An Ap pA A+-Binv(B) An Ap pA A+-B A A* *B A/B(B A/B(右除右除) BA) BA(左除)(左除) expm(A)expm(A) logm(A) sqrtm(A) funm(A,FN) logm(A) sqrtm(A) funm(A,FN)112

13、.5 2.5 标准数组生成函数和数组操作函数标准数组生成函数和数组操作函数n 标准数组生成函数标准数组生成函数 diagdiag eyeeye magic magic onesones randrand randnrandn zeroszerosn 数组操作函数数组操作函数cat:cat:把大小相同的若干数组,沿指定维方向,串接成高维数组把大小相同的若干数组,沿指定维方向,串接成高维数组diagdiag: :提取对角元素,或生成对角矩阵提取对角元素,或生成对角矩阵flipudflipud: :以数组以数组“水平中线水平中线”为对称轴,交换上下对称位置上的为对称轴,交换上下对称位置上的数数 组元

14、素组元素fliplrfliplr: :以数组以数组“垂直中线垂直中线”为对称轴,交换左右对称位置上的为对称轴,交换左右对称位置上的数数 组元素组元素kron:kron:按按KroneckerKronecker乘法规则产生乘法规则产生“积积”数组数组 不具备不具备“可交换规律可交换规律”repmat:repmat:按指定的按指定的“行数、列数行数、列数”铺放模块数组,以形成更大数铺放模块数组,以形成更大数组组reshape:reshape:在总元素数不变前提下,改变数组的在总元素数不变前提下,改变数组的“行数、列数行数、列数”122.6 2.6 数组构作技法综合数组构作技法综合u数组的赋值扩展法

15、数组的赋值扩展法u多次寻访扩展法多次寻访扩展法u合成扩展法合成扩展法u单下标寻访和单下标寻访和reshapereshapeu例题例题132.7 2.7 高维数组高维数组n 高维数组的创建高维数组的创建直接通过直接通过“全下标全下标”元素赋值方式元素赋值方式由若干同样大小的低维数组组合由若干同样大小的低维数组组合由函数由函数ones,zeros,rand,randnones,zeros,rand,randn直接创建直接创建借助借助cat,repmat,reshapecat,repmat,reshape等函数构作等函数构作n 高维数组的标识高维数组的标识数组的维数和数组的维数和ndimsndims

16、指令指令数组的大小和数组的大小和sizesize指令指令n 高维数组操作函数高维数组操作函数catcat、flipdimflipdim、ipermuteipermute、onesones、permutepermute、randrand、randnrandnRepmatRepmat、reshapereshape、shiftdimshiftdim、squeezesqueeze、zeroszeros142.8 “2.8 “非数非数”和和“空空”数组数组n “非数非数”NaNNaN或或nannann IEEEIEEE规定,规定,0/0, , 0/0, , 等运算都会产生非等运算都会产生非数数(not

17、a number)(not a number)真实记述真实记述0/0, , 0/0, , 运算的结果;运算的结果;避免可能因避免可能因0/0, , 0/0, , 运算造成程序执行的运算造成程序执行的中断;中断;在数据可视化中,用来裁剪图形在数据可视化中,用来裁剪图形n 性质性质: :NaNNaN参与运算所得的结果也是参与运算所得的结果也是NaNNaN,即具有传递性;,即具有传递性;NaNNaN没有没有“大小大小”概念,即不能比较两个非数的大小概念,即不能比较两个非数的大小 n isnanisnan 判断非数属性判断非数属性n 例题例题/0/00152.8 “2.8 “非数非数”和和“空空”数组

18、数组n “空空”数组数组在没有在没有“空空”数组参与运算时,计算结果中的数组参与运算时,计算结果中的“空空”可理解为可理解为“所得结果的含义所得结果的含义”;运用运用“空空”数组对其他非空数组赋值,可以改变数数组对其他非空数组赋值,可以改变数组的大小,但不能改变维数。组的大小,但不能改变维数。不要把不要把“空空”数组与全零数组混淆;数组与全零数组混淆;“空空”数组非数组非“虚无虚无”,确实存在;,确实存在;whowho,whichwhich,whoswhos“空空”数组在运算中不具备传递性;数组在运算中不具备传递性;isemptyisempty 判断数组是否判断数组是否“空空”数组数组162.9 2.9 关系操作

温馨提示

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

评论

0/150

提交评论