logo资料库

Matlab超强经典教程2014.pdf

第1页 / 共219页
第2页 / 共219页
第3页 / 共219页
第4页 / 共219页
第5页 / 共219页
第6页 / 共219页
第7页 / 共219页
第8页 / 共219页
资料共219页,剩余部分请下载后查看
第 1 章 基础准备及入门
1.1 MATLAB的安装和工具包选择
1.2 Desktop操作桌面的启动
1.2.1 MATLAB的启动
1.2.2 Desktop操作桌面简介
1.3 Command Window运行入门
1.3.1 Command Window指令窗简介
1.3.2 最简单的计算器使用法
1.3.3 数值、变量和表达式
一 数值的记述
二 变量命名规则
三 MATLAB默认的预定义变量
四 运算符和表达式
五 面向复数设计的运算——MATLAB特点之一
六 面向数组设计的运算——MATLAB特点之二
1.4 Command Window操作要旨
1.4.1 指令窗的显示方式
一 默认的输入显示方式
二 运算结果的显示
三 显示方式的永久设置
1.4.2 指令行中的标点符号
1.4.3 指令窗的常用控制指令
1.4.4 指令窗中指令行的编辑
1.5 Command History历史指令窗
1.5.1 Command History历史指令窗简介
1.5.2 历史指令的再运行
1.6 Current Directory、路径设置器和文件管理
1.6.1 Current Directory当前目录浏览器简介
1.6.2 用户目录和当前目录设置
1.6.3 MATLAB的搜索路径
1.6.4 MATLAB搜索路径的扩展
一 何时需要修改搜索路径
二 利用设置路径对话框修改搜索路径
三 利用指令path 设置路径
1.7 工作空间浏览器和数组编辑器
1.7.1 Workspace工作空间浏览器简介
1.7.2 工作空间的管理指令
一 查询指令who及whos
二 从工作空间中删除变量和函数的指令clear
三 整理工作空间内存碎片的指令pack
1.7.3 Array Editor数组编辑器
1.7.4 数据文件和变量的存取
一 借助工作空间浏览器产生保存变量的MAT文件
二 借助输入向导Import Wizard向工作空间装载变量
三 存取数据的操作指令save 和load
1.8 Editor/Debugger和脚本编写初步
1.8.1 Editor/Debugger M文件编辑器简介
1.8.2 M脚本文件编写初步
1.9 帮助系统及其使用
1.9.1 六大子系统构成的帮助体系
1.9.2 常用帮助指令
一 函数搜索指令
二 词条搜索指令
1.9.3 Help Navigator/Browser帮助导航浏览器
一 帮助导航/浏览器简介
二 Contents目录 窗
三 Index检索窗
四 Search搜索窗
1.9.4 DEMO演示系统
1.9.5 VIDEO视频演示帮助系统
习题 1
第 1 章 符号计算
1.1 符号对象和符号表达式
1.1.1 符号对象的创建和衍生
一 生成符号对象的基本规则
二 符号数字
三 符号参数
四 符号变量
1.1.2 符号计算中的算符
1.1.3 符号计算中的函数指令
1.1.4 符号对象的识别
1.2 符号数字及表达式的操作
1.2.1 数值数字与符号数字之间的转换
一 数值数字向符号数字的转换
二 符号数字向双精度数字转换
1.2.2 符号数字的任意精度计算
1.2.3 符号表达式的基本操作
1.2.4 表达式中的置换操作
一 子表达式置换操作
二 通用置换指令
1.3 符号微积分
1.3.1 极限和导数的符号计算
1.3.2 序列/级数的符号求和
1.3.3 符号积分
1.4 微分方程的符号解法
1.4.1 符号解法和数值解法的互补作用
1.4.2 求微分方程符号解的一般指令
1.4.3 微分方程符号解示例
1.5 符号变换和符号卷积
1.5.1 Fourier变换及其反变换
1.5.2 Laplace变换及其反变换
1.5.3 Z变换及其反变换
1.5.4 符号卷积
1.6 符号矩阵分析和代数方程解
1.6.1 符号矩阵分析
1.6.2 线性方程组的符号解
1.6.3 一般代数方程组的解
1.7 利用MAPLE的深层符号计算资源
1.7.1 经典特殊函数的调用
1.7.2 MAPLE库函数在线帮助的检索树
1.7.3 发挥MAPLE的计算潜力
1.8 符号计算结果的可视化
1.8.1 直接可视化符号表达式
一 单独立变量符号函数的可视化
二 双独立变量符号函数的可视化
1.8.2 符号计算结果的数值化绘图
习题2
第 1 章 数值数组及向量化运算
1.1 数值计算的特点和地位
1.2 数值数组的创建和寻访
1.2.1 一维数组的创建
一 递增/减型一维数组的创建
二 通用型一维数组的创建
1.2.2 二维数组的创建
一 小规模数组的直接输入法
二 中规模数组的数组编辑器创建法
三 中规模数组的M文件创建法
四 利用MATLAB函数创建数组
1.2.3 二维数组元素的标识和寻访
1.2.4 数组构作技法综合
1.3 数组运算
1.3.1 数组运算的由来和规则
一 函数关系数值计算模型的分类
二 提高程序执行性能的三大措施
三 数组运算规则
四 数组运算符及数组运算函数
1.3.2 数组运算和向量化编程
1.4 “非数”和“空”数组
1.4.1 非数NaN
1.4.2 “空”数组
1.5 关系操作和逻辑操作
1.5.1 关系操作
1.5.2 逻辑操作
1.5.3 常用逻辑函数
习题3
第 1 章 数值计算
1.1 数值微积分
1.1.1 近似数值极限及导数
1.1.2 数值求和与近似数值积分
1.1.3 计算精度可控的数值积分
1.1.4 函数极值的数值求解
1.1.5 常微分方程的数值解
1.2 矩阵和代数方程
1.2.1 矩阵运算和特征参数
一 矩阵运算
二 矩阵的标量特征参数
1.2.2 矩阵的变换和特征值分解
1.2.3 线性方程的解
一 线性方程解的一般结论
二 除法运算解方程
三 矩阵逆
1.2.4 一般代数方程的解
1.3 概率分布和统计分析
1.3.1 概率函数、分布函数、逆分布函数和随机数的发生
一 二项分布(Binomial distribution)
二 正态分布(Normal distribution)
三 各种概率分布的交互式观察界面
1.3.2 随机数发生器和 统计分析指令
1.4 多项式运算和卷积
1.4.1 多项式的运算函数
一 多项式表达方式的约定
二 多项式运算函数
1.4.2 多项式拟合和最小二乘法
一 多项式拟合
二 最小二乘问题
1.4.3 两个有限长序列的卷积
习题4
第 1 章 数据和函数的可视化
1.1 引导
1.1.1 离散数据和离散函数的可视化
1.1.2 连续函数的可视化
1.2 二维曲线和图形
1.2.1 二维曲线绘制的基本指令plot
一 基本调用格式plot(x,y,'s')
二 plot的衍生调用格式
三 plot的属性可控调用格式
1.2.2 坐标控制和图形标识
一 坐标轴的控制
二 分格线和坐标框
三 图形标识指令
四 标识指令中字符的精细控制
1.2.3 多次叠绘、双纵坐标和多子图
一 多次叠绘
二 双纵坐标图
三 多子图
1.2.4 获取二维图形数据的指令ginput
1.3 三维曲线和曲面
1.3.1 三维线图指令plot3
1.3.2 三维曲面/网线图
一 三维曲面/网线可视化的数据准备
二 绘制曲面/网线图的基本指令
1.3.3 曲面/网线图的精细修饰
一 视角控制view
二 色图colormap
三 浓淡处理shading
四 透明度控制 alpha
五 灯光设置light
六 照明模式lighting
七 控制光反射的材质指令material
1.3.4 透视、镂空和裁切
一 图形的透视
二 图形的镂空
三 裁切
1.4 高维可视化
1.4.1 二维半图指令pcolor, contour, contourf
1.4.2 四维表现
一 准四维表现
二 切片图
1.4.3 动态图形
一 彗星状轨迹图
二 色图的变幻
三 影片动画
四 实时动画
1.5 图形窗功能简介
习题5
第 1 章 M文件和函数句柄
1.1 MATLAB控制流
1.1.1 if-else-end条件控制
1.1.2 switch-case控制结构
1.1.3 for循环和while循环
1.1.4 控制程序流的其它常用指令
1.2 脚本文件和函数文件
1.2.1 M脚本文件
1.2.2 M函数文件
1.2.3 局部变量和全局变量
1.2.4 M函数文件的一般结构
1.3 MATLAB的函数类别
1.3.1 主函数(Primary function)
1.3.2 子函数(Subfunction)
1.3.3 匿名函数(Anonymous function)
1.4 函数句柄
1.4.1 函数句柄的创建和观察
1.4.2 函数句柄的基本用法
习题6
第 1 章 SIMULINK交互式仿真集成环境
1.1 连续时间系统的建模与仿真
1.1.1 基于微分方程的SIMULINK建模
1.1.2 基于传递函数的SIMULINK建模
1.2 离散时间系统的建模与仿真
1.3 SIMULINK实现的元件级电路仿真
习题7
第 1 章 Notebook
1.1 Notebook的配置和启动
1.1.1 Notebook的配置
1.1.2 Notebook的启动
一 创建新的M-book文件
二 打开已有的M-book文件
1.2 M-book模板的使用
1.2.1 输入细胞(群)的创建和运行
一 细胞(群)
二 基本操作
三 输入细胞(群)操作示例
1.2.2 Notebook菜单的其他选项
一 自初始化细胞及其应用
二 整个M-book文件的运行
三 删去M-book 文件所有输出细胞
1.2.3 输出细胞的格式控制
一 输出数据的表示法
二 输出数据间的空行控制
三 图形的嵌入控制
四 嵌入图形大小的控制
五 嵌入图形的背景色问题
六 M-book处理活动画面的能力
1.3 使用M-book模板的若干参考技法
第1章 基础准备及入门 本章有三个目的:一是讲述 MATLAB 正常运行所必须具备的基础条件;二是简明地介 绍 MATLAB 及其操作桌面 Desktop 的基本使用方法;三是全面介绍 MATLAB 的帮助系统。 本章的前两节讲述:MATLAB 的正确安装方法和 MATLAB 环境的启动。因为指令窗 是 MATLAB 最重要的操作界面,所以本章用第 1.3、1.4 两节以最简单通俗的叙述、算例 讲述指令窗的基本操作方法和规则。这部分内容几乎对 MATLAB 各种版本都适用。第 1.5 到第 1.8 节专门介绍 MATLAB 最常用的另五个交互界面:历史指令窗、当前目录浏览器、 工作空间浏览器、数组编辑器、M 文件编辑器。 鉴于实际应用中,帮助信息和求助技能的 重要性。本章专设第 1.9 节专门叙述 MATLAB 的帮助体系和求助方法。 作者建议:不管读者此前是否使用过 MATLAB,都不要忽略本章。 1.1 MATLAB 的安装和工具包选择 MATLAB 只有在适当的外部环境中才能正常运行。因此,恰当地配置外部系统是保证 MATLAB 运行良好的先决条件。MATLAB 本身可适应于许多机种和系统,如 PC 机 和 Unix 工作站等。但本节只针对我国使用最广的 PC 机系统给予介绍。 对 PC 机用户来说,常常需要自己安装 MATLAB。MATLAB R2006a (即旧编号 MATLAB7.2)版要求 Win2000 或 WinXP 平台。下面介绍从光盘上安装 MATLAB 的方法。 (1) 一般说来,当 MATLAB 光盘插入光驱后,会自启动“安装向导”。假如自启动没有 实现,那么可以在<我的电脑>或<资源管理器>中双击 setup.exe 应用程序,使“安装 向导”启动。安装过程中出现的所有界面都是标准的,用户只要按照屏幕提示操作, 如输入用户名、单位名、口令等就行。 (2) 在安装 MATLAB.R2006a 时,会出现一个界面,该界面上有两个选项:Typical 和 Custom。假如你不熟悉 MATLAB,或假如你机器的硬盘的自由空间远大于 3G,或 假如你需要用到光盘上 MATLAB 的所有功能及工具包,那么你就点选“Typical”。 否则,点选“Custom”。 (3) 在点选“Custom”后,会引出如图 1.1-1 的界面。你可以根据需要,在“Select products to install”栏中勾选相应的组件。注意:MATLAB 软件光盘总包含很多工具包,它 们有的是通用的,有的则专业性很强。对一般用户来说,完全不必采取全部安装, 而应根据需要有所选择。否则将占据很多硬盘空间。表 1.1-1 对各组件的描述供用户 选择时参考。 1
组 件 名 称 1.必须选择的本原性组件 MATLAB 2.最常选的通用性工具包组件 Symbolic Math Toolbox Extended Symbolic Math Toolbox 3.其他通用性工具包组件 Simulink Optimization Toolbox Matlab Compiler Matlab builder for Excel 4.常用专业性工具包组件 Control System Toolbox Signal Processing Toolbox Spline Toolbox Statistics Toolbox 5.其他专业性工具包组件(举例) Stateflow 图 1.1-1 MATLAB 组件选择界面 表 1.1-1 MATLAB 各组件的功用 功 用 这是最核心的部分。没有它就没有 MATLAB 环境。 有了它,就可以对各类数据(除符号类数据以外) 进行操作、运算和可视化。 符号类数据的操作和计算。 更丰富的符号计算函数和指令 不用编写程序,利用方块图实现建模和仿真;主要 用于研究微分和差分方程描写的非线性动态系统。 包含求函数零点、极值、规划等优化程序。 把 MATLAB 的 M 文件编译成独立应用程序。 与 MATLAB Compiler 配合使用,生成 Excel 插件。 MATLAB 涉及控制的工具包有 10 多个,而本栏工具 包是最基本的,是解决控制问题所必选的。至于其 他控制工具包则是用户根据需要选择的。 是 MATLAB 信号处理中的基本工具包。 内含样条和插值函数。 包含进行复杂统计分析所需的程序。 与 Simulink 配合使用,主要用于较大型、复杂的(离 散事件)动态系统的建模、分析、仿真。 2
System Identification Toolbox ...... 动态系统辨识。 1.2 1.2.1 Desktop 操作桌面的启动 MATLAB的启动 (1)方法一 当 MATLAB 安装到硬盘上以后,一般会在 Windows 桌面上自动生成 MATLAB 程序图 标。在这种情况下,只要直接点击那图标即可启动 MATLAB,打开如图 1.2-1 的 MATLAB 操作桌面(Desktop)。注意:本书作者建议用户优先采用启动“方法一”。 (2)方法二 假如 Windows 桌面上没有 MATLAB 图标,那么点击 matlab\ 文件夹下的快捷方式图标 。 (3)方法三 点击 matlab\bin\win32 文件夹中的 matlab.exe(它的图标是 ),也会自动创建类 似图 1.2-1 所示的 Desktop 操作桌面。唯一的区别是:采用这种方式创建的 MATLAB 工作环 境以 MATLAB 所在的根目录为当前目录。 1.2.2 Desktop操作桌面简介 MATLAB R2006a 版的 Desktop 操作桌面,是一个高度集成的 MATLAB 工作界面。其 默认形式,如图 1.2-1 所示。该桌面的上层铺放着三个最常用的界面:指令窗(Command Window)、当前目录(Current Directory)浏览器、历史指令(Command History)窗。在当 前目录窗的下面还铺放一个 MATLAB 内存工作空间(Workspace)浏览器。 3
 指令窗 图 1.2-1 Desktop 操作桌面的默认外貌 该窗是进行各种 MATLAB 操作的最主要窗口。在该窗内,可键入各种送给 MATLAB 运作的指令、函数、表达式;显示除图形外的所有运算结果;运行错误时, 给出相关的出错提示。  历史指令窗 该窗记录已经运作过的指令、函数、表达式,及它们运行的日期、时间。该窗中的 所有指令、文字都允许复制、重运行及用于产生 M 文件。  当前目录浏览器 在该浏览器中,展示着子目录、M 文件、MAT 文件和 MDL 文件等。对该界面上 的 M 文件,可直接进行复制、编辑和运行;界面上的 MAT 数据文件,可直接送入 MATLAB 工作内存。此外,对该界面上的子目录,可进行 Windows 平台的各种标准操 作。  工作空间浏览器 该浏览器默认地位于当前目录浏览器的后台。该窗口罗列出 MATLAB 工作空间中 所有的变量名、大小、字节数;在该窗中,可对变量进行观察、图示、编辑、提取和保 存。  捷径(Start)键 引出通往本 MATLAB 所包含的各种组件、模块库、图形用户界面、帮助分类目录、 演示算例等的捷径,以及向用户提供自建快捷操作的环境。 1.3 Command Window 运行入门 MATLAB 的使用方法和界面有多种形式。但最基本的,也是入门时首先要掌握的是: MATLAB 指令窗(Command Window)的基本表现形态和操作方式。本书作者相信,通过 4
本节的文字解释,读者将对 MATLAB 使用方法有一个良好的初始感受。 1.3.1 Command Window指令窗简介 MATLAB 指令窗默认地位于 MATLAB 桌面的右方(见图 1.2-1)。假如,用户希望得到 脱离操作桌面的几何独立指令窗,只要点击该指令窗右上角的 键,就可获得如图 1.3-1 所示的指令窗。 图 1.3-1 几何独立的指令窗 〖说明〗  图 1.3-1 指令窗表现了例 1.3-1 运行的情况。  若用户希望让独立指令窗嵌放回桌面,则只要点击 Command Window 右上角的 按钮, 或选中指令窗菜单 {Desktop:Dock Command Window} 便可。 1.3.2 最简单的计算器使用法 为易于学习,本节以算例方式叙述,并通过算例归纳一些 MATLAB 最基本的规则和语 法结构。建议读者,在深入学习之前,先读一读本节。 【例 1.3-1】求 12[  )]47(2   23 的算术运算结果。本例演示:最初步的指令输入形式 和必需的操作步骤。 (1)用键盘在 MATLAB 指令窗中输入以下内容 >> (12+2*(7-4))/3^2 (2)在上述表达式输入完成后,按 [Enter] 键,该指令被执行,并显示如下结果。 ans = 2 〖说明〗  本例在指令窗中实际运行的情况参见图 1.3-1。  指令行“头首”的“ >>”是“指令输入提示符”,它是自动生成的。本书在此后的输 入指令前将不再带提示符“ >>”。理由是:(A)为使本书简洁;(B)本书用 MATLAB 的 M-book 写成,而在 M-book 中运行的指令前是没有提示符的。 5
 MATLAB 的运算符(如+、- 等)都是各种计算程序中常见的习惯符号。  一条指令输入结束后,必须按 [Enter] 键,那指令才被执行。  由于本例输入指令是“不含赋值号的表达式”,所以计算结果被赋给 MATLAB 的一个 默认变量“ans”。它是英文“answer”的缩写。 【例 1.3-2】“续行输入”法。本例演示:或由于指令太长,或出于某种需要,输入指令行必 须多行书写时,该如何处理。 S=1-1/2+1/3-1/4+ ... 1/5-1/6+1/7-1/8 S = 0.6345 〖说明〗  MATLAB 用 3 个或 3 个以上的连续黑点表示“续行”,即表示下一行是上一行的继续。  本例指令中包含“赋值号”,因此表达式的计算结果被赋给了变量 S。  指令执行后,变量 S 被保存在 MATLAB 的工作空间(Workspace)中,以备后用。如 果用户不用 clear 指令清除它,或对它重新赋值,那么该变量会一直保存在工作空间中, 直到本 MATLAB 指令窗被关闭为止。 1.3.3 数值、变量和表达式 前节算例只是表演了“计算器”功能,那仅是 MATLAB 全部功能中小小一角。为深入 学习 MATLAB,有必要系统介绍一些基本规定。本节先介绍关于变量的若干规定。 一 数值的记述 -99 MATLAB 的数值采用习惯的十进制表示,可以带小数点或负号。以下记述都合法。 3 在采用 IEEE 浮点算法的计算机上,数值通常采用“占用 64 位内存的双精度”表示。 其相对精度是 eps (MATLAB 的一个预定义变量),大约保持有效数字 16 位。数值范围大 4.5e33 0.001 1.3e-3 9.456 致从 308 10 到 308 10 。 二 变量命名规则  变量名、函数名是对字母大小写敏感的。如变量 myvar 和 MyVar 表示两个不同的变量。 sin 是 MATLAB 定义的正弦函数名,但 SIN,Sin 等都不是。  变量名的第一个字符必须是英文字母,最多可包含 63 个字符(英文、数字和下连符)。 如 myvar201 是合法的变量名。  变量名中不得包含空格、标点、运算符,但可以包含下连符。如变量名 my_var_201 是 合法的,且读起来更方便。而 my,var201 由于逗号的分隔,表示的就不是一个变量名。 6
三 MATLAB 默认的预定义变量 在 MATLAB 中有一些所谓的预定义变量(Predefined Variable ),见表 1.3-1。每当 MATLAB 启动,这些变量就被产生。这些变量都有特殊含义和用途。建议:用户在编写指 令和程序时,应尽可能不对表 1.3-1 所列预定义变量名重新赋值,以免产生混淆。 预定义变量 表 1.3-1 MATLAB 中最常用的预定义变量 含 义 预定义变量 含 义 ans eps 计算结果的默认变量名 机器零阈值 Inf 或 inf 无穷大,如 1/0 i 或 j 1 j 虚单元 i pi 圆周率  NaN 或 nan 不是一个数(Not a Number), nargin nargout realmax realmin 如 0/0,  / 函数输入宗量数目 函数输出宗量数目 最大正实数 最小正实数 〖说明〗  假如用户对表中任何一个预定义变量中进行赋值,则那个变量的默认值将被用户新赋的 值“临时”覆盖。所谓“临时”是指:假如使用 clear 指令清除 MATLAB 内存中的变 量,或 MATLAB 指令窗被关闭后重新启动,那么所有的预定义变量将被重置为默认值, 不管这些预定义变量曾被用户赋过什么值。  在遵循 IEEE 算法规则的机器上,被 0 除是允许的。它不会导致程序执行的中断,只 是在给出警告信息的同时,用一个特殊名称(如 Inf,NaN)记述。这个特殊名称将在 以后的计算中以合理的形式发挥作用。 【例 1.3-3】运用以下指令,以便初步了解预定义变量。本例演示:预定义变量已经存在的 事实;若干预定义变量的数量级概念。 format long realmax ans = 1.797693134862316e+308 realmin ans = 2.225073858507201e-308 eps ans = 2.220446049250313e-016 pi ans = 3.14159265358979 7
四 运算符和表达式 (1)经典教科书上的算术运算符在 MATLAB 中的表达方式,见表 1.3-2。 加 减 乘 除 幂 圆括号 表 1.3-2 MATLAB 表达式的基本运算符 数学表达式 矩阵运算符 数组运算符 ba  ba  ba  ba  ba ( ) a + b a - b a * b a + b a - b a .* b a / b 或 b \ a a ./ b 或 b .\ a a ^ b ( ) a .^ b ( ) 〖说明〗  因为 MATLAB 面向复数设计,其所有运算定义在复数域上。所以对于方根问题,运算 只返还一个“主解”。要得复数的全部方根,必须专门编写程序(见例 1.3-6)。  因为 MATLAB 面向矩阵/数组设计,标量被看作 )11(  的矩阵/数组。  数组运算的“乘、除、幂”规则与相应矩阵运算根本不同。前者的算符比后者多一个“小 黑点”。(参见例 1.3-9,例 1.3-10。更详细说明请看第 3 章)  MATLAB 用左斜杠或右斜杠分别表示“左除”或“右除”运算。对标量而言,“左除” 和“右除”的作用结果相同。但对矩阵来说,“左除”和“右除”将产生不同的结果。 (2)MATLAB 书写表达式的规则与“手写算式”几乎完全相同。  表达式由变量名、运算符和函数名组成。  表达式将按与常规相同的优先级自左至右执行运算。  优先级的规定是:指数运算级别最高,乘除运算次之,加减运算级别最低。  括号可以改变运算的次序。  书写表达式时,赋值符“=”和运算符两侧允许有空格,以增加可读性。 五 面向复数设计的运算——MATLAB 特点之一 MATLAB 的所有运算都是定义在复数域上的。这样设计的好处是:在进行运算时,不 必像其他程序语言那样把实部、虚部分开处理。为描述复数,虚数单位用预定义变量 i 或 j 表示。 复数 bi  直角坐标表示和极坐标表示之间转换的 MATLAB 指令如下。 a ire  z 给出复数 z 的实部 给出复数 z 的虚部 real(z) imag(z) a  b  r cos sinr 。 。 abs(z) 给出复数 z 的模 a  。 2 b 2 angle(z) 以弧度为单位给出复数 z 的幅角 arctan 。 b a 8
分享到:
收藏