武科大Matlab仿真第三章数组及其运算.ppt_第1页
武科大Matlab仿真第三章数组及其运算.ppt_第2页
武科大Matlab仿真第三章数组及其运算.ppt_第3页
武科大Matlab仿真第三章数组及其运算.ppt_第4页
武科大Matlab仿真第三章数组及其运算.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

第三章数组及其运算,本章主要内容如下:3.1概述3.2数值数组的生成和寻访3.3数组运算和矩阵运算3.4非数和空数组3.5数组的关系运算和逻辑运算3.6字符串数组,3.1概述,MATLAB长于数值计算,而所谓数值计算,就是指计算的表达式、变量中不得包含未经定义的自由变量。数值数组(NumeralArray)和数组运算(ArrayOperations)是MATLAB的核心内容。数组是MATLAB最重要的一种内建数据类型,而数组运算则是定义在这种数据结构上的方法。本章重点介绍数值数组,其次是与数组类似其它结构体。数组:是指由一组实数或复数排成的长方阵列(Array),包括行向量、列向量和矩阵。数组的运算:无论对数组施加什么运算(加减乘除或函数)总认定那种运算对被运算数组中的每个元素平等地实施同样的操作。,3.1概述,变量及其赋值在命令窗口可直接输入变量并赋值,无须声明其类型和维数,MATLAB将自动处理。MATLAB的变量名称由英文大小写52个字母、数字和下划线等符号组成,并且第一个字符必须是英文字母,变量和常量最长允许31个字符。须注意的是,在默认状态下,MATLAB对字母大小写敏感。,3.1概述,MATLAB数据格式及显示方式MATLAB既可用传统的十进制数表达数值,也可以用科学计数表达数值,用e代表10的指数形式,用i和j来代表虚数。MATLAB内部数据格式只有一种,是IEEE浮点标准的双精度二进制(64位),相应于十进制的16位有效数,范围为10-30810+308。为了人机交互的友好性,数据输出显示格式有8种。可用菜单选项或format命令选择。,3.2数值数组的生成和寻访,3.2.1一维数组一维数组的创建逐个元素输入法借助数组编辑器可以逐个输入数组元素(对于二维数组同样适用),但也可在指令窗中直接输入。例如在指令窗中输入(数组元素之间用“”或“,”隔开):x=2pi/3sqrt(3)3+5i则将显示:,x=2.00001.04721.73213.0000+5.0000i,3.2数值数组的生成和寻访,3.2.1一维数组一维数组的创建定数线性采样法该方法在设定的“总点数”下,均匀采样生成一维“行”数组。其通用格式为:x=linspace(a,b,n),【说明】a、b分别是生成数组的第一个和最后一个元素,n是采样总点数。该指令与x=a:(b-a)/(n-1):b相同。,此外还可通过数组运算或数组生成函数,构建某些特殊的数组。,【例】一维数组的冒号生成法和定数线性采样法。,显然这两种方法生成的一维数组是完全相同的。,3.2.1一维数组一维数组的寻访数组寻访的一般格式为X(index),下标index可以是单个正整数或正整数数组。,例如对数组作如下操作:,x=2.00001.04721.73213.0000+5.0000i,x(3)ans=1.7321x(124)ans=2.00001.04723.0000+5.0000ix(2:end)ans=1.04721.73213.0000+5.0000ix(4:-1:1)ans=3.0000+5.0000i1.73211.04722.0000,下标为由构成的数组,下标为由冒号生成法构成的数组,取单个数组元素,3.2.2二维数组二维数组的创建直接输入法整个输入数组须以“”为其首尾;数组行与行之间用“;”或“回车键”隔离;数组元素用逗号或空格分离。,其中,第一个矩阵输入采用“;”分行,第二个矩阵输入采用“回车键”分行。,A=123;456;789A=123456789A=1,2,34,5,67,8,9A=123456789,3.2.2二维数组二维数组的创建利用M文件创建和保存数组,对于经常需要调用的且比较大的数组,可专门为该数组创建一个M文件。利用文件编辑器输入该数组并保存,以后只要在MATLAB指令窗中,运行该文件,文件中的数组就会自动生成于MATLAB内存中。,标准数组生成函数,d=eye(5)%产生(5*5)的单位阵,d=1000001000001000001000001,3.2.2二维数组二维数组的寻访和赋值全元素标识和赋值这是一种最常用的标识方式,对于二维数组来说,“全下标”标识由两个下标组成:行下标,列下标。如A(3,5)等。,单下标标识和赋值这是只用一个下标来指明元素在数组中的位置。对二维数组采用“单下标”标识,应先对数组的所有元素进行“一维编号”,即先设想把二维数组的所有列按先左后右的次序,首尾相接排成“一维长列”;然后自上往下对元素位置进行编号。,3.2.2二维数组二维数组的寻访和赋值利用MATLAB的冒号运算,可方便地进行数组(矩阵)的子数组(子矩阵)的寻访和赋值。,冒号表达式:s1:s2:s3式中,s1:起始值;s2:步长(省略为1);s3:终止值。,例如:A(:,j):表示A矩阵第j列全部元素A(i,:):表示A矩阵第i行全部元素A(1:3,2:4):表示对A矩阵取第一到第三行,第二到第四列中所有元素构成的子矩阵。,3.3.1数组运算的常用函数函数数组的运算规则对于(mn)数组X=xijmn,函数f()的数组运算规则是指:f(X)=f(xij)mn,3.3数组运算和矩阵运算,例如对(33)数组A进行2次乘方运算A2,只需对数组中每个元素进行乘方运算aij2即可,如右图所示。,A=123;456;789A=123456789A.2ans=149162536496481,3.3.1数组运算的常用函数常用函数,3.3数组运算和矩阵运算,mod(A,2)ans=101010101,例如对数组,log(A)ans=00.69311.09861.38631.60941.79181.94592.07942.1972,exp(A)ans=1.0e+003*0.00270.00740.02010.05460.14840.40341.09662.98108.1031,sign(A)ans=111111111,real(A)ans=123456789,angle(A)ans=000000000,3.3.2矩阵运算矩阵运算不同于数组运算,要符合矩阵运算的规则,%例二维数组、矩阵运算A=-4,-3,-2;-1,0,1;2,3,4;B=1,3,2;3,2,5;2,5,7;C=A+B*i%生成复数数组C.,C%非共轭转置和共轭转置,A./B,A/B%数组、矩阵右除B.A,BA%数组、矩阵左除A.*B,A*B%数组乘和矩阵乘,ans=-4.0000-1.0000-1.0000-0.333300.20001.00000.60000.5714ans=-2.5000-1.50001.5000-1.0000-0.54550.81820.50000.40910.1364ans=-4.0000-1.0000-1.0000-0.333300.20001.00000.60000.5714ans=-3.5000-3.0000-2.5000-1.9545-1.6364-1.31822.68182.45452.2273,A./B,A/B,B.A,BA,A=-4,-3,-2;-1,0,1;2,3,4;B=1,3,2;3,2,5;2,5,7;,在程序流控制和逻辑、模糊推理中,都需要对一类是非问题作出“是真”、“是假”的判断。为此,MATLAB设计了关系操作、逻辑操作和一些相关函数。虽在其它程序语言中也有类似的关系、逻辑运算,但MATLAB作为一种比较完善的科学计算环境,有其自身的特点。,MATLAB约定:在所有关系、逻辑表达式中,作为输入的任何非0数都被看成是“逻辑真”,只有0被认为是“逻辑假”。所有关系表达式和逻辑表达式的计算结果,即输出,是一个由0和1组成的“逻辑数组”(LogicalArray)。在此数组中的1表示“真”,0表示“假”。逻辑数组是一种特殊的数值数组,与“数值类”有关的操作和函数对它也同样适用;但它又不同于普通的“数值”,它还表示着对事物的判断结论“真”与“假”。因此它又有其自身的特殊用途,如数组寻访等。,3.4关系操作和逻辑操作,3.4.1关系操作关系操作指令,3.4关系操作和逻辑操作,【说明】标量与数组比较比较在此标量和数组每个元素之间进行,比较结果与被比较数组同维。数组与数组比较两数组的维数必须相同,比较在两数组相同位置上的元素间进行,比较结果与被比数组同维。,关系运算示例:,A=1:9,B=10-A,r0=(AB),A=123456789B=987654321,r0=111000000,r1=000010000,r2=000001111,3.4.2逻辑操作逻辑操作指令,3.4关系操作和逻辑操作,【说明】标量与数组逻辑运算运算比较在标量与数组每个元素之间进行,结果与数组同维。数组与数组逻辑运算参与运算的数组必须同维,运算在两数组相同位置上的元素间进行,运算结果与数组同维。,逻辑操作示例1:,A=1:9,B=10-A,r0=(AB)机械自动化学院,size(AB)AB=武汉科技大学机械自动化学院ans=27,AC=char(A,机械自动化学院),size(AC)AC=武汉科技大学机械自动化学院ans=27,3.5.2串操作函数,3.5.3串转换函数,3.6.1非数NAN非数(NotaNumber)指的是0/0,/,0之类的运算,在MATLAB中用NaN或nan表示。NaN具有以下性质:NaN参与运算所得的结果也是NaN,即具有传递性;非数没有大小的概念,不能比较两个非数的大小。非数的功用:真实表示0/0,/,0运算的结果;避免因这类异常运算而造成程序中断;在数据可视化中,用来裁减图形。,3.6“非数”和“空”数组,Warning:Dividebyzero.a=NaNWarning:Logofzero.n=NaNc=NaNd=NaN,【例】非数的产生和性质演示,非数具有传递性,a=0/0,n=0*log(0),c=inf/inf,d=sin(a),【例】非数的产生和处理:求近似极限,修补图形缺口,t=-2*pi:pi/10:2*pi;%该自变量数组中存在零值y=sin(t)./t;%在t=0处,计算将产生NaNtt=t+(t=0)*eps;%逻辑数组参与运算,用“机器零”代替0元素yy=sin(tt)./tt;%用数值可算的sin(eps)/eps近似替代sin(0)/0subplot(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:Dividebyzero.,3.6.2“空”数组在MATLAB中,“空”数组除了用表示外,某维或若干维长度均为0的数组都是“空”数组。,%例空数组示例a=,b=ones(0,2),c=zeros(3,0)%创建空数组A=reshape(-4:5,2,5)%生成(2*5)数组A(:,1,3)=%利用空数组进行数组裁减,a=b=Emptym

温馨提示

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

评论

0/150

提交评论