已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 基于 MATLAB 的信号分析与处理 第一节 MATLAB 快速入门 一一 MATLAB 操作入门 MATLAB 是 MATrix LABoratory 矩阵实验室 的缩写 是由美国 MathWorks 公司于 20 世纪 80 年代初推出的一套以矩阵计算为基础的 适合多学科 多种工作平台的功能强劲的 大型软件 MATLAB 将数值计算 可视化和编程功能集成在非常便于使用的环境中 具有编 程效率高 用户使用方便 扩充能力强 移植性好等特点 经过 MathWorks 公司的不断完 善 目前 MATLAB 已经发展成为国际上最优秀的高性能科学与工程计算软件之一 1 启动 Windows 操作平台 双击桌面上 MATLAB 的快捷方式或程序里 MATLAB 选项即可启动 MATLAB 2 MATLAB 环境 启动 MATLAB 后对话框如下图 图 1 它大致包括以下几个部分 图 1 1 菜单栏 单击即可打开相应的菜单 在 MATLAB 6 5 主窗口的菜单栏 共包含 File Edit View Web Window 和 Help 6 个菜单项 1 File 菜单项 File 菜单项实现有关文件的操作 New 命令下的 M file 选项表示新建一个 M 文件 该命令将打开 MATLAB 的 M 文件编辑 调试器 通过 M 文 件编辑 调试器 用户可以创建自己的 M 文件 也可以编辑已有的 M 文件并调试 MATLAB 程序 Figure 选项表示新建一个图形窗口 2 Edit 菜单项 Edit 菜单项用于命令窗口的编辑操作 3 View 菜单项 View 菜单项用于设置 MATLAB 集成环境的显示方式 2 4 Web 菜单项 Web 菜单项用于设置 MATLAB 的 Web 操作 5 Window 菜单项 主窗口菜单栏上的 Window 菜单 只包含一个子菜单 Close all 用于关闭所有打开的编辑器窗口 包括 M file Figure Model 和 GUI 窗口 6 Help 菜单项 Help 菜单项用于提供帮助信息 2 工具栏 使用它们能使操作更快捷 3 Command Window 命令窗口 用来输入和显示计算结果 其中符号 表 示等待用户输入 在命令提示符后键入命令并按下回车键后 MATLAB 就会解释执行所 输入的命令 并在命令后面给出计算结果 在命令窗口中实现管理功能的常用命令有 cd显示当前工作目录 dir 显示当前工作目录或指定目录下的文件 clc清除命令窗口中的所有内容 clf清除图形窗口 quit exit 退出 MATLAB type test 在命令窗口中显示文件 test m 的内容 delete test 删除文件 test m which test 显示 test m 的目录 what显示当前目录或指定目录下的 M MAT MEX 文件 4 Workspace 工作区窗口 存储着命令窗口输入的命令和所有变量值 工作 空间是 MATLAB 用于存储各种变量和结果的内存空间 在该窗口中显示工作空间中所有 变量的名称 大小 字节数和变量类型说明 可对变量进行观察 编辑 保存和删除 5 Current Directory 当前目录选择窗口 显示当前路径 3 MATLAB 的帮助系统 MATLAB 的帮助系统提供帮助命令 帮助窗口等帮助方法 1 帮助命令 help 假如准确知道所要求助的主题词 或指令名称 那么使用 help 命令是获得在线帮助 的最简单有效的途径 例如要获得关于函数 sin 使用说明的在线求助 可键入命令 help sin 将显示 SIN Sine SIN X is the sine of the elements of X Overloaded methods help sym sin m 2 帮助窗口 图 2 帮助窗口给出的信息按目录编排 比较系统 便于浏览与之相关的信息 其内容与帮 助命令给出的一样 进入帮助窗口的方法有 选取帮助菜单里的 MATLAB Help 或键入命令 helpwin 双击菜单条上的问号按钮 3 图 2 第二节 变量与函数 一 变量一 变量 变量是任何程序设计语言的基本要素之一 MATLAB 语言当然也不例外 与一般常规 的程序设计语言不同的是 MATLAB 语言并不要求对所使用的变量进行事先声明 也不需 要指定变量类型 它会自动根据赋予变量的值或对变量进行的操作来确定变量的类型并为 其分配内存空间 在赋值过程中 如果变量已存在 MATLAB 将使用新值代替旧值 并以 新的变量类型代替旧的变量类型 MATLAB 中变量的命名规则是 1 变量名区分大小写 2 变量名的长度不超过 31 位 第 31 个字符之后的字符将被忽略 3 变量名必须以字母开头 之后可以是任意字母 数字或下划线 变量名中不允许 使用标点符号 MATLAB 中有一些预定义的变量 这些特殊的变量称为常量 MATLAB 语言中的常量 常量名常量值常量名常量值 i j 虚数单位realmin最小可用正实数 pi 圆周率realmax最大可用正实数 eps计算机的最小浮点数inf正无穷大 如 1 0 NaNNot a Number 非数 特指 0 0flops浮点运算数 在 MATLAB 语言中 定义变量时应避免与常量名相同 以免改变常量的值 与其他程序设计语言相同 MATLAB 语言中也存在变量作用域的问题 在未特殊说明 4 的情况下 MATLAB 语言将所识别的一切变量视为局部变量 即仅在其调用的函数内有 效 若要定义全局变量 应对变量进行声明 即在该变量前加关键字 global 二 运算符号及标点符号二 运算符号及标点符号 运算符号 1 算术运算符 表 1 表 1 数学表达式MATLAB 运算符MATLAB 表达式 加a b a b 减a b a b 乘ab a b 除ab 或 a b 或 b a 幂a b a b 2 关系运算符 表 2 表 2 数学关系MATLAB 运算符数学关系MATLAB 运算符 小于 小于或等于 等于 不等于 3 逻辑运算符 表 3 表 3 逻辑关系与或非 MATLAB 运算符 标点符号 MATLAB 中标点符号的含义是 1 在命令窗口中输入一个 MATLAB 语句 语句的一般形式为 变量 表达式 如果语 句后为逗号或无标点符号 则在命令窗口中显示该语句的计算结果 如果语句后为分号 MATLAB 只进行计算 不在命令窗口中显示计算结果 如果要查看计算结果 只需要在命令 窗口中输入变量名按回车键或打开工作空间双击选中的变量即可 2 在 MATLAB 的命令窗口中输入一个表达式或利用 MATLAB 进行编程时 如果表达式太 长 可以用续行符号 将其延续到下一行 3 编写 MATLAB 程序时 通常利用符号 对程序或其中的语句进行注释 三 函数三 函数 MATLAB 语言中最基本最重要的成分是函数 一个函数由函数名 输入变量和输出变 5 量组成 同一个函数 不同数目的输入变量和不同数目的输出变量 均代表不同的含 义 这不仅丰富了 MATLAB 的函数功能 而且大大减少了需要的磁盘空间 使得 MATLAB 编写的程序简单而且高效 MATLAB 的函数 按照用途 可以分为四类 标量函数 向量函数 矩阵函数和图形 函数 1 标量函数 标量函数作用于标量 一般用于简单的数值计算 常用的标量函数有三 角函数 指数对数函数 复数函数 截断函数和求余函数等 三角函数 sin cos tan cot sec csc asin acos atan acot asec acsc sinh cosh tanh asin h acosh atanh 指数和对数函数 exp 以 e 为底的指数函数 pow2 以 2 为底的指数函数 sqrt 正的 平方根函数 realsqrt 正的平方根函数 若输入不是正数则报错 nthroot n 次方根函数 log 自然对数函数 reallog 自然对数函数 若输入不是正数则报错 log10 以 10 为底的对 数函数 log2 以 2 为底的对数函数 复数函数 abs 绝对值或复数模 angle 复数的相角或幅角 conj 复数共轭 real 复数 实部 imag 复数虚部 complex 用实部和虚部构造复数 isreal 判断是否为实数矩阵 例如 c complex a b 将根据的 a b 构造复数 c 复数 c 的实部为 a 复数 c 的虚部为 b a 1 2 3 4 b 5 6 7 8 c complex a b 截断和求余函数 mod 除法求余数 与除数同号 rem 除法求余数 与被除数同号 sign 符号函数 fix 朝零方向取整函数 floor 向负无穷方向取整函数 ceil 向正无穷方向 取整函数 round 四舍五入函数 rats 有理逼近函数 当一个标量函数作用于向量或矩阵时 是这个标量函数作用于这个向量或矩阵的每一 个元素 这个功能将大大方便我们处理成批的数据 2 向量函数 MATLAB 中有些函数只有当它们作用于行向量或列向量时才有意义 称为向量函数 常用的向量函数 max 最大值 min 最小值 sum 和 length 长度 mean 平均值 median 中数 prod 乘积 sort 从小到大排列 例如 x 0 6833 0 2126 0 8392 0 6288 0 1338 0 2071 0 6072 0 6299 0 3705 0 5751 a max x b min x c mean x d median x 当一个向量函数作用于一个矩阵时会产生一个行向量 这个行向量的每个元素是向量 函数作用于矩阵相应列向量的结果 在 MATLAB 的统计工具箱中 我们还会学习到许多向量函数 3 矩阵函数 MATLAB 中有大量的矩阵函数 从其作用来看 可以分为构造矩阵的 函数和进行矩阵计算的函数 6 4 基本二维图形函数 绘制二维图形时最常用的是 plot 函数 1 plot y 当只有一个参数时 plot 以该参数的值为纵坐标 横坐标从 1 开始自 动赋值向量 1 2 3 向量的方向和长度与参数 y 相同 例如 y 0 1 2 1 0 plot y 2 plot x y 这是最常用的形式 x 为横坐标向量 y 为纵坐标向量 例如 t 1 0 2 10 y sin t plot t y 3 对数坐标曲线 三个函数 semilog semilogx loglog 可以绘制二维对数坐标曲线 这几个函数的用法与 plot 函数相同 例如 t 0 0 1 2 pi y sin t semilogx t y grid on 绘制的横坐标为对数坐标 并用 grid on 命令为图形窗口添加了网络 第三节 MATLABMATLAB 的数值计算功能的数值计算功能 强大的数值计算功能是 MATLAB 最具代表性的特点 也正是由于 MATLAB 具有强大 的数值计算功能 MathWorks 公司才有能力把 MATLAB 延伸到不同专业 不同行业和不 同部门的各个领域 使其成为世界上最优秀的 应用最为广泛的 最受用户喜爱的数学软 件 一 数组及其运算一 数组及其运算 1 数组的建立 1 直接输入数组 建立数组最直接的方法是在命令窗口中直接输入数组 数组元素需要用方括号 括起来 元素之间可以用空格 逗号或分号分隔 需要注意的是 用空格和逗号分隔建立 行数组 元素之间全部用分号分隔建立列数组 2 利用冒号表达式建立数组 此时不用方括号 冒号表达式建立等差数组 它的基本形式为 x x1 step x2 其中 x1 step x2 分别为 给定数值 x1 表示数组的首元素数值 step 表示步长 即从第二个元素开始 后一个元素 与前一个元素之间的差值 x2 表示数组尾元素数值限 注意 x2 并非尾元素数值 当 x2 x1 为 step 的整数倍时 x2 才是尾元素数值 例如 a 1 2 12 和 a 1 2 13 7 注 a 如果 step 1 可以省略此项的输入 直接写成 x x1 x2 b 如果 x10 如果 x1 x2 则需要 step y linspace 1 100 y linspace 1 100 6 线性等分函数和冒号表达式都可以建立等分数组 前者是设定了数组的维数去建立等 分数组 后者是通过设定步长建立维数随之确定的等分数组 4 对数等分数组的建立 MATLAB 中提供了对数等分函数 logspace 生成等比数组 将此数组取以 10 为底的对 数可生成等差数组 调用格式如下 y logspace x1 x2 生成 50 维对数等分数组 使得 y 1 10 x1 y 50 10 x2 例如 y logspace 5 8 y logspace x1 x2 n 生成 n 维对数等分行数组 使得 y 1 10 x1 y n 10 x2 另外 数组还可以从矩阵中抽取 还可以把数组看成 1 n 阶或 n 1 阶的矩阵 以矩阵 形式生成 由于在 MATLAB 中矩阵比数组重要的多 此类函数将在矩阵及其运算中详细 介绍 2 数组元素的调用 1 调用数组的一个元素 数组的元素可以通过下标调用 如 x i 表示数组 x 的第 i 个元 素 2 调用数组的部分元素 x a b c 表示调用数组 x 的从第 a 个元素开始 以步长为 b 到第 c 个元素 b 可以为负数 b 缺省时为 1 3 直接使用元素序号调用数组元素 x a b c d 表示调用数组 x 的第 a b c d 个元素 构成一个新数组 x a x b x c x d 3 数组的运算 1 数组对标量的加 减 乘 除 乘方是数组的每个元素对该标量进行相应的加 减 乘 除 乘方运算 设 a a1 a2 an c 标量 则 a c a1 c a2 c an c a c c a a c a1 c a2 c an c a c a c a1 c a2 c an c a c a c a1 c a2 c an c a c a c a1 c a2 c an c 8 c a c a c a1 c a2 c an 2 两个相同维数的数组进行加 减 乘 除 幂运算 可按元素对元素的方式进行 不 同大小或维数的数组不能进行运算 设 a a1 a2 an b b1 b2 bn 则 a b a1 b1 a2 b2 an bn a b a1 b1 a2 b2 an bn a b a1 b1 a2 b2 an bn a b a1 b1 a2 b2 an bn a b a1 b1 a2 b2 an bn 3 两个相同维数的数组的点积由 dot 函数实现 调用格式 dot a b 4 两个三维数组之间的向量积由 cross 函数实现 调用格式 cross a b 二 二 矩阵及其运算矩阵及其运算 由于 MATLAB 的数值计算功能都是以 复 矩阵为基本单元进行的 因此 MATLAB 中矩阵的运算可谓最全面 最强大 本小节将对矩阵及其运算进行详细的阐述 1 矩阵的建立 1 直接输入小矩阵 在键盘上直接输入矩阵是最方便 最常用和最好的建立数值矩阵的方法 尤其适合较 小的简单矩阵 用此方法建立矩阵时 应当注意以下几点 a 输入矩阵以 为其标识 即矩阵的元素应在 的内部 此时 MATLAB 才 将其识别为矩阵 如 a 1 2 3 1 1 1 4 5 6 b 矩阵的同行元素之间可由空格或逗号分隔 行与行之间用分号或回车符分隔 c 矩阵大小可不预先定义 d 若不想获得中间结果 在 后可用分号结束 e 无任何元素的空矩阵也合法 f 矩阵元素可以为运算表达式 如 b sin pi 3 cos pi 4 log 9 tanh 6 2 当矩阵很大 不适合在命令窗口直接输入时 可以使用 MATLAB 提供的矩阵编 辑器来完成矩阵的输入和修改 在使用矩阵编辑器时 必须首先在命令窗口中预先定义一 个变量 这个变量可以是数或简单的矩阵 例如在命令窗口中输入 A 1 打开工作空间窗 口 选中变量 A 双击 就可以打开矩阵 A 的编辑器 通过添加或修改原来的元素 从而建 立起我们需要的矩阵 3 通过 M 文件建立大矩阵 当矩阵的规模比较大 直接输入法就显得笨拙 出现差错也不易修改 为了解决此问 题 可以通过 M 文件输入矩阵 M 文件是一种可以在 MATLAB 环境中运行的文本文件 分为命令文件和函数文件两种 这里是用命令 M 文件来建立大型矩阵 从菜单栏的 File 中 9 选择 New 再选择 M file 命令 打开 MATLAB Editor 窗口 按格式把所要输入的矩阵写 入一文本文件中 并将此文件以 m 为扩展名 即为 M 文件 在 MATLAB 命令窗口中输入 此 M 文件名 运行后则把 M 文件中的大型矩阵输入到 MATLAB 的内存中 例如 编制一名为 example m 的 M 文件 内容如下 A 456 468 873 2 579 55 21 687 54 488 8 13 65 4656 88 98 21 5 在 MATLAB 命令窗口输入 example 将矩阵 A 调入到 MATLAB 的内存中 说明 M 文件要保存在 MATLAB 的搜索路径上 才能在 MATLAB 的命令窗口中调 用 三 多项式运算三 多项式运算 1 多项式的建立 在 MATLAB 中多项式 P x a0 xn a1xn 1 an 1x an由行向量 P a0 a1 an 1 an 表示 这样就把多项式的问题转化为向量的问题 1 由系数向量建立多项式 在 MATLAB 中 由于多项式是以向量形式储存的 因 此 建立多项式的最简单的方法是直接输入向量 MATLAB 自动将向量元素按降幂顺序分 配给多项式的各系数值 向量可以为行向量 也可以是列向量 例 输入多项式 x3 5x2 6x 33 p 1 5 6 33 2 特征多项式的建立 矩阵的特征多项式由函数 poly 实现 A 1 2 3 2 3 4 3 4 5 p poly A 3 由多项式的根建立多项式 由给定的根建立相应的多项式也由函数 poly 实现 root 5 3 4i 3 4i p poly root 2 多项式的运算 1 求多项式的值 求多项式的值有两种形式 对应着两种算法 一种是以数组为计 算单元 此时的计算函数是 polyval 调用格式为 y polyval p x 其中 p 为行向量形式的多 项式 x 为代入多项式的值 它可以是标量 向量 矩阵 如果 x 是向量或者矩阵 该函 数将对向量或者矩阵的每一个元素计算多项式的值 另一种是以方阵为计算单元 进行矩 阵运算 求得矩阵多项式的值 此时的计算函数为 polyvalm 这两种计算的差别是源于数 组运算和矩阵运算的差别 p 1 11 55 125 x 1 1 2 2 a polyval p x b polyvalm p x 2 求多项式的根 求多项式的根有两种方法 一种是直接调用 MATLAB 的函数 roots 求多项式的所有根 另一种是通过先建立多项式的伴随矩阵再求其特征值的方法得到 10 多项式的所有根 例 用两种方法求解方程 2x4 5x3 6x2 x 9 0 的所有根 p 2 5 6 1 9 roots p a compan p eig a 3 多项式的乘除法运算 多项式的乘法由函数 conv 实现 多项式的除法由函数 deconv 来实现 p1 2 5 6 1 9 p2 3 90 18 p conv p1 p2 多项式乘法 q r deconv p p2 多项式除法 4 多项式的微分 函数 polyder 可以实现多项式的微分计算 c 4 13 28 27 18 q polyder c q polyder a b 求 a b 的导数 q d polyder a b 求 a b 的导数 5 多项式的拟合 多项式拟合是多项式运算的一个重要组成部分 在工程及科研工 作中都得到了广泛的应用 MATLAB 提供了专用的拟合函数 polyfit 其调用格式如下 polyfit X Y n 其中 X Y 为拟合数据 n 为拟合多项式的阶数 p s polyfit X Y n 其中 p 为拟合多项式系数向量 s 为误差估计数组 例 用 4 次多项式对 0 pi 2 上的正弦函数进行最小二乘拟合 x 0 pi 20 pi 2 y sin x 获得 0 pi 2 上的数据点 a polyfit x y 4 进行多项式拟合 第四节 MATLABMATLAB 的图形功能的图形功能 在进行数值计算的过程中 为了从直观上认识计算结果 可以通过 MATLAB 的图形 功能将计算结果图形化 MATLAB 是通过描点 连线来作图的 因此 在作二维图形和三 维图形之前 必须先取得该图形上一系列点的坐标 然后利用 MATLAB 函数作图 下面 着重介绍二维图形的画法 对三维图形只作简单叙述 一 二维图形一 二维图形 二维图形的绘制是 MATLAB 图形功能的基础 也是在绝大多数数值计算中广泛应用 的图形方式之一 1 基本绘图命令 11 1 plot 命令 绘制二维图形最常用的命令是 plot 对于不同形式的输入 该函数可以实现 不同的功能 i 当 plot 函数仅有一个输入变量时 plot X 如果 X 为实向量 则以 X 的索引坐标作为横坐标 以 X 的各元素作为纵坐标绘制图 形 如果 X 为复向量 则以 X 的实部作为横坐标 虚部作为纵坐标绘制图形 如果 X 为 实数矩阵 则绘制 X 的列向量对其坐标索引的图形 如 X 0 0 5 0 75 0 95 0 8 0 35 plot X 图 4 1 X 1 2i 2 4i 3 2i 5 i 6 4i plot x 图 4 2 图 4 1 图 4 2 ii 当当 plot 函数有两个输入变量时 函数有两个输入变量时 plot X Y 当 X 和 Y 为向量时 X 和 Y 的维数必须相同 而且同时为行向量或同时为列向 量 此时以第一个向量的分量为横坐标 第二个向量的分量为纵坐标绘制图形 这是实际 应用过程中最为常用的 例如 x 0 0 01 pi pi y sin x cos x 注意 此处的 表示两个向量对应元素的乘 积 plot x y 图 4 3 图 4 3 图 4 4 当 X Y 为 m n 矩阵时 将在同一幅图中绘出 n 条不同颜色的连线 绘制规则为 以 X 矩阵的第 j 列分量作为横坐标 矩阵 Y 的第 j 列分量作为纵坐标 绘得第 j 条连线 若在 12 同一幅图中出现多条曲线 MATLAB 会自动地把不同曲线绘制成不同的颜色 以进行简单 的区别 如 x 0 0 01 pi pi y sin x cos x plot x x y iii 当 plot 函数有三个输入变量时 plot X Y Linespec 想绘制不同的线型 颜色 标识等的图形时 可以调用此形式 第 3 个输入变量为图 形显示属性的设置选项 线型 颜色 标识 线型 实线 点线 虚点线 虚线 颜色 y 黄 m 紫 c 青 r 红 g 绿 b 蓝 w 白 k 黑 标识 点 o 圆点 x 叉号 加号 星号 s 方形 d 菱形 v 下三角 上三 角 右三角 p 五角星 h 六角星 应用上述符号的不同组合可以为图形设置不同的线型 颜色 标识 在调用时 选项 应置于单引号内 当多于一个选项时 各选项直接相连 中间不需要任何的分隔符 如 x 1 0 1 pi 2 pi y sin x z cos x plot x y k x z kd 图 4 4 2 fplot 命令命令 前面介绍的 plot 命令是根据外部输入数据或通过函数数值计算得到的数据进行作 图 而在实际应用中 我们可能并不知道某一函数随自变量变化的趋势 此时若采用 plot 命令来绘图 则有可能会因为自变量的取值间隔不合理而使曲线图形不能反映出自变量在 某些区域内函数值的变化情况 当然我们可以将自变量间隔取得足够小以体现函数值随自 变量变化的曲线 但这样会使数据量变大 fplot 命令可以很好地解决这个问题 该命令通过内部的自适应算法来动态决定自变量 的取值间隔 当函数值变化缓慢时 间隔取大一点 变化剧烈时 间隔取小一点 fplot 命 令的调用方式 fplot fun xmin xmax ymin ymax 在 xmin xmax 内画出字符串 fun 表示的函数的图 形 ymin ymax 给出了 y 的限制 例如 fplot sin x x 20 20 0 3 1 3 图 4 5 图 4 5 图 4 6 13 2 图形处理的基本技术 除了提供强大的绘图功能外 MATLAB 语言还有极为强大的图形处理能力 下面介绍 一些图形处理技术 包括图形控制 图形标注 图形保持以及子图的绘制等 1 图形控制 MATLAB 语言中较常用的图形控制函数有坐标轴控制函数 axis 坐标轴缩放函数 zoom 和坐标网格函数 grid 等 i axis 函数控制坐标轴的特征 在缺省情况下 MATLAB 自动选择图形的横 纵坐标的比例 如果你对这个比例不满 意 可以用 axis 命令控制 常用的有 axis xmin xmax ymin ymax 中分别给出了 x 轴和 y 轴的最小 最大值 axis equal 或 axis equal x 轴和 y 轴单位长度相同 axis square 或 axis square 图框呈方形 axis off 或 axis off 清除坐标刻度 例如 x 0 0 025 pi 2 plot x tan x ko 使用 axis 命令设定坐标轴之前的图形 图 4 6 axis 0 pi 2 0 5 使用 axis 命令设定坐标轴之后的图形 图 4 7 图 4 7 图 4 8 ii zoom 函数控制坐标轴的缩放 zoom 函数可以实现对二维图形的缩放 该函数在 处理局部较为密集的图形中有很大作用 常用的调用格式有 zoom 在 zoom on 和 zoom off 之间切换 zoom on 允许对图形进行缩放 zoom off 禁止对图形进行缩放 zoom xon 允许 x 轴缩放 zoom yon 允许 y 轴缩放 zoom out 恢复进行的一切缩放 当 zoom 处于 on 状态时 可以通过鼠标进行图形缩放 单击鼠标左键将光标处的图形 放大一倍 而单击鼠标右键将光标处的图形缩小一倍 双击鼠标左键则将会恢复缩放前的 状态 即取消一切缩放操作 14 应当注意 对图形的缩放不会影响图形的原始尺寸 也不会影响图形的横纵坐标的比 例 即不会改变图形的基本结构 iii grid 函数控制平面图形的坐标网格 MATLAB 提供了平面网图函数 grid 用于绘制 坐标网格 提高图形显示效果 grid 函数的调用格式如下 grid on 在图形中绘制坐标网格 grid off 取消坐标网格 单独的函数 grid 将实现 grid on 与 grid off 两种状态之间的转换 x 0 0 1 pi 2 pi y sin x plot x y grid on 图 4 8 2 图形的标注 MATLAB 语言还提供了丰富的图形标注函数供用户自由地标注所绘制的图形 i 坐标轴标注和图形标题 xlabel ylabel 为 x y 坐标轴添加标注 title 为图形添加标题 xlabel 标注内容 属性 1 属性值 1 属性 2 属性值 2 属性包括标注文本的属 性 包括字体大小 字体名等 三个函数的调用结果的区别仅在于标注所处的位置不同 title 给出的标注将置于图的 顶部 而 xlabel 和 ylabel 则分置于相应的坐标轴的边上 例如 x 1 0 1 pi 2 pi y sin x plot x y xlabel x 0 2 pi fontweight bold title y sin x fontsize 12 fontweight bold 12 不加单引号 图 4 9 图 4 9 图 4 10 在标注过程中经常会遇到特殊符号的输入问题 为了解决这个问题 MATLAB 语言 提供了相应的字符转换 如 alpha beta gamma delta epsilon zeta pi omeg 15 a Omega 等等 用户也可以对文本标注进行显示控制 如 bf 黑体 it 斜体 rm 标准形式 例 如 x 10 0 1 10 y exp x 2 2 plot x y title bf y e x 2 2 图 4 10 ii 文本标注 MATLAB 对图形进行文本注释所提供的函数为 text 和 gtext text 函数的调用格式 text x y 标注文本及控制字符串 其中 x y 给定标注文本在图 中添加的位置 例如 x 1 0 1 pi 2 pi y sin x plot x y text 3 pi 4 sin 3 pi 4 leftarrow sin 3 pi 4 0 707 text 5 pi 4 sin 5 pi 4 sin 5 pi 4 num2str sin 5 pi 4 rightarrow HorizontalAlign ment right Fontsize 12 图 4 11 属性 HorizontalAlignment 用来控制文本标注输入起点是在标注本身的左侧还是右侧 图 4 11 图 4 12 交互式文本输入函数 gtext 使用该函数 用户可以通过使用鼠标来选择文本输入的点 单击后 系统将把指定的文本输入到所选的位置上 x 1 0 1 pi 2 pi y sin x plot x y gtext y sin x Fontsize 12 执行该函数时 将鼠标放在图形上会出现 字型交叉线供用户添加标注的点 选 择添加标注的位置后 单击鼠标左键即可在该位置上添加标注 iii 图例标注 16 在对数值计算结果进行绘图时 经常会出现在同一张图形中绘制多条曲线的情况 这 时可以使用 legend 命令为曲线添加图例以便于区别它们 legend 函数能够为图形中的所有 曲线进行自动标注 以其输入变量作为标注文本 具体调用格式如下 legend 标注 1 标注 2 标注 1 标注 2 等分别对应绘图过程中按绘制先后顺序所 生成的曲线 x 0 0 1 pi 2 pi y sin x z cos x plot x y k o x z k h legend sin x cos x 图 4 12 可以用鼠标拖动图例框改变其在图中的位置 也可以在 legend 函数调用时进行简单的 定位设置 legend 标注 1 标注 2 定位代号 MATLAB 给出了 6 个定位代号 具体说明如下 0 自动定位 使得图标与图形重复最少 1 置于图形的右上角 默认值 2 置于图 形的左上角 3 置于图形的左下角 4 置于图形的右下角 1 置于图形的右外侧 关于标注位置 没有必要记住 可以通过在线帮助获得 help legend 图例标注后 也可以用鼠标来调整图例标注的位置 3 图形保持与子图图形保持与子图 i 图形保持 在绘图过程中 经常会遇到在已存在的一张图中添加新的曲线 这就要求保持已存在 的图形 MATLAB 语言中实现该功能的函数是 hold hold on 启动图形保持功能 此后绘制的图形将添加到当前的图形窗口中 并自动调整 坐标轴的范围 hold off 关闭图形保持功能 新绘制图形将覆盖原图形 hold 在 hold on 和 hold off 之间切换 如 x 0 0 1 pi 2 pi y sin x z cos x plot x y k hold on plot x z k o plot x y z k h legend sin x cos x sin x cos x 0 hold off 图 4 13 17 图 13 ii 子图 在绘图过程中 经常需要将几个图形在同一图形窗口中表示出来 但又不在同一个坐 标系中绘制 此时要用到函数 subplot 调用格式如下 subplot m n p 将一个图形窗口分割成 m n 个小窗口 可以通过参数 p 分别对若干子 绘图区域进行操作 子绘图区域的编号为按行从左至右编号 如果 p 是一个向量 则创建 一坐标轴 包含所有罗列在 p 中的小窗口 例如 在四个子图中绘制不同的三角函数图 x 0 0 1 pi 2 pi subplot 2 2 1 第 1 个绘图子域 plot x sin x axis 0 2 pi 1 1 title sin x subplot 2 2 2 第 2 个绘图子域 plot x cos x o axis 0 2 pi 1 1 title cos x subplot 2 2 3 第 3 个绘图子域 plot x 2 sin x cos x x axis 0 2 pi 1 1 title 2sin x cos x subplot 2 2 4 第 4 个绘图子域 plot x sin x cos x h axis 0 2 pi 1 1 title sin x cos x 图 4 14 18 图 4 14 在子图绘制过程中 axis hold title xlabel grid 等都可以只针对某个子图进行图形 设置 而不会影响到其他子图 3 特殊的二维图形函数 MATLAB 提供了一系列特殊的二维图形函数 其中包括特殊坐标系的二维图形函数以 及特殊二维图形函数 1 极坐标图形 用 polar 函数可以画出极坐标图形 该函数有两种表达形式 polar theta rho 创建一个幅角 theta 相对于半径 rho 的极坐标图 polar theta rho LineSpec LineSpec 为绘出的图形指定线型 颜色和标识 x 0 0 01 pi 4 pi y sin x 2 x polar x y k 图 4 15 19 图 4 15 2 二维特殊函数图 下列函数可以绘制其它的二维特殊函数图形 area 填充绘图 bar 条形图 barh 水平条 形图 comet 彗星图 ezpolar 简单绘制极坐标图 feather 矢量图 fill 多边形填充 gplot 拓扑图 hist 直方图 pie 饼状图 rose 极坐标系下的柱状图等等 以上各函数均有不同的 调用方法 详细内容读者可以通过 MATLAB 在线帮助获得 二 三维图形二 三维图形 三维图形的绘制与二维图形的绘制在许多方面都很类似 其中曲线的属性设置完全相 同 最常用的三维绘图是绘制三维曲线图 三维网格图和三维曲面图三种基本类型 相应 的 MATLAB 命令为 plot3 mesh surf 下面分别介绍它们的具体使用方法 1 plot3 命令 与 plot 类似 plot3 是三维绘图的基本函数 调用格式如下 plot3 x y z 其中 x y z 为同维向量 绘制一条以向量 x y z 为 X Y Z 轴坐标值的 空间曲线 plot3 X Y Z 若 X Y Z 均为 m n 的矩阵 将绘制 n 条曲线 其第 j 条曲线是以 X Y Z 矩阵的第 j 列分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 骨外科护理三基考试试题及答案
- 高处坠落应急演练方案(脚本)
- 2025年应急知识竞赛题库及答案
- 2025年上半年软考网络工程师真题及答案解析
- 2025年职业道德试题及答案
- 压力容器事故专项应急救援预案
- 2024年林业基础及相关法规知识考试题库(附含答案)
- 人工智能测试题及答案
- 2025教练员考试真题及答案
- 第1课《自主选择课余生活》(第三课时)教学设计
- 农业安全保障措施方案(3篇)
- 避光输液培训课件
- 三年级语文上册《快乐读书吧》阅读记录卡
- 语言游戏方法教学课件设计
- AI赋能工科实验教学的新模式探索
- 农村沼气安全生产风险识别与防控策略
- 失眠病人的中医护理
- 癌性伤口临床护理
- 洗车间消防管理制度
- JG/T 455-2014建筑门窗幕墙用钢化玻璃
- 保安证考试题库及答案2025年
评论
0/150
提交评论