标题：MATLAB2008全程指南
图书信息
作　者：董辰辉 彭雪峰 等编著 
出 版 社： 电子工业出版社
出版时间： 2009-3-1
页　数：576页
开　本： 16开
ISBN 9787121080197
分类： 图书[1]>> 计算机/电子技术>>MATLAB
定价：￥65.00元（含光盘1张）
宣传语
1、 知识全面，实例精彩，指导性强
基础知识、开发进阶、行业应用、程序接口，循序渐进地全面讲解MATLAB的方方面面。
2、 用实例说话，讲解详细，通俗易懂
全书包括300多个实例，理论联系实际，语言简洁易懂，知识点分类明确。
内 容 简 介
MATLAB是由MathWorks公司推出的用于数值计算、图像处理、信号处理、自动控制和数据分析等诸多方面的科学计算软件。本书由入门到提高系统地介绍了MATLAB及其工具箱的基本功能与使用，包括MATLAB基础知识、数值计算、符号计算、编程基础、文件操作、数据可视化、图像处理、优化工具箱、信号处理、Simulink仿真、GUI设计、MATLAB与Microsoft Office和混合编程等功能的使用方法。在配套光盘中附有部分实例的源文件，以方便读者理解和掌握相关知识。
全书包含了378个计算实例，所有的实例都经过上机调试，可靠完整。读者可以在自己的MATLAB环境中准确地重现本书所提供的实例结果。
本书既可以作为理工科院校研究生、本科生系统学习的教材，又可以作为广大科技工作者对MATLAB软件入门到提高的自学用书和使用手册。
前 言
1984年，Cleve Moler和John Little成立了MathWorks公司，发行了MATLAB第1版（DOS版本1.0），正式把MATLAB推向市场。MATLAB的第一个商业化的版本是同年推出的是3.0的DOS版本。其后MathWorks公司继续进行MATLAB的研究和开发，逐步将其发展成为一个集数值处理、图形处理、图像处理、符号计算、文字处理、数学建模、实时控制、动态仿真、信号处理为一体的数学应用软件，并且成为目前世界上使用最广泛的科学计算软件之一。
2006年3月，MathWorks公司正式发布了MATLABR2006a（即MATLAB7.2版）。从这一个版本开始，MathWorks公司将每年进行两次产品发布，时间分别在每年的3月和9月，而且，每一次发布都会包含所有的产品模块，如产品的newfeature、bugfixes和新产品模块的推出。2008年3月1日，MATLABR2008a发布，即MATLAB7.6版和Simulink7.1版。在这个版本中包括了以下重要更新：
（1）完全实现面向对象编程。
在MATLAB的早期版本里面，也有class的概念，不过功能不强，过程烦琐。而新的设计写出来的类和在python里面写的看起来差不多，吸收了Python和C#的优点，除了支持封装（encapsulation），继承（inheritance）和多态（polymorphism）这些基本特性以外，还支持了一些新兴的特性，包括属性（property），事件（event）和静态方法（static method）。
（2）支持Handle类型——用另外一种说法，就是支持函数调用传引用。
以前MATLAB传递参数只有一种方法，copy on write。就是说，当你传一个东西进去，如果它要发生改变，那么，这个东西会整个copy一份，然后修改会在副本上生效。这使得实现动态数据结构变得非常困难。因此，传统上MATLAB擅长于以矩阵为基础的算法，但是对于以经典动态数据结构为基础的算法，比如动态列表，哈希表，搜索树，图等，就力不从心了。这个新版本终于引入了对引用的支持，这将使MATLAB实现经典数据结构和算法变得前所未有的轻松。现在，数值和统计算法与经典算法越来越多地合流，很多应用都需要同时使用两方面的算法，MATLAB的这个变化正好适应了这种需求。
（3）引入了名空间的管理。
以前，MATLAB所有的函数都在同一个global的名空间下面。比如两个工具包里面出现了同名函数，解决起来很麻烦。比如现在有两个算法叫LDA，一个是Latent Dirichlet Allocation，一个是Linear Discriminant Analysis，在一个应用中需要同时用到两个算法，而写这两个算法的人各自把它们命名为lda.m，那么问题就出来了。一种naive的方法是改名字，不过会直接破坏掉那些toolbox里面对那个函数的依赖。而这个版本，它借鉴其他高级语言的经验，终于引入了namespace，给这个问题一个很好的解决。
从这些特点看来，MATLAB这个版本的重要改变，就是全面吸收其他高级语言的特性，从一个数值运算语言开始迈向一个以数值计算为强项的通用语言，以应对复杂或者更大规模应用的需要。
本书内容
本书从使用者的角度出发，通过融经验技巧于一体的典型事例讲解，由入门到提高系统地介绍了MATLAB及其工具箱的基本功能与使用，包括MATLAB基础知识、数值计算、符号计算、编程基础、文件操作、数据可视化、图像处理、优化工具箱、信号处理、Simulink仿真、GUI设计、MATLAB与MS OFFICE和混合编程等功能的使用方法。在配套光盘中附有部分实例的源文件，以方便读者理解和掌握相关知识。以下是本书附赠资源介绍
1．源文件的运行环境
操作系统：Windows vista/Windows XP/Windows 2000
开发工具：MATLAB R2008a
2．源文件文件夹
包括本书涉及的所有源文件，读者可以在学习的过程中，直接将其复制到MATLAB的当前工作目录下，提高学习效率。
章 节 例题数量 章 节 例题数量
第1章 MATLAB操作基础 0 第8章 MATLAB在数字图像处理中的应用 29
第2章 数据结构与类型 55 第9章 MATLAB优化问题应用 23
第3章 数值计算及数据分析 50 第10章 MATLAB在信号处理中的应用 18
第4章 符号运算 52 第11章 Simulink仿真 10
第5章 MATLAB编程基础 56 第12章 图形用户界面GUI设计 3
第6章 MATLAB文件操作 39 第13章 MATLAB与Office 5
第7章 数据可视化 29 第14章 MATLAB应用程序接口 8
联系我们
全书第1、2、3、4章由彭雪峰负责编写，第5、6、13章由王文鹏负责编写，第7、8、12章由刘家佳负责编写，第9、10、11、14章由董辰辉负责编写。
由于编者水平及使用经验有限，不妥之处在所难免，望各位读者不吝赐教。
编 者 
2008年12月
图 书 目 录
第1篇 基础知识
第1章 MATLAB操作基础 2
1.1 MATLAB概述 3
1.2 MATLAB发展历史 3
1.3 MATLAB主要功能 4
1.4 MATLAB安装 5
1.5 MATLAB的启动和退出 7
1.5.1 MATLAB启动 7
1.5.2 MATLAB的退出 8
1.6 MATLAB操作界面 8
1.6.1 菜单栏 8
1.6.2 工具栏 13
1.6.3 命令窗口 13
1.6.4 工作空间窗口 15
1.6.5 当前目录窗口 15
1.6.6 历史记录窗口 17
1.7 MATLAB联机帮助系统 18
1.7.1 联机帮助系统 18
1.7.2 命令窗口查询帮助 19
第2章 数据结构与类型 22
2.1 常量与变量 23
2.1.1 常量 23
2.1.2 变量 24
2.2 数组与矩阵 25
2.2.1 数组 25
2.2.2 矩阵 31
2.3 逻辑类型与关系运算 36
2.3.1 逻辑数据类型 37
2.3.2 逻辑运算 38
2.3.3 关系运算 39
2.3.4 运算符优先级 41
2.4 字符串 41
2.4.1 创建字符串 41
2.4.2 类型转换 43
2.4.3 比较字符串 45
2.4.4 字符分类 46
2.4.5 查找与替换 46
2.5 结构数组 47
2.5.1 结构数组的创建 47
2.5.2 结构数组中的数据获取 49
2.5.3 结构数组中的操作 50
2.5.4 结构数组的大小 52
2.5.5 结构数组的嵌套 53
2.6 元胞数组 54
2.6.1 元胞数组的创建 54
2.6.2 元胞数组中的数据获得 55
2.6.3 元胞数组的删除与重塑 57
2.6.4 元胞数组中的操作函数 59
2.6.5 元胞数组的嵌套 61
2.6.6 元胞数组与数值数组间的转化 62
第3章 数值计算及数据分析 64
3.1 因式分解 65
3.1.1 行列式、逆和秩 65
3.1.2 LU因式分解 67
3.1.3 QR因式分解 69
3.1.4 范数 70
3.2 矩阵特征值和奇异值 72
3.2.1 特征值和特征向量的求取 72
3.2.2 奇异值分解 74
3.3 数据分析和统计 76
3.3.1 基本的数据分析函数 76
3.3.2 协方差和相关系数函数 82
3.4 数值积分 83
3.4.1 一元函数的数值积分 83
3.4.2 二重积分的数值计算 85
3.4.3 三重积分的数值计算 85
3.5 插值 86
3.5.1 一维数据插值 86
3.5.2 二维数据插值 88
3.5.3 多维插值 89
3.6 多项式曲线拟合 90
3.6.1 最小二乘原理及其曲线拟合算法 90
3.6.2 曲线拟合的实现 91
3.7 傅里叶分析 92
3.7.1 傅里叶变换 92
3.7.2 快速傅里叶变换 93
3.8 微分方程 96
3.8.1 常微分方程 96
3.8.2 偏微分方程 99
3.9 稀疏矩阵 103
3.9.1 稀疏矩阵的存储方式 103
3.9.2 稀疏矩阵的创建 103
3.9.3 稀疏矩阵的函数处理 106
3.9.4 稀疏矩阵的交换与重新排序 108
第4章 符号运算 110
4.1 符号变量、表达式及符号方程 111
4.1.1 使用sym函数定义符号变量及表达式 111
4.1.2 使用syms函数定义符号变量及表达式 112
4.1.3 符号方程的生成 112
4.2 符号变量的基本操作 112
4.2.1 findsym函数 113
4.2.2 任意精度确定的符号表达式 113
4.2.3 数值型与符号型变量的转换 114
4.3 符号矩阵的生成和运算 115
4.3.1 符号矩阵的生成 116
4.3.2 符号矩阵及符号数组的运算 117
4.4 符号微积分 122
4.4.1 符号求极限 122
4.4.2 符号求导与微分 123
4.4.3 符号积分 124
4.4.4 级数求和 125
4.4.5 taylor级数 125
4.5 符号函数图形表示 126
4.5.1 绘制符号函数的图形 126
4.5.2 三维参量曲线图 127
4.5.3 极坐标图形 128
4.5.4 符号函数的三维网格图 128
4.5.5 绘制符号函数等高线图 129
4.5.6 不同颜色填充等高线图 130
4.5.7 曲面网格图与等高线图的混合图 131
4.5.8 三维彩色曲面图 132
4.5.9 曲面图与等高线图的混合图 133
4.5.10 绘制函数图形 134
4.6 符号代数方程的求解 135
4.6.1 求代数方程符号解 135
4.6.2 求代数方程组符号解 136
4.6.3 求微分方程符号解 138
4.6.4 求微分方程组符号解 139
4.7 符号表达式的基本运算 140
4.7.1 符号表达式的提取分子、分母运算 140
4.7.2 符号表达式的基本代数运算 141
4.7.3 符号表达式的高级运算 141
4.7.4 符号数值函数的创建 147
第5章 MATLAB编程基础 148
5.1 M文件 149
5.1.1 M文件编辑器 149
5.1.2 M文件的基本内容 150
5.1.3 脚本式M文件 152
5.1.4 函数式M文件 153
5.2 函数流程控制 154
5.2.1 顺序结构 154
5.2.2 if…else…end 155
5.2.3 switch…case…end 158
5.2.4 for循环 159
5.2.5 while循环 162
5.2.6 人机交互命令 163
5.3 函数的类型 168
5.3.1 主函数 168
5.3.2 子函数 168
5.3.3 私有函数 170
5.3.4 嵌套函数 171
5.3.5 重载函数 177
5.3.6 匿名函数 177
5.4 函数的变量和参数 183
5.4.1 变量类型 183
5.4.2 变量的输入输出规则 184
5.4.3 向嵌套函数输入可选参数 187
5.4.4 传送特定类型的参数 189
5.5 函数句柄 191
5.5.1 函数句柄的创建 191
5.5.2 函数句柄的调用 192
5.5.3 函数句柄的操作 192
5.6 内存的使用 194
5.6.1 内存管理函数 194
5.6.2 高效使用内存的策略 194
5.6.3 解决“Out of Memory”错误 196
5.7 程序调试和优化 196
5.7.1 使用Debugger窗口进行调试 197
5.7.2 在命令窗口中进行调试 202
5.7.3 Profile性能检测 205
5.8 错误处理 209
5.8.1 使用 try-catch语句捕捉错误 209
5.8.2 处理错误和从错误中恢复 209
5.8.3 警告 212
5.9 程序开发的一些建议 215
第2篇 开发进阶
第6章 MATLAB文件操作 218
6.1 MATLAB支持的文件格式 219
6.2 使用导入向导来导入文本数据 219
6.3 使用导入函数来导入文本数据 222
6.3.1 导入数值文本数据 223
6.3.2 导入有分隔符的ASCII数据文件 224
6.3.3 导入带有文本头的文件数据 225
6.3.4 导入字母数值混合的数据 225
6.4 按照ASCII码格式导出数据 226
6.4.1 将数据导出成带有分隔符的ASCII
6.4.1 码文件 227
6.4.2 使用diary命令来导出数据 228
6.4.3 用csvwrite函数导出矩阵数据 229
6.5 对mat文件的操作 229
6.5.1 使用向导来导入mat文件中的数据 229
6.5.2 使用函数或命令来预览和导入mat文件
6.4.1 中的数据 230
6.6 将Workspace中数据导出为mat文件 231
6.6.1 通过菜单将Workspace中数据导出
6.4.1 为mat文件 232
6.6.2 通过save命令导出Workspace中
6.4.1 数据为mat文件 232
6.7 对图像文件的操作 234
6.7.1 使用向导导入图像文件 234
6.7.2 读入与导出图像文件数据 234
6.8 对音频和视频文件的操作 235
6.8.1 利用向导打开音频或视频文件 235
6.8.2 获取音频和视频文件的文件头信息 236
6.8.3 音频视频文件的读入与导出 236
6.9 对表文件的操作 239
6.9.1 对Excel文档的操作 239
6.9.2 对Lotus 123数据表的操作 241
6.10 使用低端I/O函数来操作文件 242
6.10.1 文件的打开和关闭 242
6.10.2 二进制数据的读取 243
6.10.3 二进制数据的写入 245
6.10.4 逐行读取文本文件 245
6.10.5 格式化读取ASCII码数据 246
6.10.6 格式化写入文本文件 247
6.10.7 控制文件指针 248
第7章 数据可视化 251
7.1 二维图形 252
7.1.1 基本绘图函数 252
7.1.2 特殊二维图形 257
7.2 三维图形 266
7.2.1 绘制三维曲线图 266
7.2.2 绘制三维曲面图 267
7.2.3 特殊三维图形 269
7.3 图形注释 271
7.3.1 图形注释方法 271
7.3.2 图题的标注 272
7.3.3 添加坐标轴标注 273
7.3.4 文本标注和交互式文本标注 274
7.3.5 图例的添加 275
7.3.6 坐标网格的添加 276
7.4 三维图形的高级控制 277
7.4.1 视点控制 277
7.4.2 颜色的使用 278
7.4.3 光照控制 280
第3篇 行业应用
第8章 MATLAB在数字图像处理中的应用 282
8.1 数字图像处理学 283
8.1.1 数字图像处理内容 283
8.1.2 数字图像处理应用 283
8.2 MATLAB图像 285
8.2.1 MATLAB图像类型 285
8.2.2 图像格式 286
8.3 图像文件的操作 287
8.3.1 查询图像文件的信息 287
8.3.2 图像文件的读取 288
8.3.3 图像文件的显示 289
8.3.4 图像文件的存储 291
8.3.5 图像格式的转换 291
8.4 图像的几何运算 295
8.4.1 图像的平移 295
8.4.2 图像的镜像变换 297
8.4.3 图像缩放 298
8.4.4 图像的旋转 299
8.4.5 图像的剪切 301
8.5 图像的正交变换 302
8.5.1 傅里叶变换 302
8.5.2 离散余弦变换 309
8.5.3 沃尔什-哈达玛变换（WHT） 312
8.5.4 Radon变换 317
8.6 MATLAB图像增强 319
8.6.1 像素值及其统计特性 319
8.6.2 对比度增强 322
8.6.3 直方图均衡化 324
8.6.4 空域滤波增强 326
8.6.5 频域增强 331
第9章 MATLAB优化问题应用 334
9.1 MATLAB求解器 336
9.2 求解极小值 336
9.2.1 标量最小值优化 337
9.2.2 无约束最小值优化 340
9.2.3 线性规划 345
9.2.4 二次规划 347
9.2.5 约束最小值优化 350
9.3 多目标优化 354
9.3.1 fgoalattain函数 355
9.3.2 fminimax函数 358
9.4 方程组求解 360
9.4.1 fzero函数 360
9.4.2 fsolve函数 362
9.5 最小二乘及数据拟合 365
9.5.1 lsqnonneg函数 365
9.5.2 lsqlin函数 367
9.5.3 lsqnonlin函数 369
9.5.4 lsqcurvefit函数 371
9.6 直接搜索法 373
9.7 模拟退火算法 374
9.7.1 模拟退火算法简介 374
9.7.2 模拟退火算法应用实例 376
9.7.3 关于验证计算 378
9.8 遗传算法 379
9.8.1 遗传算法简介 379
9.8.2 遗传算法应用实例 382
9.9 optimtool简介 384
第10章 MATLAB在信号处理中的应用 389
10.1 信号处理基本理论与MATLAB实现 390
10.1.1 信号处理基本理论 390
10.1.2 信号的产生 391
10.1.3 离散信号的基本运算 394
10.2 离散信号的数学变换和MATLAB
10.2 实现 394
10.2.1 Z变换分析 394
10.2.2 Z变换MATLAB实现 395
10.2.3 Fourier变换分析 397
10.2.4 离散Fourier变换MATLAB实现 397
10.3 数字滤波器的结构 399
10.3.1 数字滤波器 399
10.3.2 IIR数字滤波器的结构 400
10.3.3 FIR数字滤波器的结构 402
10.4 IIR滤波器的MATLAB实现 403
10.4.1 IIR滤波器经典设计 404
10.4.2 IIR滤波器的直接设计法 413
10.4.3 广义巴特沃思的IIR滤波器设计 414
10.5 FIR滤波器的MATLAB实现 416
10.5.1 FIR滤波器设计 416
10.5.2 fir1函数 417
10.5.3 fir2函数 419
第11章 Simulink仿真 421
11.1 Simulink简介 422
11.1.1 Simulink功能与特点 422
11.1.2 Simulink的安装 424
11.1.3 Simulink 7.1新特点 424
11.2 Simulink基础 425
11.2.1 Simulink模型是什么 425
11.2.2 Simulink启动与窗口介绍 425
11.2.3 Simulink模块操作 427
11.2.4 Simulink信号线操作 431
11.2.5 Simulink对模型的注释 432
11.2.6 Simulink常用的模型库 434
11.2.7 Simulink仿真配置 436
11.3 Simulink 动态系统仿真 445
11.3.1 简单系统的仿真分析 445
11.3.2 离散系统的仿真分析 448
11.3.3 连续系统的仿真分析 450
11.4 Simulink模型中的子系统 454
11.4.1 子系统的建立 454
11.4.2 子系统的封装 458
11.5 Simulink S-函数 464
11.5.1 什么是S-函数 464
11.5.2 S-函数的作用和原理 464
11.5.3 用M文件表述的S-函数 466
11.5.4 用M文件创建S-函数实例 470
第12章 图形用户界面GUI设计 473
12.1 句柄图形对象 474
12.1.1 图形对象 474
12.1.2 图形对象句柄 474
12.1.3 图形对象属性的获取和设置 476
12.2 GUI的基本知识 479
12.2.1 启动GUI 479
12.2.2 布局（Layout）编辑器 479
12.2.3 运行GUI 480
12.3 创建GUI 480
12.3.1 GUI窗口布局 480
12.3.2 菜单的添加 482
12.3.3 控件 487
12.4 GUI编程 492
12.4.1 GUI的M文件 492
12.4.2 GUI编程举例 495
第4篇 程序接口
第13章 MATLAB与Office 500
13.1 MATLAB与Word 501
13.1.1 Notebook的安装 501
13.1.2 Notebook的启用 501
13.1.3 Notebook功能菜单 503
13.1.4 Notebook的使用 511
13.1.5 输出的控制 515
13.2 MATLAB与Excel 516
13.2.1 Excel Link安装 516
13.2.2 Excel Link函数 520
13.2.3 Excel Link的应用 520
第14章 MATLAB应用程序接口 525
14.1 MATLAB应用程序接口介绍 526
14.2 MATLAB调用C/C++ 527
14.2.1 MATLAB MEX文件 527
14.2.2 C-MEX文件的使用 531
14.3 C/C++调用MATLAB引擎 535
14.3.1 MATLAB计算引擎概述 535
14.3.2 MATLAB计算引擎库函数 536
14.3.3 C/C++调用MATLAB引擎 538
14.4 MATLAB编译器 542
14.4.1 MATLAB编译器的安装和设置 543
14.4.2 MATLAB编译器的使用 544
14.4.3 独立应用程序 546
实例目录
第1章 MATLAB操作基础 2
第2章 数据结构与类型 22
【例2-1】Inf和NaN的运算实例。 23
【例2-2】最小复数单位的使用。 24
【例2-3】一维数组的寻址与赋值。 26
【例2-4】直接输入二维数组。 27
【例2-5】用指令输入二维数组。 27
【例2-6】二维数组的寻址与赋值。 28
【例2-7】多维数组的创建。 29
【例2-8】用MATLAB函数生成多维数组。 30
【例2-9】用cat函数生成多维数组。 30
【例2-10】cat函数嵌套。 31
【例2-11】键盘输入简单数值矩阵。 32
【例2-12】利用表达式建立一个复数矩阵。 32
【例2-13】利用reshape函数建立数值矩阵。 32
【例2-14】利用diag函数建立对角矩阵。 33
【例2-15】利用M文件创立新矩阵。 33
【例2-16】矩阵中冒号的使用。 34
【例2-17】提取矩阵的子矩阵。 34
【例2-18】矩阵的变换。 35
【例2-19】矩阵部分元素的提取。 36
【例2-20】利用函数建立逻辑类型数组。 37
【例2-21】isnumeric函数使用实例。 38
【例2-22】与、或、非使用实例。 39
【例2-23】函数any和all的使用实例。 39
【例2-24】关系运算实例。 40
【例2-25】复杂关系运算。 40
【例2-26】字符串的合并与提取。 42
【例2-27】直接输入建立二维字符串（数组）。 42
【例2-28】利用“str2mat”函数建立二维字
【例2-28】符串（数组）。 42
【例2-29】“num2str”和“str2num”函数的
【例2-28】用法实例。 43
【例2-30】数制转换函数实例。 44
【例2-31】strcmp和strncmp函数简单应用比较。 45
【例2-32】应用“==”比较字符串。 45
【例2-33】字符串的分类。 46
【例2-34】strrep函数的应用。 46
【例2-35】strrep函数的应用。 46
【例2-36】findstr函数的应用。 47
【例2-37】直接赋值法创建结构数组。 47
【例2-38】使用struct函数创建结构数组。 48
【例2-39】数据的获取。 49
【例2-40】结构字段数据的访问。 50
【例2-41】对结构字段数据进行运算。 51
【例2-42】结构操作函数的使用实例1。 52
【例2-43】结构数组大小。 52
【例2-44】创建元胞数组。 54
【例2-45】cell函数创建元胞数组。 55
【例2-46】元胞数组中数据的获得。 56
【例2-47】元胞中具体元素的访问。 56
【例2-48】使用元胞的下标创建新的元胞数组。 57
【例2-49】元胞数组的删除。 57
【例2-50】元胞数组的重塑。 58
【例2-51】cellfun函数实例。 59
【例2-52】显示元胞数组内容函数celldisp
【例2-28】和cellplot使用实例。 60
【例2-53】元胞数组嵌套实例。 61
【例2-54】元胞数组转化为数值数组。 62
【例2-55】数值数组转化为元胞数组。 62
第3章 数值计算及数据分析 64
【例3-1】求矩阵的行列式、逆和秩。 65
【例3-2】矩阵A的LU分解实例。 68
【例3-3】矩阵A的LU分解实例。 68
【例3-4】QR分解实例。 69
【例3-5】QR分解实例。 70
【例3-6】向量范数的求解。 71
【例3-7】矩阵范数的求解。 72
【例3-8】求矩阵 的特征值和
【例3-8】特征向量。 73
【例3-9】求矩阵 的特征值和
【例3-9】特征向量。 73
【例3-10】用求特征值的方法，求解方程
【例2-28】 。 74
【例3-11】奇异值分解实例。 75
【例3-12】奇异值分解实例。 75
【例3-13】cumprod函数应用示例。 77
【例3-14】cumsum函数应用示例。 77
【例3-15】cumtrapz函数应用示例。 78
【例3-16】max函数应用示例。 78
【例3-17】mean函数应用示例。 79
【例3-18】median函数应用示例。 79
【例3-19】prod函数应用示例。 80
【例3-20】sort函数应用示例。 80
【例3-21】std函数应用示例。 81
【例3-22】sum函数应用示例。 82
【例3-23】cov函数应用示例。 82
【例3-24】随机生成一组数据，考察第四列和
【例2-28】其他列的相关性。 83
【例3-25】应用quad函数求数值积分。 83
【例3-26】应用trapz函数求数值积分。 84
【例3-27】积分 的精确值是2，
【例2-28】采用梯形积分法计算其近似值。 84
【例3-28】应用dblquad函数求重积分。 85
【例3-29】用triplequad函数求下面三重积分。 86
【例3-30】一维插值函数应用与比较。 87
【例3-31】三次样条插值。 87
【例3-32】二维插值函数应用与比较。 88
【例3-33】三维插值示例。 90
【例3-34】曲线拟合的实现。 91
【例3-35】三次多项式拟合。 92
【例3-36】求函数 的傅里叶变换
【例2-28】及其逆变换。 93
【例3-37】产生一个正弦衰减曲线，进行快速傅里叶
【例2-28】变换，并画出幅值（amplitude）图、
【例2-28】相位（phase）图、实部（real）图和
【例2-28】虚部（image）图。 95
【例3-38】设有初值问题。 97
【例3-39】已知一个线性系统的微分方程为。 97
【例3-40】求解L型薄膜的方程 ， 为
【例2-28】Dirichlet边界条件 。最后绘图
【例2-28】显示结果。 100
【例3-41】求解热传导方程。 101
【例3-42】求解波动方程。 102
【例3-43】一般矩阵与稀疏矩阵的转换。 103
【例3-44】稀疏矩阵的创建。 104
【例3-45】稀疏矩阵的创建。 105
【例3-46】稀疏矩阵的创建。 105
【例3-47】稀疏矩阵的组合。 107
【例3-48】子矩阵的赋值。 107
【例3-49】稀疏矩阵S的交换。 108
【例3-50】对矩阵A，先用colperm函数获取一个
【例2-28】交换矢量p，然后根据矢量p对矩阵A
【例2-28】的列按照非零元素的个数升序排序。 109
第4章 符号运算 110
【例4-1】sym函数的使用方法。 111
【例4-2】使用sym函数定义符号表达式
【例4-2】 。 111
【例4-3】使用syms函数定义字符变量和数组。 112
【例4-4】使用sym函数生成符号方程。 112
【例4-5】使用findsym函数寻找符号表达式中的
【例4-2】符号变量。 113
【例4-6】使用digits函数设置数值精度。 113
【例4-7】使用vpa函数进行可控精度计算。 114
【例4-8】使用sym函数进行数值型与符号型
【例4-8】变量的转换。 114
【例4-9】使用sym函数直接生成符号矩阵。 116
【例4-10】用生成子矩阵的方法生成符号矩阵。 116
【例4-11】使用sym函数将数值矩阵转换为
【例4-11】符号矩阵。 116
【例4-12】符号矩阵的四则运算。 118
【例4-13】符号数组的四则运算。 119
【例4-14】矩阵和数组的逆运算。 120
【例4-15】矩阵和数组的幂计算。 120
【例4-16】符号矩阵的秩。 121
【例4-17】符号矩阵的逆和行列式运算。 122
【例4-18】符号表达式求极限实例。 123
【例4-19】求符号表达式的微分实例。 123
【例4-20】计算符号积分实例。 124
【例4-21】计算符号的级数求和。 125
【例4-22】taylor级数图像与原函数比较。 126
【例4-23】使用ezplot函数绘制符号函数的图形。 127
【例4-24】绘制三维参量曲线。 128
【例4-25】绘制函数1 + cos(t)在区间[0，2n]上的
【例2-28】极坐标图。 128
【例4-26】绘制符号函数的三维网格图。 129
【例4-27】绘制符号函数的等高线图。 130
【例4-28】绘制符号函数的不同颜色填充
【例2-28】等高线图。 131
【例4-29】绘制函数的网格图形及其
【例2-28】等高线图。 132
【例4-30】绘制函数的三维彩色曲面图。 133
【例4-31】绘制如下函数的曲面图与等高线图的
【例2-28】混合图。 133
【例4-32】使用fplot函数绘制不同的图形。 135
【例4-33】求解方程组u^2-v^2 = a^2, u + v = 1
【例2-28】a^2-2*a = 3。 137
【例4-34】通过矩阵除法来求解线性方程组。 137
【例4-35】dsolve函数的使用实例。 138
【例4-36】非线性方程返回多个结果的实例。 139
【例4-37】求解具有两个初始条件y(0)=1和Dy(0)=0
【例2-28】的二阶微分方程D2y=cos(2*x)-y。 139
【例4-38】符号表达式提取分子分母实例。 140
【例4-39】符号表达式的基本代数运算实例。 141
【例4-40】合并符号表达式同类项实例。 141
【例4-41】各种符号表达式的展开形式实例。 142
【例4-42】对符号表达式因式分解实例。 142
【例4-43】符号符合函数运算实例。 143
【例4-44】符号表达式反函数运算实例。 144
【例4-45】pretty函数使用实例。 144
【例4-46】horner函数使用实例。 144
【例4-47】simplify函数使用实例。 145
【例4-48】simple函数使用实例。 145
【例4-49】subexpr函数使用实例。 146
【例4-50】用符号变量s来代替默认的sigma。 146
【例4-51】subs函数使用实例。 147
【例4-52】创建能对任何输入参数进行处理的
【例2-28】符号函数z=sin(x)/x。 147
第5章 MATLAB编程基础 148
【例5-1】函数M文件简单示意。 150
【例5-2】help文本查看。 151
【例5-3】注释行。 151
【例5-4】脚本文件运行实例。 152
【例5-5】计算n与m的最小公倍数。 153
【例5-6】顺序结构实例。 154
【例5-7】if…end实例。 155
【例5-8】if…else…end实例。 156
【例5-9】if…elseif…else…end实例。 157
【例5-10】switch…case…end实例。 158
【例5-11】for循环实例。 160
【例5-12】使用向量替代上例所示for循环。 161
【例5-13】for循环嵌套实例。 161
【例5-14】while循环程序实例。 162
【例5-15】while循环相互嵌套实例。 162
【例5-16】input函数实例。 163
【例5-17】break命令实例。 164
【例5-18】continue命令实例。 165
【例5-19】return命令实例。 165
【例5-20】pause命令实例。 166
【例5-21】子函数实例。 168
【例5-22】子函数的帮助文本查看实例。 169
【例5-23】私有函数实例。 170
【例5-24】嵌套函数的示意程序。 172
【例5-25】嵌套函数示例1。 172
【例5-26】嵌套函数示例2。 173
【例5-27】嵌套函数示例3。 173
【例5-28】嵌套函数中的函数句柄。 174
【例5-29】嵌套函数中的变量。 174
【例5-30】返回函数句柄的两种函数的比较。 175
【例5-31】匿名函数的输出实例。 180
【例5-32】匿名函数变量实例。 181
【例5-33】使用匿名函数解方程。 182
【例5-34】编写一个应用全局变量的求算术
【例2-28】平均的函数。 183
【例5-35】nargin函数的初级使用方法。 185
【例5-36】使用nargin可以查找函数输入
【例2-28】变量的个数。 185
【例5-37】nargin函数的高级使用方法。 186
【例5-38】varargin和varargout函数的使用举例。 187
【例5-39】varargin和varargout的取值。 188
【例5-40】向嵌套函数中传递可变的参数。 188
【例5-41】使用mkdir建立目录。 189
【例5-42】函数句柄作为输入参数传送给
【例2-28】另一个函数。 190
【例5-43】函数句柄在数组和结构体中的使用。 191
【例5-44】函数句柄的调用。 192
【例5-45】functions函数使用举例。 193
【例5-46】func2str和str2func函数的使用。 193
【例5-47】isa和isequal函数的实例。 193
【例5-48】嵌套函数。 195
【例5-49】读入数据示范。 195
【例5-50】稀疏矩阵与满秩矩阵的存储比较。 196
【例5-51】profiler实例。 207
【例5-52】try…catch示例。 209
【例5 53】try…catch嵌套示例。 209
【例5-54】lasterror函数实例。 210
【例5-55】警告实例。 214
【例5-56】查询所有的警告。 214
第6章 MATLAB文件操作 218
【例6-1】使用向导读入文件class.txt，该文件中的
【例6-1】文本以Tab键分隔。 220
【例6-2】从文件中创建变量实例。 222
【例6-3】导入数值文本数据。 223
【例6-4】导入有分隔符的ASCII数据文件。 224
【例6-5】导入带有文本头的文件数据。 225
【例6-6】导入字母数值混合的数据。 226
【例6-7】分隔符不是空格时的读取。 226
【例6-8】用save命令导出阵列A。 227
【例6-9】指定分隔符导出阵列A。 228
【例6-10】使用diary导出阵列。 228
【例6-11】用csvwrite函数导出矩阵数据。 229
【例6-12】使用whos–file命令预览文件内容。 230
【例6-13】load命令实例1。 231
【例6-14】load命令实例2。 231
【例6-15】load命令实例3。 231
【例6-16】load命令实例4。 231
【例6-17】save命令实例1。 232
【例6-18】save命令实例2。 233
【例6-19】save命令实例3。 233
【例6-20】imread函数实例。 234
【例6-21】imwrite函数实例。 235
【例6-22】将一个MATLAB图像序列保存为
【例2-28】一个AVI格式文件。 238
【例6-23】xlsfinfo函数实例。 239
【例6-24】xlswrite函数实例。 240
【例6-25】xlsread函数实例。 240
【例6-26】wklfinfo函数实例。 241
【例6-27】wklwrite函数实例。 241
【例6-28】wklread函数实例。 241
【例6-29】fopen函数实例。 242
【例6-30】fread函数实例1。 243
【例6-31】fread函数实例2。 244
【例6-32】fread函数实例3。 245
【例6-33】fwrite函数实例。 245
【例6-34】fgetl函数实例。 245
【例6-35】fscanf函数实例。 246
【例6-36】格式化写入文本文件实例。 247
【例6-37】格式化读取文本文件实例。 248
【例6-38】文件指针实例。 249
【例6-39】用feof函数检测文件末尾。 250
第7章 数据可视化 251
【例7-1】使用图形表示连续调制波形。 252
【例7-2】绘制一个简单的双轴对数图形。 254
【例7-3】根据向量或矩阵绘制双轴对数图形。 254
【例7-4】根据数据向量来绘制单轴对数图形。 255
【例7-5】根据函数plotyy来绘制多轴标度图形。 256
【例7-6】使用bar函数与barh函数绘图。 258
【例7-7】绘制面积图。 259
【例7-8】绘制二维饼形图。 260
【例7-9】绘制随机生成的正态分布数据的
【例2-28】直方图。 261
【例7-10】使用stem绘制离散图形。 262
【例7-11】使用stairs函数绘制正弦波的
【例2-28】阶跃图形。 262
【例7-12】绘制矩阵的本征值的罗盘图。 263
【例7-13】用羽状图来绘制theta的方向变化。 264
【例7-14】绘制函数 的梯度域。 264
【例7-15】绘制peaks函数的等高线。 266
【例7-16】绘制三维螺旋线。 267
【例7-17】绘制函数 的曲面图。 268
【例7-18】绘制peaks函数的曲面图。 269
【例7-19】使用bar3和ba3h函数绘制条形图。 269
【例7-20】使用pie3函数绘制三维饼形图。 270
【例7-21】使用stem3函数绘制三维离散图。 270
【例7-22】使用contour3函数绘制等高线图形。 271
【例7-23】使用xlabel和ylaebl命令给图形添加
【例2-28】坐标轴标注。 273
【例7-24】使用text函数对图像注释。 274
【例7-25】使用legend函数进行图形的图例标注。 276
【例7-26】使用grid函数进行图形网格控制。 277
【例7-27】view函数的使用。 278
【例7-28】颜色表的使用。 279
【例7-29】生成一个曲面图，之后添加光源。 280
第8章 MATLAB在数字图像处理中的应用 282
【例8-1】imfinfo函数的应用。 288
【例8-2】显示灰度图像。 289
【例8-3】显示二值图像。 290
【例8-4】imwrite函数应用。 291
【例8-5】对不同类型的图像进行转化。 292
【例8-6】用OSTU方法对灰度图像实现
【例8-6】阈值分割。 293
【例8-7】在水平和竖直方向移动图像。 296
【例8-8】对图像分别进行水平镜像和垂直
【例8-6】镜像变换。 297
【例8-9】缩小图像。 299
【例8-10】旋转图像。 300
【例8-11】剪切图像。 301
【例8-12】生成大小为100100的图像，然后分别
【例2-28】进行平移的DFT和不平移的DFT。 307
【例8-13】使用fft2函数验证离散傅里叶变换的
【例2-28】平移特性。 307
【例8-14】离散傅里叶变换的旋转特性。 308
【例8-15】对baboon图像进行二维DCT变换，
【例2-28】查看其能量谱。 311
【例8-16】图像抑噪。 312
【例8-17】二维离散沃尔什变换。 314
【例8-18】快速沃尔什变换程序。 315
【例8-19】baboon图像。 316
【例8-20】图像的radon变换与图像重构。 318
【例8-21】绘制图像的轮廓线和直方图。 321
【例8-22】非线性动态动态范围调整： 323
【例8-23】imadjust函数变换示例。 324
【例8-24】直方图均衡化示例。 325
【例8-25】邻域平均法滤波。 328
【例8-26】维纳滤波示例。 329
【例8-27】中值滤波函数medfilt2示例。 330
【例8-28】使用拉普拉斯算子对图像锐化。 331
【例8-29】巴特沃思滤波器低通滤波图像。 332
第9章 MATLAB优化问题应用 334
【例9-1】在区间(0,2π)上求函数sin(x)的最小值。 339
【例9-2】对边长为3m的正方形铁板，在四个角处
【例2-2】剪去相等的正方形以制成方形无盖水槽，
【例9-2】问如何剪法使水槽的容积最大？ 339
【例9-3】求函数的最小值。 344
【例9-4】将上例中的banana方程增加一个参数，
【例9-2】并求最小值。 344
【例9-5】求函数的最小值。 346
【例9-6】求公式的最小值。 349
【例9-7】求函数f(x) = –x1x2x3的最小值。 353
【例9-8】确定最好的采购方案。 357
【例9-9】计算x为何值时，目标函数取到
【例9-8】最大值中的最小值 359
【例9-10】通过在3附近搜索sin函数的0值来
【例2-28】计算π的值。 361
【例9-11】在1和2之间求解cos=0的根。 361
【例9-12】求解函数的根。 361
【例9-13】求解方程组的根，其中包含两个
【例2-28】未知数两个方程。 363
【例9-14】计算符合公式的矩阵x的值。 364
【例9-15】一个4×2问题的无约束最小二乘解同
【例2-28】非负最小二乘解的比较。 367
【例9-16】求超定系统C·x = d的最小二乘解，约束
【例2-28】条件为A·x≤b，lb≤x≤ub。 368
【例9-17】对公式进行最小化优化。 370
【例9-18】针对给出的xdata和ydata数据，拟合
【例2-28】指数式衰减方程。 372
【例9-19】计算MATLAB系统自带lincontest6
【例2-28】函数在约束条件下的最小值。 374
【例9-20】求MATLAB自带的测试函数De Jong
【例2-28】第五函数最小值。 377
【例9-21】在给定不等式约束和下边界条件
【例2-28】约束下求系统自带测试函数lincontest6
【例2-28】的最小值。 383
【例9-22】在无约束条件下，用遗传算法求MATLAB
【例2-28】自带测试函数shufcn的最小值。 384
【例9-23】使用Optimization Tool以fmincon
【例2-28】求解器对下面二次方程求解最小值。 386
第10章 MATLAB在信号处理中的应用 389
【例10-1】运行MATLAB命令产生矩形
【例10-1】脉冲信号。 392
【例10-2】使用MATLAB命令产生对称三角波。 393
【例10-3】计算
【例2-28】的Z反变换。 396
【例10-4】求余弦序列的离散傅里叶变换矩阵。 398
【例10-5】besselap函数使用举例。 405
【例10-6】buttap函数使用举例。 406
【例10-7】cheb1ap函数使用举例举例。 406
【例10-8】cheb2ap函数举例。 407
【例10-9】ellipap举例。 408
【例10-10】用冲激响应不变法设计切比
【例02-28】数雪夫Ⅰ型字低通滤波器。 409
【例10-11】用双线性变换法设计一个巴特沃思数
【例2-028】字低通滤波器。 410
【例10-12】用双线性变换法设计一个数字带通滤
【例02-28】波器。 411
【例10-13】调用滤波器完全设计函数设计带通切比
【例02-28】雪夫Ⅰ型数字滤波器。 412
【例10-14】运用yulewalk方法设计一多通带滤波
【例20-28】器，并绘制相应的频率响应曲线。 413
【例10-15】用maxflat函数设计一个通用巴特沃思低
【例20-28】通滤波器。 414
【例10-16】设计一个50阶的FIR带通滤波器。 417
【例10-17】用窗函数法设计多通带滤波器。 418
【例10-18】设计一个40阶低通滤波器，并且绘制
【例20-28】理想频率响应和实际频率响应图。 419
第11章 Simulink仿真 421
【例11-1】演示注释文字的使用方法。 433
【例11-2】简单系统仿真。 446
【例11-3】人口变化离散系统模型仿真。 448
【例11-4】蹦极跳系统的仿真实例。 450
【例11-5】子系统模型的第1种创建方法实例。 455
【例11-6】子系统模型的组合已有的模块创建
【例2-28】方法实例。 455
【例11-7】使能子系统设计实例。 456
【例11-8】利用触发子系统获取零阶保持的采样
【例2-28】信号实例。 457
【例11-9】我们以MATLAB自带的sldemo_
【例2-28】househeat.mdl来说明子系统的封装。 459
【例11-10】非等温CSTR系统仿真实例。 471
第12章 图形用户界面GUI设计 473
【例12-1】获得图形对象句柄。 475
【例12-2】使用uicontrol函数建立控件。 489
【例12-3】使用guide来创建一个图形
【例12-3】用户界面。 495
第13章 MATLAB与Office 500
【例13 1】Evaluate Cell示例。 508
【例13 2】Evaluate Calc Zone示例。 509
【例13 3】输出单元和输入单元。 511
【例13 4】单元组。 513
【例13 5】把输入单元嵌在文本中。 514
第14章 MATLAB应用程序接口 525
【例14-1】创建类似于其他编程语言中简单的
【例2-28】“hello，world！”程序“hello, MEX!”，
【例2-28】在命令行中输出hello, MEX!语句。 531
【例14-2】MATLAB中在有输入输出参数的
【例2-28】情况下MEX文件实例。 532
【例14-3】将C++程序mexcpp.cpp编译为MEX
【例2-28】文件。 533
【例14-4】在C/C++中调用MATLAB计算引擎
【例2-28】实例。 538
【例14-5】使用MATLAB编译器编译magicsquare.m，
【例2-28】并且创建独立C语言应用程序
【例2-28】magicsquare.exe，最后发布给
【例2-28】其他用户。 546
【例14-6】只由M文件作为源文件来进行编译。 549
【例14-7】举例说明混合调用M文件和
【例14-7】C语言代码。 549
【例14-8】用实例说明怎样编写调用一个编译过的
【例2-28】M文件。 553