




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Hefei University of TechnologyInstitute of Sound and Vibration Research MATLAB 数组和数组运算 MATLAB数组 MATLAB的一个重要功能是能够进行向量和矩阵运 算, MATLAB中的多数功能也是基于向量和矩阵运算 。因此,矩阵在MATLAB中具有非常重要的位置。在 MATLAB中向量和矩阵主要由数组表示,数组是 MATLAB的核心数据结构。 数组是计算机编程语言上对一组数的通称,矩阵和 向量是数学上的概念。 数组包括矩阵和向量,一维数组是向量,二维数组 是矩阵。所以,矩阵是数组的子集。 2 MATLAB 数组的创建一维数组 MATLAB一维数组的创建主要包括一维行向量和一维 列向量的创建。创建一维行向量和一维列向量主要的区 别在于创建数组时,数组元素是按照行排列还是按照列 排列。 一维行向量:把所有数组元素用空格或者逗号分隔, 并用方括号把所有数组元素括起来。 一维列向量:把所有数组元素用分号分隔,并用方 括号把所有数组元素括起来。 3 MATLAB 数组的创建一维数组 等差数组的创建 利用冒号生成等差数组, 格式 Start_val:Step: Stop_val Start_val表示等差数组的第一个元素 Step表示步长,步长为正代表递增,步长为负,代 表递减, 默认为1 Stop_val表示等差数组的最后一个元素 linspace函数 : linspace(Start_val, Stop_val, N), 默认N= 100 等比数组的创建 logspace函数 : logspace(Start_val, Stop_val, N), 默认N= 50 产生10Start_val到10Stop_val包含N个元素的等比数组 4 MATLAB 数组的创建二维数组 创建二维数组与创建一维数组的方式类似。在创建二维 数组时,用逗号或者空格区分同一行的不同元素,用分 号区分不同行。 5 MATLAB 数组的创建其他数组生成函数 函 数说 明 zeros产生元素全为0的数组 ones产生元素全为1的数组 eye产生单位数组 rand产生均匀分布的随机数数组,数值范围(0,1) randn产生均值为0,方差为1的正态分布随机数数组 diag获取数组的对角线元素,也可生成对角数组 6 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阶数组; 7 MATLAB 数组的创建其他数组生成函数示例 A=eye(3) A = 1 0 0 0 1 0 0 0 1 A=rand(3) A = 0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.8214 A=zeros(3) A = 0 0 0 0 0 0 0 0 0 A=ones(2,3) A = 1 1 1 1 1 1 8 MATLAB 数组的创建其他数组生成函数示例 A=rand(3, 5) A = 0.4218 0.9595 0.8491 0.7577 0.6555 0.9157 0.6557 0.9340 0.7431 0.1712 0.7922 0.0357 0.6787 0.3922 0.7060 b=diag(A) b= 0.4218 0.6557 0.6787 C=diag(b) C= 0.4218 0 0 0 0.6557 0 0 0 0.6787 9 MATLAB 数组寻址 数组中总是包含多个元素,因此在对数组的单个元 素或者多个元素进行访问时,需要对数组进行寻址运算 。 在 MATLAB 中,数组寻址是通过对数组下标的访问来实 现的。 提取数组A的第m行、第n列的元素值,使用A(m,n)可 以得到。同样,将矩阵A的第m行、第n列的元素值赋为 val,使用命令A(m, n)=val。 如果在数组寻址时,行或列的值大于数组的大小,则出 错。 10 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(:, :) 11 MATLAB 数组的查找 数组的查找函数是find,它能够查找数组中的非零数组 元素,并返回其数组索引值。 find函数在MATLAB中的使用语法形式: a=find(A)返回数组A中非零元素的单下标索引 注意单下标索引是按列计数 (2) a,b=find(A)返回数组A中非零元素的双下标索引放方 式。 12 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 用于 存储排序后的下标数组。 13 MATLAB 数组的运算 数组的数值运算 数组的加减法 + - 数组的乘除法 .* ./ 数组的乘方 . 数组的关系运算 数组的逻辑运算 14 MATLAB 数组的数值运算 数组的加减法 数组加减法为数组元素的加减法,与矩阵加减法相同 。利用运算符“+”和“-”实现该运算。需要注意的是相加 或相减的两个数组必须有相同的维数。 或者是数组与数值相加减。 数组的乘除法 数组乘除为元素的乘除,通过运算符“.*”和“./”来实现 。运算时需要两个数组有相同的维数 或者数组与数值相乘除。 注意:在进行除法操作时,作为分母的数组中不能包 含 0 元素。 15 MATLAB 数组的数值运算 数组的乘方 数组乘方用符号“.”实现。数组乘方以三种方式进行。 底为数组,指数为标量的形式。这种形式的结果是将 数组的每个元素进行指数相同的乘方。返回的结果为 与底维数相同的数组,结果数组的每个元素为底中相 应元素的乘方。 底为标量,指数为数组的形式。该形式返回的结果为 数组,维数与指数数组相同。结果数组的每个元素为 底以指数数组相应元素为指数做乘方的结果。 底和指数都是数组的形式。此时两个数组需要有相同 的维数。返回结果为一个数组,维数与前面两个数组 相同,每个元素为底数数组和指数数组做乘方的结果 。 16 MATLAB 数组的关系运算 关系运算和前面讲过的一样,包含6种:小于()、等于(=)、小于等于(=)和不等于(=)。MATLAB 比较两个元素大小时, 如果表达式为真,则返回结果1,否则返回0。 通过关系运算符实现数组的关系运算。返回结果为一个 数组,结果数组的元素为0或者1,由相互比较的两个数 组的相应元素的比较结果决定。 两个数组进行关系运算,需要维数相等 数组和单个数值也可以进行关系运算 17 MATLAB 数组的逻辑运算 数组逻辑运算也和前面讲过的一样符主要包括“与”(&) 、“或”( | )和“非”( )。 通过逻辑运算符实现数组的逻辑运算。返回结果为一个 数组,结果数组的元素为0或者1。 两个数组进行逻辑运算,需要维数相等 数组和单个数值也可以进行逻辑运算 18 MATLAB 数组思考题 A = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 1. 找出数组A中大于8的元素的单下标索引 2. 找出数组A中大于8并且小于14的元素的单下标索引 针对第一题: a=find(A8) 注意find函数是用来返回数组中的非零元 素下标的函数,为什么能直接这样用? 19 MATLAB数组的扩展 l 数组编辑器扩展数组 双击MATLAB界面工作区中的任一数组变量,都能打 开数组编辑器,对该数组进行编辑操作 20 MATLAB数组的扩展 l 下标索引扩展数组 索引扩展是数组扩展中较为常用的一种方法。 比如目前有一个n行m列的数组A,要通过索引来扩展 该数组,那么可以使用超出目前数组尺寸的索引数字, 来制定数组当前尺寸之外的一个位置,并对该位置的 数组元素进行赋值来完成对数组的扩展。 同时未指定的新添位置上默认赋值为。 21 MATLAB数组的扩展 l 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) 22 MATLAB数组元素的删除 删除数组元素,可以通过将该位置的数组元素赋值为 空方括号( ) 即可,一般配合冒号使用,将数组中的某 些行、列元素删除。不过需要注意的是,在进行数组元 素的删除时,索引结果必须是完整的行或列,而不能是 数组内部的块或者单元格。 23 MATLAB多维数组 从 MATLAB 5开始,MATLAB 开始支持多维数组。 MATLAB 对多维数组的操作与一维和二维数组相同。 目前,对于多维数组,最常用的为三维数组。三维数组 在图像处理中有着非常广泛的应用。 三维数组的第三维称为“页”,即一个三维数组由行、列 和页组成,其中每一页包含一个由行和列构成的二维数 组,并且每一页的二维数组必须有相同的维数。 24 MATLAB数组的创建多维数组 多维数组无法像一维数组和二维数组那样一次输入全部 值。因此需要借助一些函数来生成多维数组。 l 利用数组函数生成多维数组 l 利用直接索引方式生成数组 l 通过 cat 函数创建多维数组 A=cat(3, M, N) cat 函数含义:沿着一个指定维数把数组连接起来
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省襄阳市谷城县襄阳东津新区汉水小学2024-2025学年六年级下学期期末数学试题(无答案)
- 河南省开封市等2地2025-2026学年高二上学期开学考试地理试卷(含答案)
- 福建省福州市马尾区2024-2025学年八年级上学期期中语文试题(含答案)
- 智慧供应链题库及答案
- 2025年商超货架合作协议书
- 老师考试难题及答案
- 扶贫脱贫政策知识培训会课件
- 打击乐托班课件
- 戎戎变法课件
- 2025年阳泉化学中考试卷及答案
- (2025秋新版)教科版三年级上册科学全册教案
- 2025年新西师大版数学三年级上册全册课件
- 食品安全总监、食品安全员考核考试测试题及答案
- 2025年彩票市场监察笔试备考手册
- DB15∕T 3644-2024 国有企业阳光采购规范
- 2025年云南文山交通运输集团公司招聘考试笔试试卷【附答案】
- 1《氓》公开课一等奖创新教学设计统编版高中语文选择性必修上册
- 少先队辅导员技能大赛考试题库300题(含答案)
- 菌种购入、使用、销毁记录表单
- 初中英语教研组团队建设PPT课件
- 六年级上学期综合实践课教案
评论
0/150
提交评论