《MATLAB入门教程》PPT课件.ppt

上传人:sh****n 文档编号:6614481 上传时间:2020-02-29 格式:PPT 页数:81 大小:493.50KB
返回 下载 相关 举报
《MATLAB入门教程》PPT课件.ppt_第1页
第1页 / 共81页
《MATLAB入门教程》PPT课件.ppt_第2页
第2页 / 共81页
《MATLAB入门教程》PPT课件.ppt_第3页
第3页 / 共81页
点击查看更多>>
资源描述
第二讲数值数组及其运算 数值数组和数组运算始终是MATLAB的核心 第二讲数值数组及其运算 2 1引言2 2一维数组的创建和寻访2 3二维数组的创建2 4二维数组元素的标识2 5二维数组的子数组寻访和赋值2 6执行数组运算的常用函数 第二讲数值数组及其运算 2 7数组运算和矩阵运算2 8标准数组生成函数和数组操作函数2 9数组构作技法综合2 10高维数组2 11 非数 和 空 数组2 12关系操作和逻辑操作 2 1引言 数组 由一组实数或复数排成的长方阵列 Array 一维的 行 或 列 二维的 矩形 三维的 若干矩形的堆叠 更高的任意维 2 1引言 数组运算 无论对数组施加什么运算 包括函数 总认为是对数组中每个元素平等的实施同样的操作设计数组和数组运算的目的 使程序简单 易读 更接近数学公式提高程序向量化程度 提高计算效率 节省系统开销 2 1引言 绘制函数在0 x 1时的曲线x 0 0 1 1 定义自变量的采样点取值数组y x exp x 利用数组运算计算各自变量采样点上的函数值plot x y xlabel x ylabel y title y x exp x 绘图第一句定义自变量数组 0为起点 每隔0 1取一个点 直到1 得到1 11的数组第二句中 指数函数exp x 对x每个元素求值 结果也是1 11的数组数组乘是两个数组对应元素相乘 得到y也是1 11的数组连续函数必须在相应区间上采样才能进行数值计算 2 1引言 2 2一维数组的创建和寻访 1 一维数组的创建逐个元素输入x 2pi 2sqrt 3 3 5i 冒号生成格式x a inc ba是第一个元素 inc是步长 缺省为1 若 b a 是inc的整数倍 则生成数组最后一个元素等于b 否则小于binc可取正数或负数 取正 ab 2 2一维数组的创建和寻访 线性采样格式x linspace a b n a b是第一个和最后一个元素 n是采样点数生成1 n的数组等价于x a b a n 1 b运用MATLAB函数生成法如rand zeros ones等以上均为行数组 列数组转置即可 2 2一维数组的创建和寻访 2 一维数组子数组的寻访和赋值子数组的寻访 Address rand state 0 把均匀分布伪随机发生器置为0状态x rand 1 5 产生1 5的均布随机数组x 3 寻访数组x的第三个元素x 125 寻访数组x的第一 二 五个元素组成的子数组x 1 3 寻访前三个元素组成的子数组x 3 end 寻访除前2个元素外的全部其他元素 end是最后一个元素的下标x 3 1 1 由前三个元素倒排构成的子数组x find x 0 5 由大于0 5的元素构成的子数组x 12344321 对元素可以重复寻访 使所得数组长度允许大于原数组 2 2一维数组的创建和寻访 子数组的赋值 Assign x 3 0 第三个元素赋值为0 x 14 11 第一 四个元素都赋值为1保证被赋值的子数组长度与送入的数组长度相同 2 3二维数组的创建 二维数组与矩阵二维数组是由实数或复数排列成矩形构成的从数据结构上看 矩阵和二维数组没有区别当二维数组带有线性变换含义时 就是矩阵 2 3二维数组的创建 1 直接输入法二维数组三要素 整个数组必须以 为首尾数组行与行之间必须用 或回车隔离数组元素必须用 或空格分隔 2 3二维数组的创建 在MATLAB环境下 用下面三条指令创建二维数组Ca 2 7358 b 33 79 这两条指令分别给变量a b赋值C 1 2 a i b b sqrt a sin pi 4 a 5 b 3 5 i 创建二维数组CC 1 00005 4716 0 4177i0 69090 70714 82443 5000 1 0000i 在 内 是数组行分隔符 作为指令结束符 不显示执行结果 2 3二维数组的创建 复数数组的另一种输入方式M r 1 2 3 4 5 6 M i 11 12 13 14 15 16 CN M r i M i 由实部 虚部数组构成复数数组M r 123456M i 111213141516CN 1 0000 11 0000i2 0000 12 0000i3 0000 13 0000i4 0000 14 0000i5 0000 15 0000i6 0000 16 0000i 在 内 是数组元素分隔符 作为指令结束符 显示执行结果 2 3二维数组的创建 2 数组编辑器创建单击工作空间中的 新建 图标3 利用M文件创建和保存数组对于经常需要调用的数组 尤其是比较大而复杂的数组 值得为它专门建立一个M文件4 利用MATLAB函数创建 2 4二维数组元素的标识 1 全下标 标识经典教科书的标识法即指出是 第几行 第几列 的元素优点 几何概念清楚 引述简单 最常用 全下标 由两个下标组成 行下标 列下标 例如 A 2 5 2 4二维数组元素的标识 2 单下标 标识就是用一个下标来指明元素在数组中的位置对二维数组元素进行 一维编号 把二维数组所有列 按先左后右的次序 首尾相接排成 一维长列 然后自上往下编号 单下标 与 全下标 转换关系 以 m n 的二维数组A为例 全下标元素位置是 第r行 第c列 改为单下标表示为a c 1 m r MATLAB有两个指令可实现此转换 sub2ind据全下标算出单下标ind2sub据单下标算出全下标 2 4二维数组元素的标识 3 逻辑1 标识常用问题 寻找数组中大于某值的元素找出数组中所有绝对值大于3的元素A zeros 2 5 预生成一个2 5全零数组A 4 5 运用 全元素 赋值法获得AL abs A 3 产生与A同维的 0 1 逻辑值数组islogical L 判断L是否逻辑值数组X A L 把L中逻辑值1对应的A元素取出 2 4二维数组元素的标识 A 4 2024 3 1135L 1000100001ans 1X 445L的元素是0或1 它是 逻辑数组 是一种特殊的数据类型 逻辑1 标识法 通过与A同样大小的逻辑数组L中 1 的位置指示A中元素的位置 2 5二维数组的子数组寻访和赋值 A r c A的r行c列元素A r A的r行全部元素A c A的c列全部元素A A的 单下标全元素 寻访A s 单下标 寻访 生成 s指定的 一维数组 s是行数组 或列数组 则A s 就是长度相同的行数组 或列数组 A L 逻辑1 寻访 由与A同样大小的 逻辑数组 L中的 1 元素选出A的对应元素 A r c Sa 双下标 方式赋值 Sa的 行宽 列长 必须与A r c 的 行宽 列长 相同 A D 全元素赋值 结果 保持A的 行宽 列长 不变 条件 A D两个数组的元素数相等 A s Sa 单下标 部分元素赋值 结果 保持A的 行宽 列长 不变 条件 s单下标数组长度必须与一维数组Sa的长度相等 但s Sa不一定同是 行数组 或 列数组 2 5二维数组的子数组寻访和赋值 A zeros 2 4 创建2 4的全零数组A 00000000A 1 8 全元素赋值方式A 13572468s 235 产生单下标数组行数组A s 由 单下标行数组 寻访产生A元素组成的行数组Sa 102030 Sa是长度为3的 列数组 行数组也可以 A s Sa 单下标方式赋值 2 5二维数组的子数组寻访和赋值 ans 235Sa 102030A 12030710468A 23 ones 2 双下标赋值方式 把A的第2 3列元素全赋为1A 111710118 2 5二维数组的子数组寻访和赋值 2 6执行数组运算的常用函数 数组加 减 乘 除 幂函数的数组运算规则 函数f 对数组的运算相当于对数组的每一个元素作相同的函数运算大部分常用函数都执行数组运算三角 指数 复数 取整求余 坐标变换 2 7数组运算和矩阵运算 矩阵运算有明确 严格的数学规则数组运算是MATLAB定义的规则目的 数据管理方便 操作简单 指令形式自然 执行计算有效缺乏严谨的数学推理 本身仍在完善影响随MATLAB而扩大 2 7数组运算和矩阵运算 运算指令对照A 非共轭转置A 共轭转置A n各元素n次幂A n方阵的n次幂A B对应元素相乘A B矩阵相乘A BA元素除以B元素A BA右除BB A同上B AA左除Bexp A 对各元素求幂expm A 矩阵指数log A 对各元素求对数logm A 矩阵对数sqrt A 对各元素求方根sqrtm A 矩阵平方根 2 7数组运算和矩阵运算 A s标量赋给A的每个元素 s和A同大小 A B对应元素关系运算 A B对应元素逻辑运算 关系运算和逻辑运算仅对数组进行 2 7数组运算和矩阵运算 两种不同转置的比较clear A zeros 2 3 A 1 6 全元素赋值法A A 1 i 运用标量与数组乘产生复数矩阵A A A 数组转置 即非共轭转置A M A 矩阵转置 即共轭转置A 1 0000 1 0000i3 0000 3 0000i5 0000 5 0000i2 0000 2 0000i4 0000 4 0000i6 0000 6 0000iA A 1 0000 1 0000i2 0000 2 0000i3 0000 3 0000i4 0000 4 0000i5 0000 5 0000i6 0000 6 0000iA M 1 0000 1 0000i2 0000 2 0000i3 0000 3 0000i4 0000 4 0000i5 0000 5 0000i6 0000 6 0000i 两种不同乘的比较clear A 1 2 3 4 B 2 3 4 5 C A A BC M A BA 1234B 2345C 261220D 10132229 2 7数组运算和矩阵运算 2 7数组运算和矩阵运算 两种不同求平方根的比较clear B 4 9 16 25 B A sqrt B B M sqrtm B B 491625B A 2345B M 0 9421 0 9969i1 5572 0 3393i2 7683 0 6032i4 5756 0 2053i 2 8标准数组生成函数和数组操作函数 1 标准数组生成函数diag产生对角形数组eye产生单位数组magic产生魔方数组 以上三类数组不适用于高维 只适用于二维以下 ones产生全1数组rand产生均匀分布随机数组randn产生正态分布随机数组zeros产生全0数组 2 8标准数组生成函数和数组操作函数 标准数组产生的演示ones 1 2 产生长度为2的全1行数组ans 11randn state 0 把正态随机数发生器置0A randn 2 3 产生2 3的正态随机阵A 0 43260 1253 1 1465 1 66560 28771 1909B eye 3 产生3 3的单位阵B 100010001 2 8标准数组生成函数和数组操作函数 C diag A 取A阵的对角元C 0 43260 2877D diag C 内diag取A的对角元 外diag利用一维数组生成对角阵D 0 4326000 2877 2 8标准数组生成函数和数组操作函数 2 数组操作函数 P115表3 2 3 rot90把数组逆时针旋转90度diag提取对角元素 或生成对角阵flipud上下交换fliplr左右交换repmat按指定的行数列数铺放模块数组reshape改变行数列数 元素数不变以上指令只适用于二维数组 2 8标准数组生成函数和数组操作函数 reshape的使用演示a 4 4A reshape a 3 3 把一维数组a重排成3 3的二维数组a 4 3 2 101234A 4 12 303 214 diag的使用演示b diag A 取A元素对角阵生成数组bB diag b 根据b数组生成B对角矩阵b 404B 400000004 2 8标准数组生成函数和数组操作函数 A 4 12 303 214 repmat使用演示B1 repmat B 2 2 B1 400 400000000004004 400 400000000004004 2 8标准数组生成函数和数组操作函数 2 8标准数组生成函数和数组操作函数 flipud和fliplr使用演示flipud A 上下对称交换ans 214 303 4 12fliplr A 左右对称交换ans 2 1 430 341 2 A 4 12 303 214 2 9数组构作技法综合 1 数组的扩展赋值扩展法A reshape 1 9 3 3 创建3 3数组AA 147258369 2 9数组构作技法综合 A 5 5 111 扩展为5 5数组 扩展部分除 5 5 元素为111外 其余均为0A 147002580036900000000000111 2 9数组构作技法综合 A 6 222 标量对子数组赋值 扩展为5 6数组A 147002222580022236900222000002220000111222 2 9数组构作技法综合 多次寻访扩展法AA A 1 6 1 6 相当于指令repmat A 1 2 AA 147002221470022225800222258002223690022236900222000002220000022200001112220000111222指令repmat中 A为模块数组 1表示行方向上铺一块 2表示列方向上铺两块 A 147002222580022236900222000002220000111222 2 9数组构作技法综合 合成扩展法B ones 2 6 创建2 6全1数组B 111111111111 2 9数组构作技法综合 AB r A B 行数扩展合成AB r 147002222580022236900222000002220000111222111111111111 2 9数组构作技法综合 AB c A B 1 5 列数扩展合成AB c 1470022211258002221136900222110000022211000011122211 2 9数组构作技法综合 2 单下标寻访和reshape指令演示clear 清除内存变量A reshape 1 16 2 8 变一维数组成2 8数组A 13579111315246810121416 2 9数组构作技法综合 reshape A 4 4 变2 8数组为4 4数组ans 15913261014371115481216 2 9数组构作技法综合 s 13689111416 定义 单下标 数组A s 0 利用 单下标 数组对A的元素重新赋值A 00570013152400101200 2 9数组构作技法综合 3 逻辑函数的运用演示randn state 1 R randn 3 6 创建正态随机阵R 0 86440 8735 1 10270 1684 0 5523 0 61490 0942 0 43800 3962 1 9654 0 8197 0 2546 0 8519 0 4297 0 9649 0 74431 1091 0 2698L abs R 1 5 不等式条件运算 结果给出逻辑数组L 000100111101010001 R L 0 逻辑1 对应的元素赋0值R 0 86440 8735 1 10270 0 5523 0 61490000 0 81970 0 85190 0 9649 0 74431 10910 2 9数组构作技法综合 2 9数组构作技法综合 s find R 0 利用find获得符合关系等式条件的元素 单下标 一维行数组s 256810111718R s 111 利用 单下标 定位赋值R 0 86440 8735 1 1027111 0000 0 5523 0 6149111 0000111 0000111 0000111 0000 0 8197111 0000 0 8519111 0000 0 9649 0 74431 1091111 0000 2 9数组构作技法综合 ii jj find R 0 利用find获得符合关系等式条件的元素 双下标 disp ii disp jj 31331211334556结果第一行表示元素行数 第二行表示元素列数 2 10高维数组 三维数组行 Row 列 Column 页 Page 行 一维 矩形面 二维 长方体 三维 高维数组 2 10高维数组 1 高维数组的创建常用的四种创建方法 直接 全下标 赋值由若干同样大小的低维数组组合由函数ones zeros rand randn创建由repmat reshape等函数构造 2 10高维数组 全下标 赋值法A 2 2 2 1 单元素赋值创建2 2 2数组B 2 5 1 3 子数组赋值创建2 5 3数组 2 10高维数组 由函数ones zeros rand randn创建rand state 1111 rand 2 4 3 产生均匀分布随机数组 2 10高维数组 reshape 1 12 2 2 3 reshape的第一个输入量是待重组的数组 后面的输入量是要生成数组的各维大小生成数组总元素数必须与待重组数组总元素数要相等元素放置顺序遵循单下标规则 2 10高维数组 2 高维数组的标识数组的维数 dimension 行 列 数组 向量 维数为1矩阵的维数为2指令ndims A 可直接给出数组A的维数 2 10高维数组 数组的大小 Size 指令size A 给出A各维的大小 行数 列数 指令length A 给出所有维中的最大长度clear A reshape 1 24 2 3 4 dim A ndims A 测量A的维数size A size A 测量A的大小L A length A 求A的长度 3 234 4 2 11 非数 和 空 数组 1 非数NaNIEEE规定0 0 0 都会产生非数NaN的性质 传递性 NaN参与运算所得结果也是NaN没有 大小 概念 不能比较两个非数的大小 2 11 非数 和 空 数组 非数的产生a 0 0 b 0 log 0 c inf inf非数的传递性0 a sin a 非数的属性判断class a 数据类型归属isnan a 该指令唯一能正确判断非数的指令 2 11 非数 和 空 数组 非数元素的寻访rand state 0 R rand 2 5 R 1 5 NaN R 2 3 NaN 产生一个均匀分布随机数组 其中元素 1 5 和元素 2 3 为非数元素R 0 95010 60680 89130 4565NaN0 23110 4860NaN0 01850 4447LR isnan R 对数组元素是否非数进行判断 找出非数元素的位置标识LR 0000100100 2 11 非数 和 空 数组 si find LR 非数的 单下标 si 69 ri ci ind2sub size R si 转换成 全下标 标识 rj cj find LR 直接确定全下标disp 非数在二维数组R中的位置 disp 单下标时的第 int2str si 1 和第 int2str si 2 个元素 输出 全下标 标识 ri 21ci 35rj 21cj 35非数在二维数组R中的位置单下标时的第6和第9个元素 2 11 非数 和 空 数组 2 11 非数 和 空 数组 2 空 数组是MATLAB为操作和表述需要专门设计的某维或若干维长度为0的数组 2 11 非数 和 空 数组 注意 空 数组不同于全零数组 空 数组不是 虚无 存在于工作空间判断是否 空 isempty不具备传递性 得 空 结果要谨慎解释 2 11 非数 和 空 数组 创建 空 数组的几种方法a b ones 2 0 c zeros 2 0 d eye 2 0 f rand 2 3 0 4 空 数组的属性class a 空 的数据类别ans doubleisnumeric a 是数值数组类吗ans 1isempty a 唯一可正确判断数组是否 空 的指令ans 1 2 11 非数 和 空 数组 whicha a是什么aisavariablendims a 数组a的维数ans 2size a a数组的大小ans 00 2 11 非数 和 空 数组 用于子数组的删除和大数组的大小收缩A reshape 4 5 2 5 创建一个数值数组AA 4 2024 3 1135A 2 4 删除A的第二 四列A 404 315A 1 删除A的第一行A 3 1135 2 12关系操作和逻辑操作 MATLAB的约定 任何非0数认为是 逻辑真 只有0作为 逻辑假 关系表达式和逻辑表达式的计算结果是 逻辑数组 LogicalArray 1表示 真 0表示 假 逻辑数组是一种特殊的数值数组数值类的有关操作和函数同样适用 2 12关系操作和逻辑操作 1 关系操作大于 大于等于 等于 不等于标量与数组比较 标量与每个元素比较两数组比较 必须同维同大小 2 12关系操作和逻辑操作 关系运算示例A 1 9 B 10 A r0 A 4 r1 A B 关系运算和NaN的运用之一 求近似极限 修补图形缺口t 2 pi pi 10 2 pi 自变量数组中存在0值y sin t t 在t 0处 计算将产生NaNtt t t 0 eps 逻辑数组参与运算 使0元素被一个 机器零 小数代替yy sin tt tt 用数值可算的sin eps eps近似替代sin 0 0极限 2 12关系操作和逻辑操作 subplot 1 2 1 plot t y 使 1 2 幅子图中的第1幅成为当前图 绘制曲线axis 7 7 0 5 1 2 坐标控制指令 设定坐标范围xlabel t ylabel y title 残缺图形 坐标轴命名 书写图名subplot 1 2 2 plot tt yy 使 1 2 幅子图中的第2幅成为当前图 绘制曲线axis 7 7 0 5 1 2 xlabel t ylabel yy title 正确图形 2 12关系操作和逻辑操作 左图残缺 右图连续完整这是典型的处理极限的方法NaN在绘图中的一个用途 对曲线或曲面进行裁剪 2 12关系操作和逻辑操作 2 逻辑操作 与 或 非xor异或标量与数组的逻辑运算在标量与每个元素之间进行数组之间的运算 要求数组同维同大小 2 12关系操作和逻辑操作 逻辑操作示例A 1 9 L1 A 5 判断A中 哪些元素不大于5L2 A 3 A 7 判断A中 哪些元素大于3小于7A 123456789L1 111110000L2 000111000逻辑操作应用之一 逐段解析函数的计算和表现削顶整流正弦半波的计算和图形绘制 3 常用逻辑函数演示 见书P131表3 5 3 clear A 1 2 0 3 0 0 A 120300logical A ans 110100 2 12关系操作和逻辑操作 B true 2 3 B 111111islogical B ans 1 2 12关系操作和逻辑操作 小结 掌握数值数组的创建和寻访方法理解数组运算和矩阵运算的含义熟悉标准数组生成函数和数组操作函数的运用熟悉两类特殊数组的应用了解关系运算和逻辑运算及应用
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!