第一部分MATLAB基础知识 3
第1章MATLAB概述 3
1.1 MATLAB简介 3
1.2 MATLAB的特点及应用领域 4
1.3 MATLAB R2016a的工作环境 5
1.3.1操作界面 6
1.3.2命令行窗口 6
1.3.3命令历史记录窗口 10
1.3.4输入变量 11
1.3.5当前文件夹窗口和路径管理 13
1.3.6搜索路径 14
1.3.7工作区窗口和数组编辑器 16
1.3.8变量的编辑命令 17
1.3.9存取数据文件 18
1.4 MATLAB R2016a的帮助系统 19
1.4.1纯文本帮助 19
1.4.2演示帮助 21
1.4.3帮助导航 23
1.4.4帮助文件窗口 23
1.4.5帮助文件索引窗 23
本章小结 24
第2章MATLAB基础 25
2.1基本概念 25
2.1.1 MATLAB数据类型概述 25
2.1.2整数类型 26
2.1.3浮点数类型 28
2.1.4复数 29
2.1.5无穷量( Inf)和非数值量(NaN ) 30
2.1.6数值类型的显示格式 31
2.1.7确定数值类型的函数 31
2.1.8常量与变量 32
2.1.9标量、向量、矩阵与数组 33
2.1.10字符串 33
2.1.11运算符 34
2.1.12命令、函数、表达式和语句 36
2.2向量运算 37
2.2.1向量的生成 37
2.2.2向量的加减和数乘运算 39
2.2.3向量的点、叉积运算 39
2.3矩阵运算 41
2.3.1矩阵元素的存储次序 42
2.3.2矩阵元素的表示及相关操作 42
2.3.3矩阵的创建 45
2.3.4矩阵的代数运算 51
2.4字符串运算 57
2.4.1字符串变量与一维字符数组 57
2.4.2对字符串的多项操作 58
2.4.3二维字符数组 60
本章小结 61
第3章 数组 62
3.1 MATLAB中的数组 62
3.2数组的创建 62
3.2.1创建空数组 63
3.2.2创建一维数组 63
3.2.3创建二维数组 64
3.2.4创建三维数组 65
3.2.5创建低维标准数组 69
3.2.6创建高维标准数组 70
3.3数组的属性 71
3.3.1数组结构 71
3.3.2数组大小 71
3.3.3数组维度 72
3.3.4数组数据类型 73
3.3.5数组内存的占用 74
3.4创建特殊数组 74
3.4.1 0-1数组 74
3.4.2对角数组 75
3.4.3随机数组 76
3.4.4魔方数组 77
3.5数组操作 77
3.5.1数组的保存和装载 77
3.5.2数组索引和寻址 78
3.5.3数组的扩展和裁剪 80
3.5.4数组形状的改变 85
3.5.5数组运算 88
3.5.6数组的查找 91
3.5.7数组的排序 92
3.5.8高维数组的降维操作 93
3.6多维数组及其操作 94
3.6.1 多维数组的属性 94
3.6.2多维数组的操作 95
3.7关系运算和逻辑运算 97
3.7.1关系运算 97
3.7.2逻辑运算 98
3.7.3常用函数 101
本章小结 102
第4章 矩阵 103
4.1矩阵的基本特征参数 103
4.1.1矩阵的基本参数 103
4.1.2条件数、矩阵的稳定性 104
4.1.3特征值和特征向量的基本概念 106
4.2矩阵的生成 106
4.2.1实数值矩阵输入 107
4.2.2复数矩阵输入 107
4.2.3符号矩阵的生成 108
4.2.4大矩阵的生成 109
4.3矩阵运算 109
4.3.1矩阵分析 109
4.3.2矩阵特征值和特征向量的计算 113
4.4矩阵分解 117
4.4.1 Cholesky分解 118
4.4.2使用Cholesky分解求解方程组 119
4.4.3不完全Cholesky分解 119
4.4.4 LU分解 120
4.4.5不完全RU分解 122
4.4.6 QR分解 122
4.4.7操作QR分解结果 124
4.4.8奇异值分解 124
4.5常用的数学函数 125
4.5.1三角函数 126
4.5.2指数和对数函数 127
4.5.3复数函数 129
4.6稀疏矩阵技术 131
4.6.1基本稀疏矩阵 131
4.6.2稀疏矩阵的函数 134
本章小结 137
第5章 符号运算 138
5.1符号运算的基本概念 138
5.1.1符号对象 138
5.1.2创建符号对象与函数命令 140
5.1.3符号常量 142
5.1.4符号变量 142
5.1.5符号表达式、符号函数与符号方程 144
5.1.6函数命令findsym() 148
5.1.7数组、矩阵与符号矩阵 150
5.2符号运算的基本内容 151
5.2.1符号变量代换及其函数subs() 151
5.2.2符号对象转换为数值对象的函数 153
5.2.3符号表达式的化简 154
5.2.4符号运算的其他函数 159
5.2.5两种特定的符号运算函数 161
5.3符号微积分运算及应用 163
5.3.1 MATLAB符号极限运算 163
5.3.2符号函数微分运算 166
5.3.3符号函数积分运算 167
5.3.4符号卷积 169
5.3.5符号积分的变换 170
5.4符号矩阵及其运算 172
5.4.1符号矩阵的建立与访问 173
5.4.2符号矩阵的基本运算 177
5.4.3符号矩阵的化简 182
5.4.4符号矩阵的微分与积分 185
5.4.5符号矩阵的Laplace变化 186
5.5 MATLAB符号方程求解 187
5.5.1 符号代数方程求解 187
5.5.2符号微分方程求解 191
5.6符号函数图形计算器 194
5.6.1符号函数图形计算器的界面 194
5.6.2符号函数图形计算器的输入框操作 195
5.6.3符号函数图形计算器的按钮操作 195
本章小结 197
第二部分MATLAB数据处理 201
第6章MATLAB二维绘图 201
6.1数据图像绘制简介 201
6.1.1离散数据可视化 201
6.1.2连续函数可视化 204
6.2二维图形的基本绘图命令 206
6.2.1二维图形绘制步骤 206
6.2.2二维图形基本绘图命令plot 208
6.2.3快速方程式画图(fplot,ezplot) 211
6.3二维图形的修饰 213
6.3.1色彩、线型和点型 213
6.3.2坐标轴的调整 215
6.3.3刻度和分格线 217
6.3.4设置坐标框 218
6.3.5图形标识 219
6.3.6图案填充 222
6.4子图绘制法 225
6.5特殊图形的绘制 227
6.5.1特殊坐标图形的绘制 227
6.5.2特殊二维图形的绘制 231
6.6二维绘图的实际应用 239
本章小结 244
第7章MATLAB三维绘图 245
7.1三维绘图基础 245
7.1.1三维绘图基本步骤 245
7.1.2三维绘图基本命令 246
7.1.3三维坐标标记及图形标记 249
7.2三维网格曲面 250
7.2.1绘制三维曲面 250
7.2.2栅格数据的生成 255
7.2.3网格曲面的绘制命令 258
7.2.4隐藏线的显示和关闭 260
7.3三维阴影曲面的绘制 261
7.3.1带有等高线的阴影曲面绘制 262
7.3.2具有光照效果的阴影曲面绘制 262
7.4三维图形的控制 263
7.4.1设置视角位置 263
7.4.2设置坐标轴 265
7.5三维图形特殊处理 266
7.5.1透视、裁剪和镂空 266
7.5.2色彩控制 268
7.5.3照明和材质处理 271
7.5.4简洁绘图指令 273
7.6特殊三维图形 275
7.6.1螺旋线 275
7.6.2抛物面 277
7.6.3柱状图 278
7.6.4柱体 279
7.6.5饼状图 281
7.6.6双曲面 281
7.6.7三维等高线 282
7.6.8三维离散序列图 284
7.6.9其他图形 284
7.7三维绘图的实际应用 285
本章小结 293
第8章 数据分析 294
8.1插值 294
8.1.1一维插值命令及实例 294
8.1.2二维插值命令及实例 297
8.1.3样条插值 298
8.2曲线拟合 300
8.2.1多项式拟合 300
8.2.2加权最小方差(WLS)拟合原理及实例 301
8.3曲线拟合图形界面 303
8.3.1曲线拟合 303
8.3.2绘制拟合残差图形 305
8.3.3进行数据预测 305
8.4傅里叶分析 306
8.4.1离散傅里叶变换 306
8.4.2 FFT和DFT 308
8.5图像数据分析处理 310
本章小结 317
第9章 微积分方程 318
9.1微分方程的基础及其应用 318
9.1.1微分方程的概念 318
9.1.2常微分方程的解 319
9.1.3微分方程的数值解法 325
9.1.4偏微分方程的数值解 326
9.2积分方程的基础及其应用 331
9.2.1 积分的有关理论 331
9.2.2数值积分的MATLAB应用 335
9.2.3高斯积分的MATLAB应用 341
9.2.4反常积分的MATLAB应用 342
9.2.5重积分的MATLAB应用 349
9.3多种求积算法的分析比较 352
9.3.1牛顿-科茨求积公式及其MATLAB实现 352
9.3.2复化求积公式及其MATLAB实现 354
9.3.3龙贝格求积公式及其MATLAB实现 357
9.3.4高斯-勒让德求积公式及其MATLAB实现 358
9.3.5各种求积公式的分析比较 360
9.4 MATLAB求方程极值解 362
9.4.1一元函数的极限 362
9.4.2多元函数的极值 364
本章小结 366
第10章MATLAB优化 367
10.1常见优化问题 367
10.1.1无约束非线性优化 367
10.1.2有约束规划 376
10.1.3目标规划 379
10.1.4最大最小化问题 385
10.1.5线性规划 388
10.1.6二次规划 391
10.1.7多目标规划 393
10.1.8非线性方程的优化解 397
10.2最小二乘最优问题 400
10.2.1约束线性最小二乘 400
10.2.2非线性数据(曲线)拟合 402
10.2.3非负线性最小二乘 403
10.3代数方程的求解 403
本章小结 405
第11章 概率和数理统计 406
11.1随机数的产生 406
11.1.1二项分布随机数 406
11.1.2泊松分布随机数 407
11.1.3均匀分布随机数 408
11.1.4正态分布随机数 409
11.1.5其他常见分布随机数 409
11.2概率密度函数 411
11.2.1常见分布的密度函数作图 411
11.2.2通用函数计算概率密度函数值 415
11.2.3专用函数计算概率密度函数值 416
11.3随机变量的数字特征 417
11.3.1平均值、中值 417
11.3.2数学期望 419
11.3.3协方差及相关系数 420
11.3.4矩和协方差矩阵 421
11.3.5数据比较 421
11.3.6方差 423
11.3.7常见分布的期望和方差 425
11.4参数估计 425
11.4.1常见分布的参数估计 426
11.4.2点估计 428
11.4.3区间估计 429
11.5假设检验 430
11.5.1方差已知时的均值假设检验 430
11.5.2正态总体均值假设检验 431
11.5.3分布拟合假设检验 433
11.6方差分析 435
11.6.1单因子方差分析 435
11.6.2双因子方差分析 437
11.7统计图表的绘制 437
本章小结 443
第12章 函数 444
12.1 M文件 444
12.1.1 M文件概述 444
12.1.2变量 445
12.1.3脚本文件 447
12.1.4函数文件 447
12.1.5函数调用 449
12.2函数类型 452
12.2.1匿名函数 452
12.2.2 M文件主函数 453
12.2.3嵌套函数 453
12.2.4子函数 454
12.2.5私有函数 455
12.2.6重载函数 455
12.3参数传递 455
12.3.1 MATLAB参数传递概述 455
12.3.2输入和输出参数的数目 456
12.3.3可变数目的参数传递 457
12.3.4返回被修改的输入参数 458
12.3.5全局变量 459
本章小结 460
第三部分MATLAB程序和GUI设计 463
第13章MATLAB程序设计 463
13.1 MATLAB的程序结构 463
13.1.1 if分支结构 463
13.1.2 switch分支结构 464
13.1.3 while循环结构 465
13.1.4 for循环结构 466
13.2 MATLAB的控制语句 468
13.2.1 continue命令 468
13.2.2 break命令 469
13.2.3 return命令 470
13.2.4 input命令 470
13.2.5 keyboard命令 471
13.3 MATLAB文件操作 471
13.4程序调试 473
13.4.1程序调试命令 473
13.4.2程序常见的错误类型 474
13.5 MATLAB程序优化 478
13.5.1效率优化(时间优化 479
13.5.2内存优化(空间优化) 479
13.5.3几个常用的算法程序 485
本章小结 492
第14章 经典智能算法的MATLAB实现 493
14.1免疫算法的MATLAB实现 493
14.1.1基本原理 493
14.1.2程序设计 494
14.1.3经典应用 501
14.2小波分析算法的MATLAB实现 508
14.2.1基本原理 508
14.2.2程序设计 509
14.2.3经典应用 516
14.3 PID控制器的实现 520
14.3.1 基本原理 520
14.3.2经典应用 522
本章小结 536
第15章 图形用户界面 537
15.1创建GUI对象 537
15.1.1用M文件创建GUI对象 537
15.1.2使用GUIDE创建GUI对象 541
15.2定制标准菜单 552
15.3编写回调函数 554
15.4创建现场菜单 555
15.4.1编写GUI的程序代码 555
15.4.2演示GUI对象 557
15.5 GUI对象的应用 558
15.5.1控件区域框 558
15.5.2静态文本框、滑动键、检录框示例 559
15.5.3可编辑框、弹出框、列表框、按键示例 561
本章小结 563
第16章 神经网络GUI设计 564
16.1人工神经网络基本原理 564
16.2常规神经网络GUI 565
16.3专业神经网络GUI 569
16.3.1 神经网络拟合GUI 570
16.3.2神经网络模式识别GUI 576
16.3.3神经网络聚类GUI 582
本章小结 588
第四部分Simulink应用和MATLAB工具箱 591
第17章Simulink基础 591
17.1基本介绍 591
17.1.1 Simulink工作环境 591
17.1.2模块库介绍 594
17.1.3 Simulink仿真基本步骤 600
17.2模块操作 600
17.2.1 Simulink模块类型 600
17.2.2自动连接模块 601
17.2.3手动连接模块 602
17.2.4设置模块特定参数 603
17.2.5设置输出提示 604
17.3模型的创建 605
17.3.1信号线操作 605
17.3.2对模型的注释 607
17.3.3常用的Source信源 607
17.3.4常用的Sink信宿 612
17.3.5仿真的配置 615
17.3.6启动仿真 616
17.4 Simulink系统仿真 618
17.4.1仿真基础 618
17.4.2输出信号的显示 620
17.4.3简单系统的仿真分析 620
本章小结 622
第18章Simulink子系统 623
18.1子系统介绍 623
18.2条件执行子系统 624
18.2.1使能子系统 625
18.2.2触发子系统 630
18.2.3触发使能子系统 633
18.3自定义库操作 634
本章小结 635
第19章Simulink仿真与调试 636
19.1仿真配置 636
19.1.1求解器的概念 636
19.1.2仿真的设置 638
19.1.3诊断设置 641
19.2优化仿真性能 643
19.2.1提高仿真速度 643
19.2.2提高仿真精度 644
19.3模型调试 645
19.3.1启动调试器 645
19.3.2调试器的图形用户接口 646
19.3.3调试器的命令行接口 647
19.3.4调试器命令 648
19.4显示模型信息 649
19.4.1显示模型中模块的执行顺序 649
19.4.2显示模块 650
本章小结 652
第20章 神经网络工具箱 653
20.1神经网络MATLAB工具箱 653
20.1.1感知器工具箱的函数 653
20.1.2线性神经网络工具箱函数 660
20.1.3 BP神经网络工具箱函数 667
20.1.4 RBF网络工具箱函数 672
20.1.5 Hopfield网络工具箱函数 676
20.1.6竞争型神经网络工具箱函数 681
20.2神经网络Simulink工具箱 695
20.3经典应用 698
20.3.1遗传算法优化神经网络 698
20.3.2基于Simulink的神经网络控制系统 704
本章小结 713
第21章 信号处理工具箱 714
21.1信号处理工具箱建模 714
21.2信号的产生 716
21.2.1锯齿波、三角波和矩形波发生器 717
21.2.2周期sinc波 718
21.2.3高斯调幅正弦波 719
21.2.4调频信号 720
21.2.5高斯分布随机序列 721
21.3随机信号处理 722
21.3.1随机信号的互相关函数 722
21.3.2随机信号的互协方差函数 724
21.3.3谱分析——psd函数 724
21.3.4谱分析——pwelch函数 726
21.4模拟滤波器设计 727
21.4.1巴特沃斯滤波器 727
21.4.2切比雪夫Ⅰ型滤波器 728
21.4.3切比雪夫Ⅱ型滤波器 729
21.5 IIR数字滤波器设计 730
21.5.1巴特沃斯数字滤波器设计 731
21.5.2切比雪夫Ⅰ型数字滤波器设计 731
21.5.3切比雪夫Ⅱ型数字滤波器设计 733
本章小结 735
第22章 图像处理工具箱 736
22.1查看图像文件信息 736
22.2显示图像 737
22.2.1默认显示方式 738
22.2.2添加颜色条 738
22.2.3显示多帧图像 739
22.2.4显示动画 739
22.2.5三维材质图像 740
22.3图像的灰度变换 741
22.3.1图像的直方图 741
22.3.2灰度变换 741
22.3.3均衡直方图 743
22.4图像处理工具箱的应用 744
22.4.1道路图像阈值分割问题 744
22.4.2基于遗传神经网络的图像分割 753
本章小结 757
附录A MATLAB基本命令 758
附录B Simulink基本模块 762
参考文献 764