MATLAB数组和数组运算.ppt_第1页
MATLAB数组和数组运算.ppt_第2页
MATLAB数组和数组运算.ppt_第3页
MATLAB数组和数组运算.ppt_第4页
MATLAB数组和数组运算.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

MATLAB数组和数组运算,2,MATLAB数组,MATLAB的一个重要功能是能够进行向量和矩阵运算,MATLAB中的多数功能也是基于向量和矩阵运算。因此,矩阵在MATLAB中具有非常重要的位置。在MATLAB中向量和矩阵主要由数组表示,数组是MATLAB的核心数据结构。数组是计算机编程语言上对一组数的通称,矩阵和向量是数学上的概念。数组包括矩阵和向量,一维数组是向量,二维数组是矩阵。所以,矩阵是数组的子集。,3,MATLAB数组的创建一维数组,MATLAB一维数组的创建主要包括一维行向量和一维列向量的创建。创建一维行向量和一维列向量主要的区别在于创建数组时,数组元素是按照行排列还是按照列排列。一维行向量:把所有数组元素用空格或者逗号分隔,并用方括号把所有数组元素括起来。一维列向量:把所有数组元素用分号分隔,并用方括号把所有数组元素括起来。,4,MATLAB数组的创建一维数组,等差数组的创建利用冒号生成等差数组,格式Start_val:Step:Stop_valStart_val表示等差数组的第一个元素Step表示步长,步长为正代表递增,步长为负,代表递减,默认为1Stop_val表示等差数组的最后一个元素linspace函数:linspace(Start_val,Stop_val,N),默认N=100等比数组的创建logspace函数:logspace(Start_val,Stop_val,N),默认N=50产生10Start_val到10Stop_val包含N个元素的等比数组,5,MATLAB数组的创建二维数组,创建二维数组与创建一维数组的方式类似。在创建二维数组时,用逗号或者空格区分同一行的不同元素,用分号区分不同行。,6,MATLAB数组的创建其他数组生成函数,7,MATLAB数组的创建其他数组生成函数,zeros、ones、rand、randn、eye上述几个函数调用格式相同:A=zeros(n)返回一个nn阶零数组;A=zeros(m,n)返回一个mn阶零数组;函数diag()函数功能:获取数组的对角线元素,也可生成对角数组a=diag(A)返回A的对角元素,a是列向量;B=diag(a)返回一个nn阶数组;,8,MATLAB数组的创建其他数组生成函数示例,A=eye(3)A=100010001A=rand(3)A=0.95010.48600.45650.23110.89130.01850.60680.76210.8214,A=zeros(3)A=000000000A=ones(2,3)A=111111,9,MATLAB数组的创建其他数组生成函数示例,A=rand(3,5)A=0.42180.95950.84910.75770.65550.91570.65570.93400.74310.17120.79220.03570.67870.39220.7060b=diag(A)b=0.42180.65570.6787C=diag(b)C=0.42180000.65570000.6787,10,MATLAB数组寻址,数组中总是包含多个元素,因此在对数组的单个元素或者多个元素进行访问时,需要对数组进行寻址运算。在MATLAB中,数组寻址是通过对数组下标的访问来实现的。提取数组A的第m行、第n列的元素值,使用A(m,n)可以得到。同样,将矩阵A的第m行、第n列的元素值赋为val,使用命令A(m,n)=val。如果在数组寻址时,行或列的值大于数组的大小,则出错。,11,MATLAB数组寻址,如果需要访问数组中的多个数据,可以通过下标数组进行例如:A(1,2,2,3)利用冒号操作符也可以访问数组裁减数组例如:A(2:3,1:2)A(1:2:4,1:2)A(1:2:4,:)A(:,1:2)A(:,:),12,MATLAB数组的查找,数组的查找函数是find,它能够查找数组中的非零数组元素,并返回其数组索引值。find函数在MATLAB中的使用语法形式:a=find(A)返回数组A中非零元素的单下标索引注意单下标索引是按列计数(2)a,b=find(A)返回数组A中非零元素的双下标索引放方式。,13,MATLAB数组的排序,在很多时候我们需要对一个给定的数据向量进行排序。为完成这一操作,MATLAB提供了sort函数,该函数将任意给定的序列进行排序。sort函数的调用格式有:B=sort(A)B=sort(A,dim)B=sort(.,mode)B,IX=sort(.)其中的B为保存结果的数组;A为待排序的数组,当A为多维数组时,用dim指定需要排序的维数(默认为1);mode为排序的方式,可以取值“ascend”和“descend”,分别表示升序和降序,默认为升序;IX用于存储排序后的下标数组。,14,MATLAB数组的运算,数组的数值运算数组的加减法+-数组的乘除法.*./数组的乘方.数组的关系运算数组的逻辑运算,15,MATLAB数组的数值运算,数组的加减法数组加减法为数组元素的加减法,与矩阵加减法相同。利用运算符“+”和“-”实现该运算。需要注意的是相加或相减的两个数组必须有相同的维数。或者是数组与数值相加减。数组的乘除法数组乘除为元素的乘除,通过运算符“.*”和“./”来实现。运算时需要两个数组有相同的维数或者数组与数值相乘除。注意:在进行除法操作时,作为分母的数组中不能包含0元素。,16,MATLAB数组的数值运算,数组的乘方数组乘方用符号“.”实现。数组乘方以三种方式进行。底为数组,指数为标量的形式。这种形式的结果是将数组的每个元素进行指数相同的乘方。返回的结果为与底维数相同的数组,结果数组的每个元素为底中相应元素的乘方。底为标量,指数为数组的形式。该形式返回的结果为数组,维数与指数数组相同。结果数组的每个元素为底以指数数组相应元素为指数做乘方的结果。底和指数都是数组的形式。此时两个数组需要有相同的维数。返回结果为一个数组,维数与前面两个数组相同,每个元素为底数数组和指数数组做乘方的结果。,17,MATLAB数组的关系运算,关系运算和前面讲过的一样,包含6种:小于()、等于(=)、小于等于(=)和不等于(=)。MATLAB比较两个元素大小时,如果表达式为真,则返回结果1,否则返回0。通过关系运算符实现数组的关系运算。返回结果为一个数组,结果数组的元素为0或者1,由相互比较的两个数组的相应元素的比较结果决定。两个数组进行关系运算,需要维数相等数组和单个数值也可以进行关系运算,18,MATLAB数组的逻辑运算,数组逻辑运算也和前面讲过的一样符主要包括“与”(&)、“或”(|)和“非”()。通过逻辑运算符实现数组的逻辑运算。返回结果为一个数组,结果数组的元素为0或者1。两个数组进行逻辑运算,需要维数相等数组和单个数值也可以进行逻辑运算,19,MATLAB数组思考题,A=162313511108976124141511.找出数组A中大于8的元素的单下标索引2.找出数组A中大于8并且小于14的元素的单下标索引针对第一题:a=find(A8)注意find函数是用来返回数组中的非零元素下标的函数,为什么能直接这样用?,20,MATLAB数组的扩展,数组编辑器扩展数组双击MATLAB界面工作区中的任一数组变量,都能打开数组编辑器,对该数组进行编辑操作,21,MATLAB数组的扩展,下标索引扩展数组索引扩展是数组扩展中较为常用的一种方法。比如目前有一个n行m列的数组A,要通过索引来扩展该数组,那么可以使用超出目前数组尺寸的索引数字,来制定数组当前尺寸之外的一个位置,并对该位置的数组元素进行赋值来完成对数组的扩展。同时未指定的新添位置上默认赋值为。,22,MATLAB数组的扩展,cat函数扩展数组cat系列函数包括:cat,horzcat和vertcat。不管哪个连接函数,都必须保证被操作的数组可以被连接,即在某一个方向上尺寸一致。cat函数语法:Z=cat(dim,A,B,C,)dim=1/2行/列元素连接horzcat函数语法:Z=horzcat(A,B,C)vertcat函数语法:Z=vertcat(A,B,C),23,MATLAB数组元素的删除,删除数组元素,可以通过将该位置的数组元素赋值为空方括号()即可,一般配合冒号使用,将数组中的某些行、列元素删除。不过需要注意的是,在进行数组元素的删除时,索引结果必须是完整的行或列,而不能是数组内部的块或者单元格。,24,MATLAB多维数组,从MATLAB5开始,MATLAB开始支持多维数组。MATLAB对多维数组的操作与一维和二维数组相同。目前,对于多维数组,最常用的为三维数组。三维数组在图像处理中有着非常广泛的应用。三维数组的第三维称为“页”,即一个三维数组由行、列和页组成,其中每一页包含一个由行和列构成的二维数组,并且每一页的

温馨提示

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

评论

0/150

提交评论