第1章 基础准备及入门 1
1.1 MATLAB的安装和工具包选择 1
1.2 Desktop操作桌面的启动 2
1.2.1 MATLAB的启动 2
1.2.2 Desktop操作桌面简介 2
1.3 Command Window运行入门 3
1.3.1 Command Window指令窗简介 3
1.3.2最简单的计算器使用法 3
1.3.3数值、变量和表达式 5
1.数值的记述 5
2.变量命名规则 5
3.MATLAB默认的数学常数 5
4.运算符和表达式 7
5.面向复数设计的运算——MATLAB特点之一 8
6.面向数组设计的运算——MATLAB特点之二 11
1.4 Command Window操作要旨 14
1.4.1指令窗的显示方式 14
1.默认的输入显示方式 14
2.运算结果显示 14
3.显示方式的永久设置 15
1.4.2指令行中的标点符号 15
1.4.3常用控制指令 17
1.4.4指令窗中指令行的编辑 17
1.5历史指令窗(Command History) 18
1.5.1 Command History历史指令窗简介 18
1.5.2历史指令的再运行 19
1.6当前目录浏览器(Current Directory)、路径设置器和文件管理 19
1.6.1当前目录浏览器简介 20
1.6.2用户目录和当前目录设置 21
1.6.3 MATLAB的搜索路径 21
1.6.4 MATLAB搜索路径的扩展 22
1.何时需要修改搜索路径 22
2.利用设置路径对话框修改搜索路径 22
3.利用指令path设置路径 22
1.7工作空间浏览器和变量编辑器 23
1.7.1工作空间浏览器和变量可视化 23
1.7.2工作空间的管理指令 25
1.查询指令who及whos 25
2.从工作空间中删除变量和函数的指令dear 25
3.整理工作空间内存碎片的指令pack 25
1.7.3 Variable Editor变量编辑器 26
1.7.4数据文件和变量的存取 26
1.借助工作空间浏览器产生保存变量的MAT文件 26
2.借助输入向导Import Wizard向工作空间装载变量 26
3.存取数据的操作指令save和load 27
1.8 Editor/Debugger和脚本编写初步 28
1.8.1 Editor/Debugger M文件编辑器简介 28
1.8.2 M脚本文件编写初步 29
1.9帮助系统及其使用 30
1.9.1帮助体系的三大系统 30
1.9.2常用帮助指令 30
1.函数搜索指令 30
2.词条搜索指令 31
1.9.3 Help帮助浏览器 32
1.帮助浏览器的导出 32
2.帮助浏览器界面简介 32
3.帮助浏览器默认显示的利用 34
第2章 数值数组及向量化运算 39
2.1数值数组的创建和寻访 39
2.1.1一维数组的创建 39
1.递增/减型一维数组的创建 39
2.其他类型一维数组的创建 40
2.1.2二维数组的创建 41
1.小规模数组的直接输入法 41
2.中规模数组的数组编辑器创建法 41
3.中规模数组的M文件创建法 42
4.利用MATLAB函数创建数组 43
2.1.3二维数组元素的标识和寻访 45
1.数组的维数和大小 45
2.数组的标识和寻访 46
2.1.4数组的扩缩和特殊操作 47
1.数组的扩充和收缩 47
2.数组的特殊操作 49
3.数组操作函数 51
2.2数组运算 52
2.2.1数组运算的由来和规则 52
1.函数关系数值计算模型的分类 52
2.提高程序执行性能的三大措施 52
3.数组运算规则 52
4.数组运算符及数组运算函数 53
2.2.2数组运算和向量化编程 54
2.2.3数组特殊运算指令汇总 57
2.3高维数组 59
2.3.1高维数组的创建 59
2.3.2高维数组的孤维删除 61
2.3.3高维数组的维度重排 62
2.4“非数”和“空”数组 64
2.4.1非数NaN 64
2.4.2“空”数组 66
2.5关系操作和逻辑操作 67
2.5.1关系操作 67
2.5.2逻辑操作 69
2.5.3常用逻辑函数 70
第3章 字符串、胞元和构架数组 72
3.1 MATLAB的数据类型 72
3.2字符串数组 73
3.2.1串数组的属性和标识 73
3.2.2复杂串数组的创建 75
1.多行字符串数组的创建 75
2.利用胞元数组创建复杂字符串 77
3.2.3串转换函数 78
3.2.4串操作函数 82
3.3胞元数组 82
3.3.1胞元数组的创建和显示 83
1.胞元标识寻访和内容编址寻访的不同 83
2.胞元数组的创建和显示 83
3.3.2胞元数组的扩充、收缩和重组 84
3.3.3胞元数组内容的获取和配置 85
3.3.4胞元与数值数组之间的转换 87
3.3.5对胞元数组运算的cellfun指令 88
3.3.6胞元数组的操作函数汇总 90
3.4构架数组 90
3.4.1构架数组的创建和显示 91
1.直接创建法及显示 91
2.利用构造函数创建构架数组 92
3.4.2构架数组域中内容的调取和设置 93
3.4.3构架数组的扩缩、域的增删和域名重排 96
3.4.4构架数组和胞元数组之间的转换 97
3.4.5对构架域运算的structfun和arrayfun指令 100
3.4.6构架数组的操作函数汇总 102
第4章 数值计算 103
4.1 MATLAB的浮点数体系 103
4.2数值微积分 104
4.2.1数值极限 104
4.2.2数值差分 106
4.2.3数值积分(Numerical Integration) 108
1.一元函数积分(Quadrature) 108
2.样条法求一元数值积分 112
3.用Simulink求一元数值积分 112
4.2.4多重数值积分 113
1.常限重积分 113
2.变限重积分 114
4.3矩阵分析 117
4.3.1矩阵运算和特征参数 117
1.矩阵运算 117
2.矩阵的标量特征参数 118
4.3.2奇异值分解和矩阵结构 119
1.奇异值分解 119
2.与奇异值相关的矩阵结构 119
4.4特征值分解和矩阵函数 123
4.4.1特征值分解问题 123
4.4.2矩阵的谱分解和矩阵函数 125
4.5解线性方程 126
4.5.1求解线性方程的相关指令 127
4.5.2线性方程矩阵除解法 127
4.5.3线性二乘问题的解 129
4.5.4一般代数方程的解 130
4.6随机数的产生及其特征描述 133
4.6.1随机数的产生及重现控制 133
1.默认全局随机流的简明管理指令 133
2.三种基本随机数发生指令 134
3.用户随机流的创建和使用 136
4.随机流的重现控制 140
5.独立随机数序列和随机流的产生 143
6.随机数重现控制旧版指令的使用建议 148
4.6.2数据样本分布可视化描述 149
4.6.3随机分布的数字特征及其统计量 150
1.随机分布的中心位置统计量 150
2.随机分布的聚散度统计量 151
3.斜度和峭度高阶统计量 152
4.7多项式运算和卷积 157
4.7.1多项式的运算函数 157
1.多项式表达方式的约定 157
2.多项式运算函数 157
4.7.2卷积 161
1.两有限长序列的卷积 161
2.有限长序列与无限长序列的卷积 164
4.8多项式拟合和非线性最小二乘 165
4.8.1线性拟合和最小二乘 165
4.8.2多项式拟合 166
4.8.3非线性最小二乘拟合 172
1.伪线性化处理 172
2.非线性最小二乘拟合 172
4.9插值和样条 176
4.9.1一维插值 176
4.9.2高维函数的插值 179
4.9.3样条插值 181
4.9.4样条函数的应用 183
1.样条函数的微积分 183
2.样条函数的零点和最小值 186
4.10 Fourier分析 191
4.10.1快速Fourier变换和逆变换指令 191
4.10.2连续时间函数的Fourier级数展开 192
1.展开系数的积分求取法 192
2.Fourier级数与DFT之间的数学联系 193
3.MATLAB算法实现 193
4.10.3利用DFT计算连续函数Fourier变换CFT 201
1.CFT与DFT之间的数学联系 201
2.MATLAB算法实现 202
4.11常微分方程 205
4.11.1常微分方程初值问题的解算 205
1.求解初值问题的思路 205
2.解算指令的调用格式 206
3.解算指令的属性及其设置 207
4.嵌套函数法传递解算参数 209
5.匿名函数法传递解算参数 213
6.带事件设置的微分方程解算 215
4.11.2常微分方程的边值问题解 218
1.bvp4c求解边值问题的思路 219
2.求解边值问题的配套指令 220
3.求解含未知参数的边值问题 222
4.12最小值优化问题 227
4.12.1 MATLAB最小值优化指令概述 227
4.12.2单变量局域优化指令fminbnd 228
4.12.3多变量无约束局域优化指令fmin-search 232
4.12.4多变量约束局域优化指令fmincon 236
4.12.5 GlobalSearch实施的全域优化 242
第5章 符号计算 250
5.1符号对象的产生和识别 250
5.1.1基本符号对象的创建 250
1.定义符号数字和符号常数 250
2.定义基本符号变量 251
3.定义元符号表达式 251
5.1.2符号计算中的算符和函数指令 252
1.符号计算中的算符 252
2.符号计算中的函数指令 252
5.1.3符号对象、变量、自由变量的识别 253
1.符号对象的识别 253
2.符号变量及自由变量的认定 254
5.1.4符号运算机理和变量假设 259
1.符号运算的工作机理 259
2.对符号变量的限定性假设 259
3.清除变量和撤销假设 260
5.1.5符号帮助及其他常用指令 263
1.符号运作的帮助体系 263
2.服务于符号运算的其他指令 267
5.2数字类型转换及符号表达式操作 268
5.2.1数字类型及转换 268
1.三种数字类型及转换指令 268
2.双精度数字向符号数字转换 269
3.符号数字向双精度数字转换 274
4.符号数字的任意精度表达形式 275
5.2.2符号表达式的简化操作 277
5.2.3表达式中的置换操作 280
1.公因子法简化表达 280
2.通用置换指令 282
5.3符号微积分 285
5.3.1极限和导数的符号计算 285
5.3.2序列/级数的符号求和 290
5.3.3符号积分 291
5.4微分方程的符号解法 295
5.4.1符号解法和数值解法的互补作用 295
5.4.2求微分方程符号解的一般指令 295
5.4.3微分方程符号解示例 296
5.5符号变换和符号卷积 299
5.5.1 Fourier变换及其反变换 299
5.5.2 Laplace变换及其反变换 303
5.5.3 Z变换及其反变换 305
5.5.4符号卷积 308
5.6符号矩阵分析和代数方程解 309
5.6.1符号矩阵分析 309
5.6.2线性方程组的符号解 310
5.6.3一般代数方程组的解 311
5.7符号算法的综合应用 313
5.7.1三维根轨迹和数据探索 313
5.7.2代数状态方程求符号传递函数 319
1.结构框图的代数状态方程解法 320
2.信号流图的代数状态方程解法 322
3.多输入、多输出系统传递矩阵的求取 324
5.8符号计算结果的可视化 326
5.8.1直接可视化符号表达式 326
1.单独立变量符号函数的可视化 327
2.双独立变量符号函数的可视化 329
5.8.2符号计算结果的数值化绘图 330
5.8.3可视化与数据探索 332
5.9符号计算资源的数值环境应用 335
5.9.1符号表达式、串操作及数值计算M码间的转换 335
5.9.2符号工具包资源表达式转换成M码函数 337
1.转换指令matlabFunction 337
2.把符号包资源转换成M码函数的示例 338
3.把MuPAD资源转换为M码函数的示例 344
5.9.3用符号表达式创建Simulink用户模块 345
1.转换指令emlBlock 345
2.把符号包资源转换为Simulink模块的示例 346
5.10 MuPAD资源的深层利用 349
5.10.1借助mfun调用MuPAD特殊函数 349
5.10.2直接调用MuPAD的函数 352
1.非mfunlist列表MuPAD函数的调用步骤 353
2.借助evalin运行MuPAD函数 353
3.借助feval运行MuPAD函数 356
第6章 数据可视及探索 359
6.1引导 359
6.1.1离散数据和离散函数的可视化 359
6.1.2连续函数的可视化 360
6.1.3可视化的一般步骤 362
1.绘制二维图形的一般步骤 362
2.绘制三维图形的一般步骤 363
6.2二维线图及修饰操作 364
6.2.1基本指令plot的调用格式 365
1.基本调用格式 365
2.衍生调用格式 366
3.带属性设置的调用格式 367
6.2.2坐标控制和图形标识 369
1.坐标轴的控制 369
2.分格线和坐标框 371
3.图形标识指令 371
4.标识字符的精细控制 372
6.2.3多次叠绘、双纵坐标和多子图 375
1.多次叠绘 375
2.双纵坐标图 376
3.多子图 377
6.3三维绘图及修饰操作 378
6.3.1三维线图指令plot3 378
6.3.2三维曲面/网线图指令 379
1.基本调用格式 379
2.衍生调用格式 380
3.色图colormap 381
4.浓淡处理shading 381
6.3.3视点控制和图形的旋动 382
1.视点控制view 382
2.图形旋动rotate 383
6.3.4光照、材质和透视 384
1.光照light 384
2.材质处理material 384
3.透明处理 386
6.3.5消隐、镂空和裁切 390
1.网线的消隐 390
2.图形的镂空 390
3.图形的裁切 391
6.4高维可视化 392
6.4.1二维半图线 392
6.4.2准四维表现 393
6.4.3四维切片及等位线 394
6.5动态图形 396
6.5.1高层指令生成动态图形 396
1.彗星状轨迹图 396
2.色图的变幻 397
3.影片动画 397
6.5.2低层指令生成实时动画 398
6.6特殊图形指令 401
6.6.1彩色份额图 401
1.面域图area 401
2.直方图bar, barb, bar3, bar3h 402
3.饼图pie, pie3 402
6.6.2有向线图 402
6.6.3多面体异形图 403
1.德洛奈三角剖分和Voronoi图 403
2.填色图fill, fi113 404
3.不规则数据的网线图和曲面图 405
4.彩带图ribbon 406
6.6.4散点图scatter和plotmatrix 407
6.6.5泛函绘图指令fplot 408
6.7图像 409
6.7.1图像的类别和显示 410
6.7.2图像的读写 411
6.8图形窗的编辑探索功能 414
6.8.1图形窗的结构 414
1.图形窗的功能分区 414
2.图形窗工具条 415
3.主要构件与对应菜单 416
6.8.2指令鼠标混合操作生成绘图文件 418
6.8.3数据探针 422
6.8.4数据刷 424
6.8.5数据链和数据联动 427
第7章 M文件和函数句柄 432
7.1 M码编程的基本构件 432
1.变量 432
2.运算及运算符 432
3.标点符号 433
4.关键词 433
5.特殊值 433
6.MATLAB函数 433
7.指令及指令行 434
7.2 MATLAB的数据流控制 434
7.2.1 for循环和while循环控制 434
1.循环结构的基本形式 434
2.辅助控制指令continue和break 438
7.2.2 if-elseif-else条件分支控制 440
7.2.3 switch-case切换多分支控制 442
7.2.4 try-catch容错控制 443
7.2.5编程用的其他指令 446
1.return返回和pause暂定 446
2.error t出i错信息和warning警告 447
3.与键盘交互指令input和keyboard 447
7.3 M文件和P文件 448
7.3.1 M文件 448
1.M脚本文件 448
2.M函数文件 449
7.3.2 P码文件的创建、查询和清除 452
7.4 MATLAB的函数类别 453
7.4.1主函数和子函数 454
1.主函数 454
2.子函数 454
7.4.2匿名函数 456
7.4.3嵌套函数 456
7.5函数句柄 458
7.5.1函数作用域和优先等级 458
7.5.2函数句柄的创建 459
1.直接句柄创建法 459
2.匿名句柄创建法 459
7.5.3函数句柄的调用格式 460
1.直接句柄调用格式 460
2.匿名句柄调用格式 460
7.5.4观察函数句柄的内涵 461
7.6泛函演算指令 462
7.6.1 eval 462
7.6.2 feval 464
7.6.3内联对象 465
7.7变量的使用域和跨内存交换 466
7.7.1输入输出检测指令 466
7.7.2“变长度”输入输出量 467
7.7.3局域变量、全域变量和持存变量 471
7.7.4跨内存计算及赋值 472
1.跨内存计算串表达式 472
2.跨内存赋值 474
7.8编辑调试器的应用深入 475
7.8.1词串彩化和定界符匹配提示 475
1.词串彩化 475
2.定界符匹配提示 475
7.8.2 M-Lint代码分析器 477
1.检测信息的界面静态标识 477
2.详细检测信息的鼠标动态获取 478
7.8.3 M文件调试器 479
1.直接调试法 480
2.交互式调试器的界面 480
3.调试器应用示例 482
第8章 Simulink交互式仿真 486
8.1引导 486
8.1.1 Simulink模型本质和一般结构 486
8.1.2创建块图模型的方法和基本环境 487
8.2连续系统建模 490
8.2.1微分方程建模和积分模块 490
1.微分方程块图模型的创建和操作细节 490
2.创建微分方程的向量化块图模型 498
3.积分模块 501
8.2.2状态空间建模 503
1.状态空间模块及其建模应用 503
2.模型内存和模型浏览器 506
8.2.3传递函数建模及模型内存的操控 510
1.单位脉冲信号的近似实现 510
2.传递函数模块和非零初始系统建模 510
8.3子系统和分层模型 513
8.3.1创建简装子系统的套装法 514
8.3.2创建简装子系统的容器法 521
8.3.3精装子系统和装帧编辑器 523
8.4使能触发子系统 531
8.4.1使能子系统 531
1.子系统结构和工作原理 531
2.子系统非状态输出的两种形态 533
3.子系统状态检出的四种形态 537
8.4.2触发子系统 539
1.子系统的结构和工作原理 539
2.子系统的三种触发方式 541
8.5 Simulink的控制流 544
8.5.1 For环 544
8.5.2 While环 548
8.5.3 If-else条件转向和信号合成 551
8.6离散时间系统和混合系统 554
8.6.1单位延迟模块和差分方程建模 555
1.单位延迟模块 555
2.差分方程的标量建模法 555
3.差分方程组的向量建模法 558
8.6.2离散积分模块和混合系统 559
1.离散时a间积分模块 559
2.混合系统的s变量替换法 560
8.6.3多速率系统的色彩标识 562
8.7 Simulink的分析工具 563
8.7.1模型和模块信息的获取 563
1.模型状态及输入输出特征的获取 563
2.模型/模块参数的指令获知和设置 566
8.7.2用Sim指令运行Simulink模型 568
1.运行块图模型的sim指令 568
2.sim指令的参数名/值设置法 569
3.sim指令的参数构架设置法 570
8.7.3模型的线性化问题 572
1.线性化的数学描述 572
2.模型线性化 573
8.7.4系统平衡点和普通状态轨线图 577
8.7.5 M码和Simulink模型的综合运用 580
1.单步仿真和精良状态轨线图 580
2.仿真模型和优化指令的协调 583
8.8数值计算方面的考虑 586
8.8.1微分方程解算器Solver 586
1.ode45和ode23运作机理简要 586
2.odel13运作机理简要 587
3.odel5s和ode23s运作机理简要 587
4.不同解算器解Stiff方程的表现 587
8.8.2积分步长和容差 589
1.积分步长的选择 589
2.计算容差的选择 590
8.8.3代数环问题 590
1.无惯性模块和代数环 590
2.消减代数环影响 591
8.9 S函数模块的创建和应用 594
8.9.1 S函数概述 594
8.9.2 S函数模块及其运作机理 595
8.9.3 M码S函数 596
1.两个级别的M码S函数 596
2.对二级M码S函数模版的注释 596
3.二级M码S函数模块设计示例 599
第9章 图形用户界面(GUI) 605
9.1设计原则和一般步骤 605
9.1.1设计原则 605
9.1.2一般制作步骤 606
9.2借助GUIDE创建GUI 606
9.2.1 GUIDE9 9通览 607
1.GUIDE的启动 607
2.Preferences设置对版面编辑器的影响 607
3.GUIDE的功能分区 608
4.待设计用户界面的性状预设 609
5.设计区的坐标参照和位置编排器 610
6.控件组件属性值的初始设置 612
7.创建界面的文件保存和重命名 614
9.2.2控件的运作机理及创建 615
1.各控件的运作机理 615
2.常需设置的控件通用属性 622
9.2.3 GUI的创建示例 623
1.二阶系统阶跃响应演示界面 623
2.多指令输入的演示界面 634
9.2.4界面菜单和工具图标的创建 639
1.标准菜单条和工具条的配置 639
2.定制菜单的创建和变量handles的观察 642
3.现场菜单创建和Tag属性应用 646
9.3全手工编程创建GUI 650
9.3.1采用M脚本文件创建用户界面 651
9.3.2采用嵌套函数创建用户界面 655
附录A Notebook 658
A.1 Notebook的配置和启动 658
A.1.1 Notebook的配置 658
A.1.2 Notebook的启动 658
1.创建新的M-book文件 658
2.打开已有的M-book文件 660
A.2 M-book模板的使用 660
A.2.1输入细胞(群)的创建和运行 660
1.细胞(群) 660
2.基本操作 661
3.输入细胞(群)操作示例 661
A.2.2 Notebook菜单的其他选项 663
1.自初始化细胞及其应用 663
2.整个M-book文件的运行 663
3.删去M-book文件所有输出细胞 664
A.2.3输出细胞的格式控制 664
1.数据输出的表示形式控制 664
2.图形的嵌入控制 665
3.嵌入图形大小的控制 665
4.嵌入图形的背景色问题 665
A.3使用M-book模板的若干注意事项 666
附录B光盘使用说明 667
B.1光盘文件的结构 667
B.2关于光盘第一级目录和文件的说明 667
B.3光盘对软件环境的要求 668
B.4光盘文件的操作准备 668
B.5 mbook目录上DOC文件的使用 668
B.6 mfile目录上M、MDI文件的使用 669
附录C索引 670
C.1 MATLAB的标点及符号 670
1.算术运算符Arithmetic operators 670
2.关系运算符Relational operators 670
3.逻辑运算符Logical operators 670
4.特殊符号Special characters 671
C.2 MATLAB的函数及指令Functions and Commands 671
Aa 671
BB 672
CC 673
Dd 674
Ee 675
Ff 676
Gg 677
Hh 678
Ii 678
Ji 680
Kk 680
Ll 680
Mm 681
Nn 681
Oo 682
Pp 682
Qq 683
Rr 684
Ss 685
Tt 687
Uu 688
Vv 688
Ww 688
Xx 688
Yy 689
Zz 689
C.3 Simulink的库模块 689
参考文献 692