第1章 MATLAB基础 1
1.1 MATLAB简介 1
1.1.1 MATLAB发展史 1
1.1.2 MATLAB软件主要特点 2
1.1.3 MATLAB软件共生产品 3
1.1.4 MATLAB软件组成 5
1.2 MATLAB软件安装、界面和帮助 8
1.2.1 MATLAB R2007a系统软、硬件资源的要求 8
1.2.2 MATLAB软件安装 8
1.2.3 认识MATLAB R2007a环境 9
1.2.4 MATLAB R2007a的帮助系统 17
1.3 通过实例了解MATLAB 20
1.3.1 命令行程序 20
1.3.2 MATLAB绘图 22
1.3.3 M文件的编写 23
1.3.4 GUI示例 24
1.3.5 使用Simulink进行系统仿真 25
1.4 MATLAB学习技巧 26
第2章 MATLAB数组和矩阵 29
2.1 基础知识 29
2.1.1 数据类型 29
2.1.2 矩阵和数组的概念 33
2.1.3 常量和变量 34
2.1.4 数值计算应用的例子 35
2.2 数组及其运算 36
2.2.1 数组的创建 36
2.2.2 数组的寻访和赋值 38
2.2.3 数组运算 40
2.2.4 元胞数组 42
2.2.5 结构数组 45
2.3 向量及其运算 47
2.3.1 向量的创建 47
2.3.2 向量的基本运算 47
2.4 矩阵运算及其应用 49
2.4.1 矩阵的创建 50
2.4.2 矩阵的基本操作 51
2.4.3 特殊矩阵 53
2.4.4 稀疏矩阵及其应用 56
2.4.5 矩阵的基本数值运算及其应用 58
2.4.6 矩阵的特征参数运算及其应用 62
2.4.7 矩阵的分解运算及其应用 65
第3章 MATLAB常用运算 69
3.1 符号运算 69
3.1.1 符号表达式 70
3.1.2 符号表达式的操作与代数运算 73
3.1.3 符号精度的控制 80
3.1.4 符号矩阵及其运算 81
3.1.5 符号微积分与积分变换 83
3.1.6 符号函数可视化 90
3.1.7 符号方程求解 93
3.1.8 Maple函数 98
3.2 关系运算及逻辑运算 102
3.2.1 关系运算符与逻辑运算符 103
3.2.2 运算符优先级 104
3.2.3 关系和逻辑函数 104
3.2.4 关系和逻辑运算实例 105
3.3 多项式及其运算 105
3.3.1 多项式求值 106
3.3.2 多项式求根 106
3.3.3 部分分式展开 107
3.3.4 多项式乘除 107
3.3.5 多项式的微积分 108
第4章 MATLAB高级绘图技术 109
4.1 二维图形绘制 109
4.1.1 基本二维绘图 110
4.1.2 特殊二维绘图 112
4.1.3 二维绘图的进阶功能 119
4.1.4 线型、顶点标记和颜色 120
4.1.5 分格线控制和图形标注 122
4.1.6 屏幕刷新 125
4.2 三维图形绘制 126
4.2.1 基本三维绘图 126
4.2.2 特殊三维绘图 131
4.2.3 三维绘图功能进阶 137
4.2.4 透明度作图 141
4.2.5 立体可视化 142
4.2.6 轻松绘制三维图形 147
4.3 图形色彩处理 148
4.3.1 颜色映像原理 148
4.3.2 颜色映像的应用 149
4.4 MATLAB句柄式图形 152
4.4.1 图形对象和句柄式图形简介 153
4.4.2 常用图形对象创建及其属性介绍 157
4.4.3 图形对象句柄的获取 166
4.4.4 对象属性的获取 167
4.4.5 对象属性的设置 168
4.5 MATLAB图像显示技术 172
4.5.1 图像简介 173
4.5.2 图像的读取 174
4.5.3 图像的显示 176
4.6 动画制作 176
4.6.1 以质点运动轨迹的方式呈现动画 176
4.6.2 以旋转颜色映像的方式呈现动画 177
4.6.3 以电影播放的方式呈现动画 178
4.6.4 以对象的方式呈现动画 179
第5章 科学计算与应用 181
5.1 插值与拟合 181
5.1.1 一维插值问题 181
5.1.2 二维插值问题 183
5.1.3 样条插值 187
5.1.4 曲线拟合 188
5.2 数值积分与数值微分 192
5.2.1 数值积分 192
5.2.2 数值微分 194
5.3 求解线性方程组 197
5.3.1 齐次线性方程组的求解 197
5.3.2 非齐次线性方程组的求解 198
5.3.3 线性方程组的迭代计算 202
5.4 求解非线性方程和方程组 205
5.4.1 求解f(x)=0的MATLAB符号法 205
5.4.2 方程f(x)=0数值解的MATLAB实现 207
5.4.3 求解非线性方程组的数值解 209
5.5 方阵特征值和特征向量的计算 210
5.5.1 求矩阵特征值的有关指令 211
5.5.2 QR算法与矩阵的正交分解指令qr 213
5.6 常微分方程的求解 215
5.6.1 求解常微分方程的MATLAB符号法 215
5.6.2 常微分方程的数值解 218
5.7 求解偏微分方程 225
5.7.1 偏微分方程组求解 225
5.7.2 二阶偏微分方程的数学描述 227
5.7.3 偏微分方程求解界面简介 229
5.8 最优化问题 232
5.8.1 无约束最优化问题求解 232
5.8.2 有约束最优化问题求解 236
5.8.3 基于遗传算法的最优化 239
第6章 Simulink仿真高级技术 251
6.1 Simulink入门 252
6.1.1 Simulink功能 252
6.1.2 Simulink运行方法及编辑窗口 253
6.1.3 Simulink模块库 256
6.1.4 Simulink模块基本操作 264
6.1.5 Simulink仿真参数设置 272
6.1.6 Simulink模型保存与打印 276
6.2 Simulink模型调试 279
6.2.1 图形调试器基础 279
6.2.2 使用图形调试器调试模型 281
6.2.3 使用命令行方式调试模型 284
6.3 Simulink子系统建立与封装技术 289
6.3.1 子系统建立 289
6.3.2 条件执行子系统建立 290
6.3.3 子系统封装方法与实例 301
6.4 Simulink仿真命令与回调方法 308
6.4.1 Simulink模型构造与编辑命令 308
6.4.2 Simulink模型仿真命令 314
6.4.3 模型与模块的回调方法 317
6.5 S-函数 319
6.5.1 S-函数基本概念 320
6.5.2 S-函数工作原理 322
6.5.3 用M文件编写S-函数 323
6.5.4 用C MEX文件编写S-函数 333
6.5.5 S-函数创建器的使用 338
6.6 Stateflow原理与应用 344
6.6.1 Stateflow原理 344
6.6.2 Stateflow应用基础 344
6.6.3 Stateflow常用命令 349
6.6.4 Stateflow建模方法及实例 349
6.7 Simulink模型的实时代码生成技术 354
6.7.1 Real-Time Workshop介绍 354
6.7.2 Simulink模型的普通实时程序生成方法与实例 358
6.7.3 Simulink模型实时代码生成方法与实例 366
第7章 MATLAB的工程应用 369
7.1 MATLAB与信号处理 369
7.1.1 MATLAB实现信号变换 370
7.1.2 MATLAB实现数字滤波 372
7.1.3 MATLAB实现功率谱估计 373
7.1.4 小波变换在语音信号处理中的应用 375
7.1.5 MATLAB实现SAR信号处理 376
7.2 MATLAB与图像处理 380
7.2.1 图像变换 380
7.2.2 MATLAB实现图像的边缘检测 382
7.2.3 MATLAB在汽车牌照识别系统中的应用 384
7.3 MATLAB与控制工程 386
7.3.1 控制系统建模与分析 389
7.3.2 波特图滞后-超前校正设计 390
7.3.3 PID控制器设计 395
7.3.4 Kalman滤波器 398
7.3.5 基于LQR的直升机飞行控制系统设计 399
第8章 MATLAB高级程序设计技术 407
8.1 M文件编程基础 407
8.1.1 M文件简介 407
8.1.2 M文件的分类 409
8.1.3 MATLAB控制流 418
8.1.4 函数调用和变量传递 428
8.1.5 数据导入与导出 433
8.1.6 实例分析 438
8.2 M文件编程的技巧 447
8.2.1 命令和函数的语法 447
8.2.2 获取帮助 448
8.2.3 M文件函数 449
8.2.4 程序开发 450
8.2.5 变量 451
8.2.6 字符串 451
8.2.7 表达式求值 453
8.2.8 MATLAB路径 453
8.2.9 程序控制 454
8.2.10 矩阵的操作 456
8.3 MATLAB类和面向对象编程 459
8.3.1 类和对象 459
8.3.2 创建类和对象 459
8.3.3 重载 462
8.3.4 继承 464
8.3.5 聚集 470
8.3.6 对象保存与装载 472
8.3.7 对象优先级 472
8.4 改善运行效率与内存利用 473
8.4.1 程序性能分析 473
8.4.2 提高运行效率 474
8.4.3 改善内存利用 478
8.5 M文件调试与剖析 480
8.5.1 错误处理(Error Handling) 480
8.5.2 直接调试法 482
8.5.3 调试器的使用 483
8.5.4 M文件性能剖析 485
8.6 定时器规划程序执行 486
8.6.1 MATLAB定时器 486
8.6.2 创建定时器 487
8.6.3 读取和设置属性 487
8.6.4 启动和停止定时器 489
8.6.5 创建和执行回调函数 489
8.6.6 定时器执行模式 490
第9章 高级图形用户界面设计 493
9.1 入门 493
9.2 图形用户界面设计工具 496
9.2.1 对象编辑器(Layout Editor) 497
9.2.2 对象位置调整工具(Align Objects) 498
9.2.3 菜单编辑器(Menu Editor) 499
9.2.4 Tab顺序编辑器(Tab Order Editor) 500
9.2.5 M-file编辑器(M-file Editor) 500
9.2.6 对象属性编辑器(Property Inspector) 501
9.2.7 对象浏览器(Object Browser) 501
9.3 对话框 502
9.3.1 公共对话框 502
9.3.2 一般对话框 507
9.4 界面菜单 512
9.4.1 创建菜单 512
9.4.2 菜单属性 514
9.5 用户控件 519
9.5.1 MATLAB控件介绍 519
9.5.2 控件的创建 521
9.5.3 控件的属性及设置 522
9.5.4 鼠标操作 530
9.6 图形用户界面编程 531
9.6.1 全局变量 531
9.6.2 用户数据属性(UserData) 532
9.6.3 脚本式M-file编程 533
9.6.4 函数式M-file编程 534
9.7 图形用户界面设计原则和一般步骤 536
9.7.1 GUI的设计原则 536
9.7.2 GUI设计的一般步骤 537
9.8 图形用户界面设计实例 539
第10章 MATLAB高级接口技术 549
10.1 MATLAB外部接口概述 549
10.1.1 外部接口概述 549
10.1.2 MEX文件 550
10.1.3 MAT文件 551
10.1.4 MATLAB计算引擎 551
10.1.5 MATLAB编译器 552
10.1.6 MATLAB COM和DDE编程 552
10.1.7 MATLAB Web服务 552
10.1.8 Excel、Java和.NET生成器 553
10.1.9 MATLAB硬件接口 553
10.1.10 MATLAB外部接口 553
10.2 MATLAB MEX文件 556
10.2.1 MATLAB的MEX文件 556
10.2.2 MEX文件系统设置 558
10.2.3 C语言MEX文件的建立 559
10.2.4 Visual C++中建立MEX文件及调试 581
10.3 MATLAB MAT文件 585
10.3.1 数据输入/输出 585
10.3.2 MAT文件格式 586
10.3.3 MAT文件编程 587
10.4 MATLAB计算引擎 594
10.4.1 MATLAB计算引擎 594
10.4.2 计算引擎库函数 595
10.4.3 计算引擎编程 598
10.4.4 Visual C++建立与调试计算引擎程序 603
10.4.5 工程实例分析 605
10.5 MATLAB COM和DDE编程 610
10.5.1 MATLAB COM概述 611
10.5.2 MATLAB COM客户端编程 612
10.5.3 MATLAB COM自动化服务器编程 615
10.5.4 MATLAB DDE编程 618
10.6 MATLAB编译器 621
10.6.1 MATLAB编译器概述 621
10.6.2 安装与配置 623
10.6.3 命令行方式 623
10.6.4 图形用户界面方式 623
10.6.5 应用实例 626
10.7 MATLAB硬件接口技术 634
10.7.1 MATLAB串口接口概述 634
10.7.2 MATLAB串口通信编程 635
10.7.3 编程实例 639
10.8 MATLAB Web服务 641
10.8.1 MATLAB Web服务使用 641
10.8.2 创建有Web服务的MATLAB应用程序 642
10.9 MATLAB与Excel接口 644
10.9.1 MATLAB Excel link 645
10.9.2 MATLAB Excel生成器 650
10.10 MATLAB Java生成器 656
10.10.1 Java生成器创建组件 656
10.10.2 Java生成器编程 658
10.10.3 打包和发布Java应用程序 660
10.10.4 应用实例 661
10.11 MATLAB.NET生成器 663
10.11.1 .NET生成器概述 663
10.11.2 创建.NET组件 664
10.11.3 .NET生成器编程 665
10.11.4 应用实例 669