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

上传人:xt****7 文档编号:5163240 上传时间:2020-01-22 格式:PPT 页数:94 大小:973.50KB
返回 下载 相关 举报
二.数值数组及其运算(matlab).ppt_第1页
第1页 / 共94页
二.数值数组及其运算(matlab).ppt_第2页
第2页 / 共94页
二.数值数组及其运算(matlab).ppt_第3页
第3页 / 共94页
点击查看更多>>
资源描述
二 数值数组及其运算 数值数组及其运算 一维数组的创建和寻访二维数组的创建和寻访执行数组运算的常用函数数组运算和矩阵运算标准数组生成函数和数组操作函数高维数组 非数 和 空 数组 数值数组及其运算 续 关系操作和逻辑操作关系操作符和逻辑操作符运算符的优先级关系 逻辑函数 多项式 2 1一维数组的创建和寻访 数学计算是MATLAB强大计算功能的体现 MATLAB的数学计算分为数值计算和符号计算 其中符号计算是指使用未定义的符号变量进行运算 而数值计算不允许使用未定义的变量 数值数组 NumericArray 和数组运算 ArrayOperations 始终是MATLAB的核心内容 数组是指由一组实数或复数排成的长方阵列 它可以是一维的 行 或 列 可以是二维的 矩形 也可以是三维的 若干同维矩形的堆叠 甚至更高的任意维 数组运算是针对参与运算的数组中的每个元素 element 进行的 例2 1一维数组的基本操作 MATLAB内建数据类型 数值数组 NumericArray 字符串数组 CharacterArray 元胞数组 CellArray 构架数组 StructArray 数据类型查询 工作空间浏览器 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 M file 新建M文件 文件名为MyMatrix m MyMatrix m利用M文件来生成数组M Matrix 0123456789 10111213141516171819 20212223242526272829 30313233343536373839 2 保存文件 命名为MyMatrix m 3 在指令窗中输入MyMatrix 回车后生成数组M Matrix 2 2 2二维数组元素的标识 1 全下标 标识 全下标 标识由两个下标组成 即行下标和列下标 一个m n的数组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 单下标 标识只用一个下标来指明元素在数组中的位置 先把数组的所有列按先左后右的次序连接成 一维长列 然后对元素位置进行编号 即为该数组的单下标 对于m n的二维数组A 若元素A i j 则对应的 单下标 为s j 1 m i 全下标 单下标转换函数 sub2ind由全下标得到单下标 Linearindex ind2sub由单下标得到全下标 Multiplesubscripts 例2 8全下标和单下标的转换 2 2 2二维数组元素的标识 续 3 逻辑1 标识为了寻找数组中满足某一条件的元素的位置 可利用逻辑运算产生逻辑数组 LogicalArray 来标识 逻辑数组是大小和对应数组相同 而元素值为0或者1的数组 可以用A L1 L2 来表示子数组 其中L1 L2为逻辑向量 当L1 L2的元素为0则不取该位置元素 反之则取该位置的元素 例2 9由数组的逻辑运算得出逻辑数组 例2 9由数组的逻辑运算得出逻辑数组 续 注意 逻辑数组和数值数组的区别 对于具有相同结构的逻辑数组L和数值数组Lx 则有Class L doubleislogical L 1Class Lx doubleislogical Lx 0在内存浏览器中显示两者Size和Bytes相同 但Class略有不同 L doublearray logical Lx doublearray同时 无法利用Lx进行寻址 Ax A Lx 不合法 2 2 2二维数组元素的标识 续 4 判断数组维数和大小ndims判断数组维数size判断数组大小如 对上例中的数组A An ndims A As size A An 2As 25注意 数组的长度是指数组最长维的长度 可用指令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 2 3二维数组子数组的寻访和赋值 续 2 用单下标方式 A 由A的各列按自左至右的顺序首尾相接生成 一维长列 数组A s 生成 s指定的 一维数组A L 由与A同样大小的 逻辑数组 L中的 1 元素选出A的对应元素组成列数组 2 2 3二维数组子数组的寻访和赋值 单下标方式 2 2 3二维数组子数组的寻访和赋值 续 2 子数组的赋值 1 全下标方式A r c Sa给A的子数组A r c 赋值 则Sa的行列数必须等于A r c 的行列数 2 2 3二维数组子数组赋值 全下标方式 2 2 3二维数组子数组的寻访和赋值 续 2 单下标方式 A s Sa给A的第s个元素赋值 s元素个数必须等于Sa数组的元素个数 2 2 3二维数组子数组赋值 单下标方式 2 2 3二维数组子数组的寻访和赋值 续 3 全元素方式 A D 给A的所有元素赋值 A和D的元素总数必须相等 但行列数不一定相等 例2 10数组的寻访和赋值 2 3执行数组运算的常用函数 函数数组运算是指对数组X中的每一个元素xij求函数值 计算结果与数组X同维 即f Xm n f xij m n 执行数组运算的常用函数有 三角函数 双曲函数 指数函数 复数函数 圆整函数 求余函数 坐标变换函数等 见表2 6 1至表2 6 5 例2 11绘制函数y xe x在 01 区间上的曲线 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 矩阵运算符为 和 分别表示左除和右除 A B A 1 BA B A B 1其中 A 1是矩阵的逆 也可用inv A 求逆矩阵 2 数组的除法运算表达式 A B 和 A B 分别为数组的左除和右除 表数组相应元素相除 A和B数组必须大小相同 除非其中有一个是标量 2 4 1数组和矩阵的算术运算 续 4 矩阵和数组的乘方矩阵乘方的运算表达式为 A B 其中A可以是矩阵或标量 1 当A为矩阵 必须为方阵 B为正整数时 表示A矩阵自乘B次 B为负整数时 表示先将矩阵A求逆 再自乘 B 次 仅对非奇异阵成立 B为矩阵时不能运算 会出错 B为非整数时 将A分解成A W D W D为对角阵 则有A B W D B W 2 4 1数组和矩阵的算术运算 续 2 当A为标量 B为矩阵时 将A分解成A W D W D为对角阵 则A B 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 p2repmat 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 等运算结果称作非数 NotaNumber 用NaN或nan表示 1 非数NaN参与运算得到的结果也是非数 具有传递性 2 非数NaN没有大小概念 不能进行比较 但可用isnan指令进行判断 2 MATLAB用无穷大Inf或inf表示除数为0或超出数值范围 10e 308 10e308 的运算 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组成的 逻辑数组 LogicalArray 逻辑数组属于数值数组 同时具有真假判断作用 2 8 1关系操作符和逻辑操作符 2 8 1关系操作符和逻辑操作符 续 运算规则 两个变量都是标量 则结果为0 1的标量 两个变量都是数组 则必须大小相同 运算在两数组相同位置上的元素间进行 结果也是同样大小的数组 一个数组和一个标量 则把数组的每个元素分别与标量运算 结果为与数组大小相同的数组 仅对参加比较变量的实部进行比较 先决运算 只有当第一个条件成立时才考虑第二个条件 可用于用第一个条件来控制第二个条件的执行的场合 例如 b 0 a b 0 例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 t pi 3 二维数组作图subplot 1 3 1 plot t y title 正弦波 subplot 1 3 2 plot t z1 title 整流半波 axis 010 11 subplot 1 3 3 plot t z2 title 逐段解析函数 axis 010 11 得到正弦函数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 anan 1 a1a0 2 9多项式 续 1 多项式系数行向量直接输入按照降幂顺序输入多项式系数 如果有缺项 该项系数为零 例如 多项式p1 x x3 21x2 20 x可以表示为 p1 121200 常数项为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 50541 1283 P1 poly A 和P2 poly B 相同 P1 P2 1 9 3145 对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是 r1r2 rn 留数行向量 p为 p1p2 pn 极点行向量 k为直项行向量 例2 22多项式系数行向量 例2 23求的商和余多项式 2 9 3多项式拟合和插值 1 多项式拟合多项式曲线拟合是用一个多项式来逼近一组给定的数据 拟合的准则是最小二乘法 即找出使最小的f x p polyfit x y n x y向量分别为N个数据点的横 纵坐标 n是用来拟合的多项式阶次 p为拟合的多项式 p为n 1个系数构成的行向量 例2 24对多项式y1 2x13 x12 5x1 10曲线拟合 2 9 3多项式拟合和插值 续 2 插值运算插值运算是根据数据点的规律 找到一个多项式表达式可以连接两个点 插值得出相邻数据点之间的数值 一维插值是指对一个自变量的插值yi interp1 x y xi method x y为行向量 xi是插值范围内任意点的x坐标 yi则是插值运算后的对应y坐标 method是插值函数的类型 linear 为线性插值 默认 nearest 为用最接近的相邻点插值 spline 为三次样条插值 cubic 为三次插值 2 9 3多项式拟合和插值 续 例如 对上例中的x1 y0向量经过线性插值 三次样条插值计算出横坐标为9 5的对应纵坐标 见下页算例 拟合与插值的区别 拟合时是寻找 平滑 曲线 并不要求拟合曲线穿过这些 测量数据点 插值是在给定的 基准数据 的基础上 平滑 的估算出 基准数据 之间其它点的函数值 插值所得曲线一定穿过 基准数据 插值广泛应用在图像和信号处理领域 2 9 3多项式拟合和插值 本章小结 1 一维 二维 高维数组的创建2 数组基本操作catrepmatreshapendimssizelength3 子数组的寻访 单下标 全下标 标识法4 标准数组函数oneszeroseysrandrandn 本章小结 续 5 非数 和 空 的概念NaN或nan表示非数 空 不存在6 关系和逻辑操作符及其意义数组运算 关系 逻辑运算计算结果为由1和0组成的逻辑数组7 利用数组表示多项式及多项式的运算本章作业 本章结束 谢谢
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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