第1章 计算机和编程概述 1
1.1 背景 1
1.2 计算机体系结构的发展历史 2
1.2.1 Babbage差分机 2
1.2.2 Colossus 3
1.2.3 von Neumann结构 4
1.3 今天的计算机系统 4
1.3.1 计算机硬件 5
1.3.2 计算机存储器 6
1.3.3 计算机配置 7
1.3.4 计算机软件 8
1.3.5 计算机程序的执行 12
1.4 MATLAB程序的执行 13
1.5 问题求解 13
1.6 本章小结 14
1.7 自测题 14
第2章 MATLAB入门 17
2.1 程序设计语言背景 19
2.1.1 抽象 19
2.1.2 算法 19
2.1.3 程序设计范式 20
2.2 基本数据操作 20
2.2.1 启动与关闭MATLAB 21
2.2.2 变量赋值 21
2.2.3 数据类型 23
2.2.4 类与对象 24
2.3 MATLAB用户界面 24
2.3.1 Command窗口 25
2.3.2 Command History窗口 26
2.3.3 Workspace窗口 27
2.3.4 Current Directory窗口 31
2.3.5 Document窗口 31
2.3.6 Graphics窗口 32
2.3.7 Editor窗口 33
2.3.8 Start按钮 33
2.4 脚本 34
2.4.1 文本文件 34
2.4.2 创建脚本 34
2.4.3 当前目录 35
2.4.4 运行脚本 35
2.4.5 脚本中的标点 36
2.4.6 脚本调试 36
2.5 工程实例——航天器发射 37
2.6 本章小结 39
2.7 特殊字符、保留字和函数 40
2.8 自测题 40
第3章 数组 43
3.1 概念:使用内置函数 44
3.2 概念:数据集合 44
3.2.1 数据抽象 44
3.2.2 同类集合 44
3.3 MATLAB向量 44
3.3.1 创建向量 45
3.3.2 向量尺寸 46
3.3.3 向量索引 46
3.3.4 缩短向量 47
3.3.5 向量操作 48
3.4 工程实例——力与力矩 55
3.5 MATLAB数组 57
3.5.1 数组的性质 57
3.5.2 创建数组 58
3.5.3 获取数组中的元素 59
3.5.4 从数组中移除元素 60
3.5.5 数组操作 60
3.6 工程实例——计算土壤体积 68
3.7 本章小结 70
3.8 特殊字符、保留字和函数 71
3.9 自测题 72
第4章 流程控制 79
4.1 概念:代码块 80
4.2 常用的条件执行模块 80
4.3 if语句 81
4.3.1 通用模板 82
4.3.2 在MATLAB中的实现 82
4.3.3 重要思想 84
4.4 switch语句 85
4.4.1 通用模板 85
4.4.2 在MATLAB中的实现 86
4.5 循环概述 87
4.6 for循环 87
4.6.1 for循环的通用模板 88
4.6.2 在MATLAB中的实现 88
4.6.3 索引的实现 89
4.6.4 跳出for循环 90
4.7 while循环 90
4.7.1 while循环的通用模板 91
4.7.2 while循环在MATLAB中的实现 91
4.7.3 Loop-and-a-Half在MATLAB中的实现 92
4.7.4 跳出while循环 93
4.8 工程实例——液面的计算 93
4.9 本章小结 96
4.10 特殊字符、保留字和函数 96
4.11 自测题 97
第5章 函数 105
5.1 概念:抽象与封装 105
5.2 函数的黑箱观点 106
5.3 在MATLAB中的实现 106
5.3.1 通用模板 106
5.3.2 函数定义 107
5.3.3 保存并使用MATLAB函数 108
5.3.4 调用函数 108
5.3.5 返回多个结果 109
5.3.6 辅助(局部)函数 110
5.3.7 MATLAB函数中的封装 110
5.3.8 全局变量 111
5.4 工程实例——测量固态物体 112
5.5 本章小结 113
5.6 特殊字符、保留字和函数 114
5.7 自测题 114
第6章 字符串 121
6.1 字符串的概念:映射和转换 122
6.2 在MATLAB中的实现 123
6.2.1 串的切片和连接 124
6.2.2 算术运算和逻辑运算 124
6.2.3 一些有用的函数 125
6.3 格式转换函数 125
6.3.1 把数字转换成字符串 125
6.3.2 把字符串转换成数值 126
6.4 字符串操作 128
6.4.1 简单的数据输出:disp()函数 128
6.4.2 复杂输出 128
6.4.3 串比较 129
6.5 串数组 130
6.6 工程实例——加密 131
6.7 本章小结 135
6.8 特殊字符、保留字和函数 135
6.9 自测题 136
第7章 元胞数组和结构 141
7.1 概念:异类集合 142
7.2 元胞数组 142
7.2.1 创建元胞数组 142
7.2.2 访问元胞数组 143
7.2.3 使用元胞数组 145
7.2.4 元胞数组的操作 145
7.3 MATLAB中的结构 146
7.3.1 单个结构的创建和存取 146
7.3.2 构造函数 148
7.4 结构数组 150
7.4.1 创建结构数组 150
7.4.2 访问结构元素 151
7.4.3 结构的操作 154
7.5 工程实例——梁结构的装配 156
7.6 本章小结 160
7.7 特殊字符、保留字和函数 160
7.8 自测题 161
第8章 文件输入输出 169
8.1 概念:串行输入输出(I/O) 170
8.2 MATLAB工作空间I/O 171
8.3 高级I/O函数 171
8.3.1 考察数据 171
8.3.2 Excel电子数据表 172
8.3.3 含分隔符的文本文件——仅含数值数据 174
8.4 低级文件I/O 175
8.4.1 打开与关闭文件 175
8.4.2 读取文本文件 176
8.4.3 读取文本文件的例子 176
8.4.4 写文本文件 178
8.5 工程实例——电子表格数据 179
8.6 本章小结 181
8.7 特殊字符、保留字和函数 181
8.8 自测题 182
第9章 递归 185
9.1 概念:激活栈 186
9.1.1 堆栈 186
9.1.2 激活栈 187
9.1.3 函数实例 187
9.2 递归定义 187
9.3 在MATLAB中实现递归函数 188
9.4 异常 190
9.4.1 过去的处理方法 190
9.4.2 异常的一般实现 190
9.4.3 在MATLAB中的实现 191
9.5 包装函数 193
9.6 尾递归 195
9.7 互递归 197
9.8 生成递归 197
9.9 递归示例 198
9.9.1 回文检测 198
9.9.2 斐波那契级数 198
9.9.3 函数的零点 200
9.10 工程实例——机械手运动 202
9.11 本章小结 206
9.12 特殊字符、保留字和函数 206
9.13 自测题 206
第10章 解题原则 211
10.1 简单问题的求解 212
10.2 解题步骤的结合 212
10.3 操作概述 212
10.3.1 基本算术操作 213
10.3.2 把元素插入数据集合 213
10.3.3 遍历数据集合 215
10.3.4 创建数据集合 218
10.3.5 数据集合的映射 221
10.3.6 过滤数据集合 222
10.3.7 汇总数据集合 224
10.3.8 搜索数据集合 225
10.3.9 数据集合排序 227
10.4 大型问题的求解 227
10.5 工程实例——地理政治学数据处理 229
10.6 本章小结 233
10.7 自测题 234
第11章 绘图 237
11.1 基本绘图 238
11.1.1 图——绘图容器 238
11.1.2 增强绘图效果的简单函数 238
11.1.3 一个图形中的多幅图——子图 239
11.1.4 手动编辑图形 240
11.2 二维绘图 242
11.2.1 简单绘图 242
11.2.2 绘图选项 243
11.2.3 参数化绘图 246
11.2.4 其他二维绘图功能 247
11.3 三维绘图 248
11.3.1 线性三维图 248
11.3.2 线性参数化三维曲线图 249
11.3.3 其他三维绘图功能 251
11.4 曲面绘图 251
11.4.1 基本功能 251
11.4.2 简单练习 251
11.4.3 参数化三维曲面 256
11.4.4 旋转体 260
11.4.5 其他三维曲面绘图功能 264
11.4.6 复合曲面的组合 264
11.5 工程实例——地理数据可视化 266
11.5.1 分析数据 267
11.5.2 显示数据 268
11.6 本章小结 270
11.7 特殊字符、保留字和函数——二维 270
11.8 特殊字符、保留字和函数——三维 271
11.9 自测题 272
第12章 矩阵 277
12.1 概念:行为抽象 278
12.2 矩阵操作 278
12.2.1 矩阵乘法 278
12.2.2 矩阵除法 280
12.2.3 矩阵指数运算 280
12.3 在MATLAB中的实现 281
12.3.1 矩阵乘法 281
12.3.2 矩阵除法 282
12.4 坐标旋转 283
12.4.1 二维旋转 284
12.4.2 三维旋转 287
12.5 求解联立线性方程组 290
12.5.1 相交线 290
12.5.2 曲线拟合 292
12.6 工程实例 294
12.6.1 陶瓷合成 294
12.6.2 电路分析 295
12.7 本章小结 297
12.8 特殊字符、保留字和函数 297
12.9 自测题 297
第13章 图像 301
13.1 图像的性质 302
13.2 图像类型 302
13.2.1 真彩图像 303
13.2.2 灰度图像 303
13.2.3 索引图像 303
13.2.4 首选图像格式 304
13.3 读取、显示与写入图像 304
13.4 图像操作 305
13.4.1 缩放图像 305
13.4.2 色彩遮蔽 307
13.4.3 拼图制作 311
13.4.4 生成万花筒图像 315
13.4.5 曲面上的图像 317
13.5 工程实例——边缘检测 320
13.6 本章小结 323
13.7 特殊字符、保留字和函数 323
13.8 自测题 323
第14章 声音的处理 327
14.1 声音的物理性质 327
14.2 录音和回放 328
14.3 在MATLAB中的实现 329
14.4 时域操作 330
14.4.1 声音的剪辑和连接 330
14.4.2 音乐背景知识 333
14.4.3 改变声音频率的粗糙方法 334
14.4.4 改变声音频率的精细方法 335
14.5 快速傅立叶变换 338
14.5.1 背景知识 338
14.5.2 在MATLAB中的实现 339
14.5.3 简单频谱分析 340
14.6 频域操作 342
14.6.1 分析乐器的声音 342
14.6.2 将声音插入频谱 345
14.6.3 频谱操作 347
14.7 工程实例——石油钻塔结构的整体性 349
14.8 本章小结 351
14.9 特殊字符、保留字和函数 351
14.10 自测题 352
第15章 数值方法 355
15.1 插值 356
15.1.1 线性插值 356
15.1.2 三次样条插值 358
15.1.3 外推 360
15.2 曲线拟合 360
15.2.1 线性回归 361
15.2.2 多项式回归 362
15.2.3 实际应用 364
15.3 数值积分 366
15.3.1 求解完全积分 366
15.3.2 连续积分问题 367
15.4 数值微分 369
15.4.1 差分表达式 370
15.4.2 在MATLAB中的实现 371
15.5 工程实例——分析火箭数据 372
15.6 本章小结 377
15.7 特殊字符、保留字和函数 377
15.8 自测题 377
第16章 排序 385
16.1 算法代价度量 386
16.1.1 Big O算法的具体例子 386
16.1.2 复杂算法分析 388
16.2 数据排序算法 388
16.2.1 插入排序 389
16.2.2 冒泡排序 390
16.2.3 快速排序 392
16.2.4 原地置换快速排序 394
16.2.5 归并排序 395
16.2.6 桶排序 396
16.3 性能分析 397
16.4 排序算法应用 398
16.4.1 使用MATLAB内部排序算法 399
16.4.2 插入排序 401
16.4.3 冒泡排序 401
16.4.4 快速排序 401
16.4.5 归并排序 401
16.4.6 桶排序 401
16.5 工程实例——选择国家或地区 401
16.6 本章小结 404
16.7 特殊字符、保留字和函数 404
16.8 自测题 404
附录A MATLAB特殊字符、保留字和函数 407
附录B ASCII字符集 419
附录C 数的内部表示 421