数值数组及向量化运算.ppt_第1页
数值数组及向量化运算.ppt_第2页
数值数组及向量化运算.ppt_第3页
数值数组及向量化运算.ppt_第4页
数值数组及向量化运算.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

第三章数值数组及向量化运算 本章重点 掌握一维 二维和任意高维双精度数值数组的生成和操作指令 熟练掌握数组运算和矩阵运算 掌握数据的获取与保存方法 掌握MATLAB中的关系操作和逻辑操作 3 1数值计算的特点和地位符号计算的优点 可对包含变量字符 参数字符和数字的表达式进行推理 运算 并给出符号结果 这些结果与解析表达式比较接近 符号计算的缺点 有些问题无法解 有些问题求解时间过长 符号解法 symstx ft t 2 cos t sx int ft t 0 x ezplot sx 已知 求s x 数值解法 dt 0 05 t 0 dt 5 Ft t 2 cos t Sx dt cumtrapz Ft plot t Sx k MarkerSize 12 例3 1 1 说明 进行数值计算前 需要确定一组自变量采样点 即采样区间和采样间隔 执行数值计算的表达式都是在已知的数值点上进行的 计算结果也是离散的 如 Ft t 2 cos t 通过离散数据的图形曲线可以形象的体现数据之间的函数关系 例3 1 2 3 2数值数组的创建和寻访 MATLAB语言最基本的特点在于矩阵运算 绝大多数的变量和数据都可看成为矩阵变量和矩阵数据 应用MATLAB语言编程时 尤其要注意矩阵的阶数和向量的维数问题 标量可看作1 1阶的矩阵 对于向量可看作1 M或M 1阶矩阵 向量创建时默认为行向量 3 2 1一维数组的创建1 递增 递减型一维数组的创建 1 冒号法使用冒号指定数值范围和相邻值的步长x s d fs起始值f结束值d步长如果步长默认为1 则用x s f例如x 1 2 9则x 13579 x 0 4 2则x 0 41 4 x 12 5 3 5则x 12 59 56 5 1 递增 递减型一维数组的创建 2 线性 或对数 定点法x linspace a b n 以a b为左右端点 产生线性等间隔的 1 n 行数组X logspace a b n 以a b为左右端点 产生对数等间隔的 1 n 行数组 两种方法的区别冒号法强调步长 有可能取不到终点值 结果不会超过终点值 a 12 5 3 5 则a 12 59 56 5 线性定点法特别强调数据的数量 两端点必在数据范围内 a linspace 12 5 5 3 则a 12 58 755 2 其他类型一维数组的创建 1 逐个元素输入法例 x 2pi 2 0 7e33 5i 2 运用函数生成例 c rand 1 5 c1 ones size c c2 ones 1 n 例3 2 1 3 利用workspace输入法 在workspace中选中某个变量 右键选OpenSecletion 或是双击该变量 然后编辑 3 2 2二维数组的创建 1 直接输入法二维数组的三要素 矩阵元素必须用 括住 矩阵元素必须用逗号或空格分隔 在 内矩阵的行与行之间必须用分号分隔 或者Enter换行 2 编辑器创建先在命令行上定义一个变量 然后在wokrspace中右键点击该变量 进行编辑 3 M文件创建方法打开M文件编辑器 在空白处输入所需数组 然后保存 以后使用时直接在指令窗中输入文件名 即可将数据加入到workspace中 4 用函数创建diag产生对角数组eye产生单位数组magic产生魔方数组rand产生均匀分布随机数组randn产生正态分布随机数组ones全1数组zeros全0数组例3 2 5 3 2 3 二维数组元素的标识和寻访全下标标识法 即指出是 第几行 第几列 的元素 优点 几何概念清楚 引述简单 对于二维数组来说 全下标 标识由两个下标组成 行下标 列下标 例 矩阵A 123456789101112131415 则A 2 3 8 A 3 2 12A 3 5 15 A 1 5 5 A r 由指定r行上所有列元素组成 结果是一个行向量A c 由c指定列上的所有行元素构成 结果是一个列向量例 矩阵A 123456789101112131415 则A 2 678910 A 2 2712 单下标 LinearIndex 标识法 只用一个下标来指明元素在数组中的位置先设想把二维数组的所有列 按先左后右的次序 首尾相接排成 一维长列 然后 自上往下自左向右对元素位置进行编号 列优先例 矩阵A 123456789101112131415 则A 2 6 A 5 7 A 8 8 A 12 14 A s 单下标访问 s是一维数组 生成由s指定位置元素的一维数组 结果和s的行列性质有关 例 矩阵A 123456789101112131415 b A 4 9 结果是b 27123813 b A 4 9 结果是b 27123813 单下标与全下标的转换关系 以 m n 的二维数组A为例 若 全下标 元素位置是 第r行 第c列 那么相应的 单下标 为l c 1 m r MATLAB有两个指令可实现以上表示方法间的转换 sub2ind据全下标换算出单下标 ind2sub据单下标换算出全下标 逻辑标识法 通过与A同样大小的逻辑数组L中 逻辑值1 所在的位置 指出A中元素的位置 L的元素或是0或是1 它是 逻辑数组 LogicalArray 是一种特殊的数据类型 例3 2 6L A 3A L NaN 3 2 4数组操作技法综合 Matlab提供了如反转 插入 提取 收缩 重组等数组操作指令 见表3 2 3 例3 2 7 3 3数组运算 数组运算规则 1 设两个同维同大小的数组A和B的算术运算结果为数组C 则C数组的第 i j 元素一定是数组A和B相同位置元素进行该算术运算的结果 2 设标量a和数组B进行算术运算的结果为与B大小相同的数组C 其中Cij a Bij 3 函数的数组运算规则是 该函数对数组的逐个元素起作用 数组运算符及运算函数见表3 3 1和3 3 2数组运算和向量化编程 流水线 加工 可大大提高效率 例3 3 1例3 3 2 3 4 非数 和 空 数组 1 非数按IEEE规定 0 0 0 等运算都会产生非数 NotaNumber 该非数在MATLAB中用NaN或nan记述 根据IEEE数学规范 NaN具有以下性质 NaN参与运算所得的结果也是NaN 即具有传递性 非数没有大小概念 因此不能比较两个非数的大小 非数的功用 真实记述0 0 0 运算的后果 避免可能因0 0 0 运算而造成程序执行的中断 在数据可视化中 用来裁剪图形 例3 4 1 例3 4 2 2 空 数组 空 数组是MATLAB为操作和表述需要而专门设计的一种数组 某维长度为0或若干维长度均为0的数组都是 空 数组 空 数组的功用 在没有 空 数组参与运算时 计算结果中的 空 可以合理地解释 所得结果的含义 运用 空 数组对其他非空数组赋值 可以改变数组的大小 但不能改变数组的维数 例3 4 3 3 5关系操作和逻辑操作 在所有关系表达式和逻辑表达式中 作为输入的任何非0数都被看作是逻辑真 只有0才被看作逻辑假 运算结果都是由0和1构成的逻辑数组 数组中1表示真 0表示假 逻辑数组可以用于一般数组的计算 A 1 9 b reshape A 3 3 c b 4d c b 标量可以和任何维数组进行关系或逻辑操作 运算比较在标量和数组每个元素之间进行 结果和数组维

温馨提示

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

最新文档

评论

0/150

提交评论