欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    数值数组及其运算(matlab).ppt

    • 资源ID:6576753       资源大小:912.50KB        全文页数:94页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数值数组及其运算(matlab).ppt

    二.数值数组及其运算,数值数组及其运算,一维数组的创建和寻访二维数组的创建和寻访执行数组运算的常用函数数组运算和矩阵运算标准数组生成函数和数组操作函数高维数组“非数”和“空”数组,数值数组及其运算(续),关系操作和逻辑操作 关系操作符和逻辑操作符 运算符的优先级 关系、逻辑函数多项式,2.1一维数组的创建和寻访,数学计算是MATLAB强大计算功能的体现。MATLAB的数学计算分为数值计算和符号计算,其中符号计算是指使用未定义的符号变量进行运算,而数值计算不允许使用未定义的变量。数值数组(Numeric Array)和数组运算(Array Operations)始终是MATLAB的核心内容。数组是指由一组实数或复数排成的长方阵列。它可以是一维的“行”或“列”,可以是二维的“矩形”,也可以是三维的“若干同维矩形的堆叠”,甚至更高的任意维。数组运算是针对参与运算的数组中的每个元素(element)进行的。,例2.1 一维数组的基本操作,MATLAB内建数据类型,数值数组(Numeric Array)字符串数组(Character Array)元胞数组(Cell Array)构架数组(Struct Array)数据类型查询:工作空间浏览器(Workspace)who,whos 指令 Class指令,例2.2 基本数据类型,2.1.1 一维数组的创建,逐个元素生成法 冒号生成法 通用格式为:x=a:inc:b 冒号不能省,且必须在英文状态下输入;步长inc可取正数或负数,缺省时默认值为1。,2.1.1 一维数组的创建,2.1.1 一维数组的创建(续),定数线性采样法 通用格式为:x=linspace(a,b,n)1)a、b、n三个参数分别表示开始值、结束值和元素个数。2)生成从a到b之间线性分布的n个元素的行向量,n如果省略则默 认值为100。定数对数采样法 通用格式为:x=logspace(a,b,n)1)a、b、n三个参数分别表示开始值、结束值和元素个数。2)生成从10的a次方到10的b次方之间按对数等分的 n个元素的行向量,n如果 省略则默认值为50。,2.1.1 一维数组的创建(续),2.1.2 一维子数组的寻访和赋值,子数组寻访取决于x(index)中的下标;下标index可以是单个数值或数组,但是index的元素取值必须在1,end的范围内,end为数组最大下标;子数组赋值时,被赋值的子数组长度应与送入的数组长度一致。,例2.3子数组的寻访,利用下标进行寻址,例2.4 子数组的赋值,2.2 二维数组的创建和寻访,二维数组结构和矩阵相同,当带线 性变换的含义时,数组就是矩阵。,例2.5 二维数组的基本操作,2.2.1 二维数组的创建,1.直接输入法(1)整个数组元素应用方括号()括住;(2)每行内的元素间用逗号或空格隔开;(3)行与行之间用分号或回车键隔开;(4)元素可以是数值或表达式。,例2.6 创建二维数组,逗号(,)和分号(;)的不同作用,在数组中逗号分隔同一行中的各个元素,分号分隔不同的行;在指令行逗号结尾的运行结果要显示,分号结尾的运行结果不显示。,2.2.1 二维数组的创建(续),2.利用M文件中创建和保存数组 对于需要经常用到的,比较大的和复杂的数组,可以专门建立一个M文件来创建和保存数组。,例2.7 利用M文件来生成数组,(1)选择菜单“File”“New”“Mfile”,新建M文 件。(文件名为MyMatrix.m)%MyMatrix.m 利用M文件来生成数组 M_Matrix=0 1 2 3 4 5 6 7 8 9;.10 11 12 13 14 15 16 17 18 19;.20 21 22 23 24 25 26 27 28 29;.30 31 32 33 34 35 36 37 38 39;(2)保存文件,命名为MyMatrix.m。(3)在指令窗中输入MyMatrix,回车后生成数组 M_Matrix。,2.2.2 二维数组元素的标识,1.“全下标”标识“全下标”标识由两个下标组成,即行下标和列下标,一个mn的数组A的第i行第j列的元素表示为A(i,j)。注意:1)如果在提取数组元素值时,数组元素的下标行或列(i,j)大于数组的大小(m,n),则MATLAB会提示出错;2)而在给数组元素赋值时,如果行或列(i,j)超出数组的大小(m,n),则MATLAB自动扩充数组,扩充部分以0填充。,2.2.2 二维数组元素的标识,2.2.2 二维数组元素的标识(续),2.“单下标”标识 只用一个下标来指明元素在数组中的位置。先把数组的所有列按先左后右的次序连接成“一维长列”,然后对元素位置进行编号,即为该数组的单下标。对于mn的二维数组A,若元素A(i,j)则对应的“单下标”为s=(j-1)mi。全下标、单下标转换函数:sub2ind 由全下标得到单下标(Linear index)ind2sub 由单下标得到全下标(Multiple subscripts),例2.8 全下标和单下标的转换,2.2.2 二维数组元素的标识(续),3.“逻辑1”标识 为了寻找数组中满足某一条件的元素的位置,可利用逻辑运算产生逻辑数组(Logical Array)来标识。逻辑数组是大小和对应数组相同,而元素值为0或者1的数组。可以用A(L1,L2)来表示子数组,其中L1、L2为逻辑向量,当L1、L2的元素为0则不取该位置元素,反之则取该位置的元素。,例2.9 由数组的逻辑运算得出逻辑数组,例2.9 由数组的逻辑运算得出逻辑数组(续),注意:逻辑数组和数值数组的区别:对于具有相同结构的逻辑数组L和数值数组Lx,则有 Class(L)=double islogical(L)=1 Class(Lx)=double islogical(Lx)=0 在内存浏览器中显示两者Size和Bytes相同,但Class略有不同:L:double array(logical)Lx:double array同时,无法利用Lx进行寻址。Ax=A(Lx)不合法。,2.2.2 二维数组元素的标识(续),4.判断数组维数和大小 ndims 判断数组维数 size 判断数组大小如:对上例中的数组A An=ndims(A),As=size(A)An=2As=2 5注意:数组的长度是指数组最长维的长度,可用指令length(A)获得。length(A)max(As)length(As)An 表示数组A大小的行数组的长度等于数组A的维数,2.2.3 二维数组子数组的寻访和赋值,1.子数组的产生 子数组是从对应数组中取出一部分元素构成,用全下标和单下标方式取子数组。(1)用全下标方式 A(r,c)由A的“r指定行”和“c指定列”上的元素组成 A(r,:)由A的“r指定行”和“全部列”上的元素组成 A(:,c)由A的“全部行”和“c指定列”上的元素组成,二维数组子数组的寻访和赋值(全下标方式),2.2.3 二维数组子数组的寻访和赋值(续),(2)用单下标方式:A(:)由A的各列按自左至右的顺序首尾 相接生成“一维长列”数组A(s)生成“s指定的”一维数组A(L)由与A同样大小的“逻辑数组”L中 的“1”元素选出A的对应元素组成 列数组,二维数组子数组的寻访和赋值(单下标方式),2.2.3 二维数组子数组的寻访和赋值(续),2.子数组的赋值(1)全下标方式A(r,c)=Sa 给A的子数组A(r,c)赋值,则Sa的行列数必须等于 A(r,c)的行列数。,二维数组子数组赋值(全下标方式),2.2.3 二维数组子数组的寻访和赋值(续),(2)单下标方式:A(s)=Sa 给A的第s个元素赋值,s元素个 数必须等于Sa数组的元素个数。,二维数组子数组赋值(单下标方式),2.2.3 二维数组子数组的寻访和赋值(续),(3)全元素方式:A(:)=D(:)给A的所有元素赋值,A和D的 元素总数必须相等,但行列 数不一定相等。,例2.10 数组的寻访和赋值,2.3 执行数组运算的常用函数,函数数组运算是指对数组X中的每一个元素xij求函数值,计算结果与数组X同维,即f(Xmn)=f(xij)mn。执行数组运算的常用函数有:三角函数、双曲函数、指数函数、复数函数、圆整函数、求余函数、坐标变换函数等,见表2.6-1至表2.6-5。,例2.11 绘制函数yxe-x在0 1区间上的曲线,2.4 数组运算和矩阵运算,矩阵运算有明确而严格的数学规则,矩阵运算规则是按照线性代数运算法则定义的;数组运算是按数组的元素逐个进行的,参加运算的几个数组必须同维。,2.4.1 数组和矩阵的算术运算,1.矩阵和数组的加()、减()运算规则相同(1)A和B必须大小相同才可以进行加减运算。(2)如果A、B中有一个是标量,则该标量与矩阵或数 组中的每个元素进行运算。2.矩阵和数组的乘法(*)运算(1)矩阵A的列数必须等于矩阵B的行数,除非其中有 一个是标量。(2)数组的乘法运算符为“.*”,表示数组A和B中的对 应元素相乘。A和B数组必须大小相同,除非其中 有一个是标量。,2.4.1 数组和矩阵的算术运算(续),3.矩阵和数组的除法(1)矩阵运算符为“/”和“”分别表示左除和右除。AB=A-1*B A/B=A*B-1 其中:A-1是矩阵的逆,也可用inv(A)求逆矩阵。(2)数组的除法运算表达式“A./B”和“A.B”,分别为数组的左除和右除,表数组相应元素相除。A和B数组必须大小相同,除非其中有一个是标量。,2.4.1 数组和矩阵的算术运算(续),4.矩阵和数组的乘方 矩阵乘方的运算表达式为“AB”,其中A可以是矩阵或标量。(1)当A为矩阵,必须为方阵:B为正整数时,表示A矩阵自乘B次;B为负整数时,表示先将矩阵A求逆,再自乘|B|次,仅对非奇异阵成立;B为矩阵时不能运算,会出错;B为非整数时,将A分解成A=W*D/W,D为对角阵,则有AB=W*DB/W。,2.4.1 数组和矩阵的算术运算(续),(2)当A为标量:B为矩阵时,将A分解成A=W*D/W,D为对角阵,则AB=W*diag(D.B)/W。数组乘方的运算表达式“A.B”。当A为矩阵,B为标量时,则将A(i,j)自乘B次;当A为矩阵,B为矩阵时,A和B数组必须大小相同,则将A(i,j)自乘B(i,j)次;当A为标量,B为矩阵时,将A B(i,j)构成新矩阵的第i行第j列元素。,2.4.2 矩阵和数组的转置,(1)矩阵的转置运算:“A”表示矩阵A的转置,如果矩阵A为复数矩阵,则为共轭转置。(2)数组的转置运算“A.”表示数组A的转置,如果数组A为复数数组,则不是共轭转置。注意:数组的“乘、除、转置”运算符前一定要加“.”,否则进行的是矩阵运算而不是数组运算;关系运算和逻辑运算只适用于数组;在求“乘、除、乘方、三角和指数”运算时的区别。,例2.12 数组运算和矩阵运算,2.4.3 常用数组运算函数 mean(A),max(A),median(A),2.5 标准数组生成函数和数组操作函数,2.5.1 标准数组生成函数,2.5.1 标准数组生成函数,2.5.2 数组操作函数,常用数组操作函数:cat、diag、repmat、reshape等,见表2.8-2。,例2.13 数组操作函数练习,例2.14 数组操作函数练习,2.6 高维数组,一维数组(向量):行数组或列数组 二维数组:第一维称行,第二维称列三维数组:第一维称行,第二维称列,第三维称页更高维数组:用数字标识第几维,2.6.1 高维数组的创建,1.通过“全下标”元素赋值方式创建算例见下页:,2.6.1 高维数组的创建(全下标方式),2.6.1 高维数组的创建(续),2.由标准数组生成函数ones、zeros、rand和randn直接创建算例见下页:,2.6.1 高维数组的创建(利用标准数组生成函数),2.6.1 高维数组的创建(续),3.利用函数生成数组 cat(n,p1,p2,)沿着第n维方向串接数组p1、p2 repmat(p)repmat(p,行 列 页)按指定行列数放置模块数组p生成多维数组 reshape(p)reshape(p,行 列 页)在总元素的数目不变的前提下重新确定数组的行数、列数、页数得到数组p,例2.15 创建高维数组,2.6.2 高维数组的标识,ndims(p)直接给出数组p的维数 m,n,=size(p)得出数组p各维的大小m=size(p,x)得出数组p某一维的大小length(p)返回数组p行数或列数的最大值,等价于max(size(p)m为行数,n为列数;当只有一个输出变量时,x=1返回第一维(行数),x=2返回第二维(列数),以此类推。,2.6.2 高维数组的标识(举例),例2.16 高维数组的基本操作,2.7“非数”和“空”数组,2.7.1“非数”1.0/0,/,0等运算结果称作非数(Not a Number),用NaN或nan表示。1)非数NaN参与运算得到的结果也是非数,具有传递性;2)非数NaN没有大小概念,不能进行比较,但可用isnan指令进行判断。2.MATLAB用无穷大Inf或inf表示除数为0或超出数值范围(10e-30810e308)的运算。3.非数NaN和无穷大Inf的功用:1)真实记述0/0,/,0等运算的结果;2)避免可能因0/0,/,0等运算产生的程序中断;3)用于裁剪图形(无穷大不行)。,例2.17“非数”数组,2.7.2“空”数组,某一维或若干维长度为0的数组称为“空”数组,可用isempty指令进行判断。利用“空”数组对其它非空数组赋值可以改变数组的大小,但不能改变数组的维数。“空”数组不具传递性,不等于全零数组,也不表示不存在。,例2.18“空”数组,2.8 关系操作和逻辑操作,MATLAB约定:在所有关系和逻辑表达式中,输入的任何非0数字都看作“逻辑真”,只有0被认为是“逻辑假”;所有关系和逻辑表达式的计算结果是由一个由0和1组成的“逻辑数组(Logical Array);逻辑数组属于数值数组,同时具有真假判断作用,2.8.1 关系操作符和逻辑操作符,关系操作符和逻辑操作符(续),运算规则:两个变量都是标量,则结果为0、1的标量。两个变量都是数组,则必须大小相同,运算在两数组相同位置上的元素间进行,结果也是同样大小的数组。一个数组和一个标量,则把数组的每个元素分别与标量运算,结果为与数组大小相同的数组。、=,仅对参加比较变量的实部进行比较。先决运算:只有当第一个条件成立时才考虑第二个条件,可用于用第一个条件来控制第二个条件的执行的场合,例如:(b=0)&(a/b0)。,例2.19 利用关系运算,修补y=sin(x)/x的图形,数学定义中sin(x)/x在x=0处等于1,但是计算机计算时认为x=0时为非数0/0。在绘制sin(x)/x的图形时或后续运算中将产生错误。本算例就是为了说明利用非数可以对曲线或者曲面进行裁减。,例2.19 利用关系运算,修补y=sin(x)/x的图形,例2.20 基本的关系、逻辑运算,例2.21 逐段解析函数的计算和表现,%得到一个半周期(0,3*pi)的正弦函数 yt=linspace(0,3*pi,500);y=sin(t);%令sin(t)2*pi);z1=w1.*y;%令幅值超过sin(pi/3)的部分等于sin(pi/3),其他部分等于z1%得到逐段解析函数z2w2=(tpi/3%二维数组作图subplot(1,3,1),plot(t,y),title(正弦波)subplot(1,3,2),plot(t,z1),title(整流半波),axis(0 10-1 1)subplot(1,3,3),plot(t,z2),title(逐段解析函数),axis(0 10-1 1),得到正弦函数sint(t)在0,3*pi内的函数值,利用逻辑数组w1取出t中0,pi和2*pi,3*pi的部分,从而保留这一部分的正弦函数值,令其它部分等于0,得到半波整流函数。,利用逻辑函数w2取出t中pi/3,2*pi/3和7*pi/3,8*pi/3的部分,这一部分对应的y值应该等于sin(pi/3),其它部分等于半波整流函数的值。,注意:数组关系和逻辑运算得到的结果是逻辑数组,需与原数组进行相应运算才能取出所需子数组。,例2.21 逐段解析函数的计算和表现,2.8.2 运算符的优先级,在MATLAB中各种运算符的优先级如下:(矩阵转置)、(矩阵幂)和.(数组转置)、.(数组幂)(逻辑非)*(乘)、/(左除)、(右除)和.*(点乘)、./(点左除)、.(点右除)+、-(加减):(冒号)、=、=&(逻辑与)|(逻辑或)&(先决与)|(先决或),规则:高优先级的运算先执行;相同优先级下,按照从左到右的顺序执行;圆括号“()”优先级最高,并可改变优先级。,2.8.3 关系、逻辑函数,MATLAB中能得出真(1)和假(0)结果的函数有:关系逻辑函数、工作状态判断函数、特殊数据判断函数和数据类型函数。(1)关系逻辑函数:xor(A,B)、iseqiual(A,B)、any(A)、all(A)(2)特殊数据判断函数:isempty(x)、isinf(x)、isnan(x)、isspace(x)、isreal(x)等(3)数据类型判断函数:iscell(x)、ischar(x)、islogical(x)、isa(x,name)如isa(0.5,double)等,2.9 多项式,2.9.1 多项式的表达方法和创建MATLAB中多项式按降幂排列,降幂多项式在MATLAB中可以用行向量P表示。P(x)=anxn+an-1xn-1+a1x+a0P=an an-1 a1 a0,2.9 多项式(续),1.多项式系数行向量直接输入 按照降幂顺序输入多项式系数,如果有缺项,该项系数为零。例如:多项式 p1(x)=x3+21x2+20 x 可以表示为:p1=1 21 20 0%常数项为0,2.9 多项式(续),2.利用指令P=poly(AR)产生多项式系数向量若AR是方阵,则行向量P为AR的特征多项式的系数;若AR是行向量,则将AR的元素作为多项式的根ar1,ar2,arn来构造多项式(x-ar1)(x-ar2)(x-arn),P为构造的多项式的系数向量。,2.9 多项式(续),例如:对于矩阵A和B:A B 11.3771-3.5054 1.1283P1=poly(A)和P2=poly(B)相同:P1=P2=1-9-31 45对P1或P2表示的多项式求根等于B:roots(P1)roots(P2)B,2.9.2 多项式的运算函数,p=conv(pl,p2)p是多项式p1和p2的乘积多项式;q,r=deconv(pl,p2)多项式p1被p2除的商为多项式q,而余子式是r;polyval(p,s)按数组运算规则计算多项式在给定矩阵s时的值;r=roots(p)多项式的根r,以列向量的形式保存;Dp=polyder(p)对多项式p的求微分,得到Dp;,2.9.2 多项式的运算函数(续),r,p,k=residue(b,a)部分分式展开:b和a分别是分子和分母多项式系数行向量;r是r1 r2 rn留数行向量;p为p1 p2 pn极点行向量;k为直项行向量。,例2.22 多项式系数行向量,例2.23 求 的商和余多项式,多项式拟合和插值,1.多项式拟合 多项式曲线拟合是用一个多项式来逼近一组给定的数据,拟合的准则是最小二乘法,即找出使 最小的f(x)。p=polyfit(x,y,n)x、y向量分别为N个数据点的横、纵坐标;n是用来拟合的多项式阶次;p为拟合的多项式,p为n+1个系数构成的行向量。,例2.24 对多项式y1=2x13-x12+5x1+10曲线拟合,多项式拟合和插值(续),2.插值运算 插值运算是根据数据点的规律,找到一个多项式表达式可以连接两个点,插值得出相邻数据点之间的数值。一维插值是指对一个自变量的插值 yi=interp1(x,y,xi,method)x、y为行向量;xi是插值范围内任意点的x坐标,yi则是插值运算后的对应y坐标;method是插值函数的类型,“linear”为线性插值(默认),“nearest”为用最接近的相邻点插值,“spline”为三次样条插值,“cubic”为三次插值。,多项式拟合和插值(续),例如:对上例中的x1、y0向量经过线性插值、三次样条插值计算出横坐标为9.5的对应纵坐标。见下页算例:,拟合与插值的区别:拟合时是寻找“平滑”曲线,并不要求拟合曲线穿过这些“测量数据点”插值是在给定的“基准数据”的基础上“平滑”的估算出“基准数据”之间其它点的函数值,插值所得曲线一定穿过“基准数据”。插值广泛应用在图像和信号处理领域,多项式拟合和插值,本章小结,1)一维、二维、高维数组的创建2)数组基本操作 cat repmat reshape ndims size length3)子数组的寻访:“单下标”、“全下标”标识法4)标准数组函数 ones zeros eys rand randn,本章小结(续),5)“非数”和“空”的概念 NaN 或 nan表示非数,空不存在6)关系和逻辑操作符及其意义 数组运算:关系、逻辑运算 计算结果为由1和0组成的逻辑数组7)利用数组表示多项式及多项式的运算本章作业:,本章结束,谢谢!,

    注意事项

    本文(数值数组及其运算(matlab).ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开