《MATLAB 2020从入门到精通》以MATLAB 2020版本的功能叙述为主,由浅入深地全面讲解MATLAB软件的知识。本书自始至终采用实例描述,内容完整且各章相对独立,是一本简明的MATLAB参考书。
本书涉及面广,涵盖一般用户需要使用的各种功能,并详细介绍MATLAB常用工具箱的使用。全书共15章,前12章主要介绍MATLAB的基础知识、数组及其操作、数值计算、数据分析、符号运算、关系运算与逻辑运算、函数、程序设计、数据图形可视化、句柄图形对象、Simulink仿真等内容,后3章重点介绍MATLAB在图像处理、信号处理、小波分析中的应用。
本书以实用为目标,讲解细致,既适合作为高等院校理工科研究生、本科生教学用书,也可作为广大科研人员和工程技术人员的参考用书。
封面图
目录
- 前言
- 第1章 初识MATLAB1
- 1.1 MATLAB简介1
- 1.2 MATLAB R2020a的工作环境3
- 1.2.1 操作界面简介3
- 1.2.2 命令行窗口3
- 1.2.3 命令历史记录窗口7
- 1.2.4 变量命名规则8
- 1.2.5 当前文件夹窗口和路径管理9
- 1.2.6 搜索路径10
- 1.2.7 工作区窗口和数组编辑器12
- 1.2.8 变量的编辑命令13
- 1.2.9 存取数据文件14
- 1.3 MATLAB R2020a的帮助系统15
- 1.3.1 纯文本帮助15
- 1.3.2 帮助导航16
- 1.3.3 示例帮助16
- 1.4 小结17
- 第2章 MATLAB语言基础18
- 2.1 基本概念18
- 2.1.1 MATLAB数据类型概述18
- 2.1.2 整数类型19
- 2.1.3 浮点数类型21
- 2.1.4 复数23
- 2.1.5 无穷量和非数值量24
- 2.1.6 数值类型的显示格式24
- 2.1.7 确定数值类型的函数25
- 2.1.8 常量与变量26
- 2.1.9 标量、向量、矩阵与数组26
- 2.1.10 字符串27
- 2.1.11 运算符28
- 2.1.12 命令、函数、表达式和语句30
- 2.2 向量运算31
- 2.2.1 向量的生成31
- 2.2.2 向量的加、减、乘、除运算33
- 2.2.3 向量的点积、叉积运算34
- 2.3 矩阵运算35
- 2.3.1 矩阵元素的存储次序36
- 2.3.2 矩阵元素的表示及相关操作36
- 2.3.3 矩阵的创建39
- 2.3.4 矩阵的代数运算46
- 2.4 字符串运算53
- 2.4.1 字符串变量与一维字符数组53
- 2.4.2 对字符串的操作54
- 2.4.3 二维字符数组56
- 2.5 小结57
- 第3章 数组及其操作58
- 3.1 MATLAB中的数组58
- 3.2 数组的创建59
- 3.2.1 创建空数组59
- 3.2.2 创建一维数组59
- 3.2.3 创建二维数组60
- 3.2.4 创建三维数组61
- 3.2.5 创建低维标准数组65
- 3.2.6 创建高维标准数组66
- 3.3 数组的属性67
- 3.3.1 数组的结构68
- 3.3.2 数组的大小68
- 3.3.3 数组的维度69
- 3.3.4 数组的数据类型70
- 3.3.5 数组的内存占用71
- 3.4 创建特殊数组71
- 3.4.1 0-1数组72
- 3.4.2 对角数数组72
- 3.4.3 随机数组73
- 3.4.4 魔方数组74
- 3.5 数组操作74
- 3.5.1 数组的保存和装载74
- 3.5.2 数组索引和寻址75
- 3.5.3 数组的扩展和裁剪78
- 3.5.4 数组形状的改变84
- 3.5.5 数组运算87
- 3.5.6 数组的查找90
- 3.5.7 数组的排序91
- 3.5.8 高维数组的降维92
- 3.6 多维数组及其操作93
- 3.6.1 多维数组的属性93
- 3.6.2 多维数组的操作94
- 3.7 小结97
- 第4章 数值计算98
- 4.1 矩阵分析98
- 4.1.1 使用norm函数进行范数分析98
- 4.1.2 使用normest函数进行范数分析100
- 4.1.3 条件数分析101
- 4.1.4 数值矩阵的行列式103
- 4.1.5 符号矩阵的行列式104
- 4.1.6 化零矩阵104
- 4.2 线性方程组求解105
- 4.2.1 直接法106
- 4.2.2 迭代法107
- 4.3 矩阵分解111
- 4.3.1 Cholesky分解111
- 4.3.2 使用Cholesky分解求解方程组112
- 4.3.3 不完全Cholesky分解113
- 4.3.4 LU分解114
- 4.3.5 不完全LU分解115
- 4.3.6 QR分解116
- 4.3.7 处理QR分解结果118
- 4.3.8 奇异值分解118
- 4.4 特征值分析119
- 4.4.1 特征值和特征向量120
- 4.4.2 求稀疏矩阵的特征值和特征向量121
- 4.4.3 特征值问题的条件数122
- 4.4.4 特征值的复数问题123
- 4.5 函数的零点125
- 4.5.1 一元函数的零点125
- 4.5.2 多元函数的零点126
- 4.6 数值积分128
- 4.6.1 一元函数的数值积分128
- 4.6.2 矩形区域的多重数值积分130
- 4.6.3 变量区域的多重数值积分130
- 4.7 概率论与数理统计134
- 4.7.1 双变量的概率分布134
- 4.7.2 不同概率分布135
- 4.7.3 数据分布分析137
- 4.8 小结138
- 第5章 数据分析139
- 5.1 插值139
- 5.1.1 一维插值命令及实例139
- 5.1.2 二维插值命令及实例142
- 5.1.3 样条插值144
- 5.2 曲线拟合145
- 5.2.1 多项式拟合146
- 5.2.2 加权最小方差拟合原理及实例147
- 5.3 曲线拟合图形界面149
- 5.3.1 曲线拟合窗口149
- 5.3.2 绘制拟合残差图形151
- 5.3.3 进行数据预测151
- 5.4 傅里叶分析152
- 5.4.1 离散傅里叶变换152
- 5.4.2 FFT和DFT155
- 5.5 微分方程157
- 5.5.1 常微分方程的数值解157
- 5.5.2 偏微分方程的数值解160
- 5.6 小结165
- 第6章 符号运算166
- 6.1 符号运算的基本概念166
- 6.1.1 符号对象166
- 6.1.2 创建符号对象的函数sym( )、syms( )与class( )167
- 6.1.3 符号常量168
- 6.1.4 符号变量169
- 6.1.5 符号表达式、符号函数与符号方程170
- 6.1.6 函数symvar( )171
- 6.1.7 数组、矩阵与符号矩阵172
- 6.2 符号运算的基本内容174
- 6.2.1 符号变量代换及其函数subs( )174
- 6.2.2 将符号对象转换为数值对象的函数175
- 6.2.3 符号表达式的化简177
- 6.2.4 其他符号运算函数181
- 6.2.5 两种特定的符号运算函数182
- 6.3 符号微积分运算及应用184
- 6.3.1 符号极限运算185
- 6.3.2 符号微分运算187
- 6.3.3 符号积分运算188
- 6.4 符号矩阵及其运算189
- 6.4.1 符号矩阵的建立与访问189
- 6.4.2 符号矩阵的基本运算194
- 6.4.3 符号矩阵的微分与积分199
- 6.4.4 符号矩阵的Laplace变换200
- 6.5 符号方程求解201
- 6.5.1 符号代数方程求解201
- 6.5.2 符号微分方程求解202
- 6.6 符号函数图形计算器FUNTOOL205
- 6.6.1 符号函数图形计算器的界面205
- 6.6.2 符号函数图形计算器的输入框操作206
- 6.6.3 符号函数图形计算器的按钮操作206
- 6.7 小结207
- 第7章 关系运算与逻辑运算208
- 7.1 逻辑类型的数据208
- 7.2 关系运算209
- 7.3 逻辑运算210
- 7.3.1 逐个元素的逻辑运算210
- 7.3.2 捷径逻辑运算211
- 7.3.3 逐位逻辑运算212
- 7.4 逻辑函数与测试函数213
- 7.5 运算优先级214
- 7.6 小结215
- 第8章 函数216
- 8.1 M文件216
- 8.1.1 M文件概述216
- 8.1.2 局部变量与全局变量217
- 8.1.3 M文件的编辑与运行218
- 8.1.4 M文件的结构219
- 8.1.5 脚本文件219
- 8.1.6 函数文件220
- 8.1.7 函数调用221
- 8.1.8 M文件调试工具224
- 8.1.9 M文件分析工具226
- 8.2 MATLAB的变量229
- 8.2.1 M文件的变量类型229
- 8.2.2 M文件的关键字230
- 8.3 函数类型230
- 8.3.1 匿名函数230
- 8.3.2 M文件主函数232
- 8.3.3 嵌套函数232
- 8.3.4 子函数233
- 8.3.5 私有函数233
- 8.3.6 重载函数233
- 8.4 参数传递234
- 8.4.1 参数传递概述234
- 8.4.2 输入和输出参数的数目234
- 8.4.3 可变数目的参数传递235
- 8.4.4 返回被修改的输入参数236
- 8.4.5 全局变量237
- 8.5 小结238
- 第9章 程序设计239
- 9.1 MATLAB的程序结构239
- 9.1.1 if分支结构239
- 9.1.2 switch分支结构241
- 9.1.3 while循环结构242
- 9.1.4 for循环结构243
- 9.2 MATLAB的控制245
- 9.2.1 continue命令245
- 9.2.2 break命令246
- 9.2.3 return命令247
- 9.2.4 input命令247
- 9.2.5 keyboard命令248
- 9.2.6 error和warning命令248
- 9.3 数据的输入与输出249
- 9.3.1 键盘输入命令input250
- 9.3.2 屏幕输出命令disp250
- 9.3.3 M数据文件的存储/加载命令save/load250
- 9.3.4 格式化文本文件的存储/读取命令fprintf/fscanf250
- 9.3.5 二进制数据文件的存储/读取命令fwrite/fread251
- 9.3.6 数据文件行的存储/读取命令fgetl/fgets251
- 9.4 MATLAB文件操作251
- 9.5 面向对象程序设计253
- 9.5.1 面向对象程序设计的基本方法253
- 9.5.2 面向对象程序设计实例255
- 9.6 MATLAB程序优化258
- 9.6.1 效率优化(时间优化)258
- 9.6.2 内存优化(空间优化)259
- 9.6.3 编程注意事项264
- 9.6.4 几个常用数学方法的算法程序265
- 9.7 程序调试274
- 9.7.1 程序调试命令274
- 9.7.2 程序剖析275
- 9.8 小结279
- 第10章 数据图形可视化280
- 10.1 MATLAB图形窗口280
- 10.1.1 创建图形窗口280
- 10.1.2 关闭与清除图形框281
- 10.2 二维图形的绘制281
- 10.2.1 绘制二维曲线282
- 10.2.2 绘制离散序列图283
- 10.2.3 其他类型的二维图284
- 10.2.4 二维图形的修饰286
- 10.2.5 子图288
- 10.3 三维图形的绘制290
- 10.3.1 三维折线及曲线的基本绘图命令290
- 10.3.2 绘制三维曲面292
- 10.3.3 三维图形的视角变换295
- 10.3.4 其他图形函数296
- 10.4 图像299
- 10.4.1 图像的类别和显示299
- 10.4.2 图像的读写301
- 10.5 函数绘制302
- 10.5.1 一元函数绘图302
- 10.5.2 二元函数绘图303
- 10.6 图形对象及其属性设置305
- 10.6.1 MATLAB的图形对象305
- 10.6.2 句柄——图形对象的标识307
- 10.6.3 图形对象属性的获取与设定307
- 10.6.4 图形对象常用属性309
- 10.6.5 图形可视编辑工具310
- 10.7 小结311
- 第11章 句柄图形对象312
- 11.1 句柄图形对象概述312
- 11.2 get和set函数314
- 11.2.1 get函数314
- 11.2.2 set函数315
- 11.3 查找对象318
- 11.4 图形窗口对象320
- 11.5 核心图形对象321
- 11.6 默认属性322
- 11.7 非文件式属性324
- 11.8 小结325
- 第12章 Simulink仿真系统326
- 12.1 Simulink基础知识326
- 12.1.1 Simulink概述326
- 12.1.2 Simulink的特点327
- 12.1.3 Simulink工作环境328
- 12.1.4 Simulink仿真的基本步骤329
- 12.2 模型的创建330
- 12.2.1 模型概念及文件操作330
- 12.2.2 模块操作332
- 12.2.3 信号线操作334
- 12.2.4 对模型的注释336
- 12.2.5 Source库中常用的模块336
- 12.2.6 Sink库中常用的模块342
- 12.2.7 仿真的配置347
- 12.2.8 启动仿真351
- 12.3 Simulink系统仿真原理352
- 12.3.1 Simulink求解器概念353
- 12.3.2 系统过零的概念与解决方案354
- 12.3.3 系统代数环的概念与解决方案358
- 12.4 高级积分器360
- 12.5 小结363
- 第13章 MATLAB与图像处理364
- 13.1 图像类型364
- 13.1.1 真彩色图像364
- 13.1.2 索引色图像365
- 13.1.3 灰度图像365
- 13.1.4 二值图像366
- 13.1.5 多帧图像366
- 13.1.6 读写图像数据367
- 13.1.7 查看图像文件信息368
- 13.2 显示图像369
- 13.2.1 默认显示方式369
- 13.2.2 添加颜色条370
- 13.2.3 显示多帧图像370
- 13.2.4 显示动画371
- 13.2.5 三维材质图像371
- 13.3 图像的灰度变换372
- 13.3.1 图像的直方图372
- 13.3.2 灰度变换373
- 13.3.3 均衡直方图375
- 13.4 小结376
- 第14章 MATLAB与信号处理377
- 14.1 产生信号377
- 14.1.1 锯齿波、三角波和矩形波发生器378
- 14.1.2 周期sinc波379
- 14.1.3 高斯调幅正弦波380
- 14.1.4 调频信号381
- 14.1.5 高斯分布随机序列382
- 14.2 随机信号处理383
- 14.2.1 随机信号的互相关函数383
- 14.2.2 随机信号的互协方差函数385
- 14.2.3 谱分析——pwelch函数386
- 14.3 模拟滤波器设计388
- 14.3.1 巴特沃斯滤波器388
- 14.3.2 切比雪夫I型滤波器389
- 14.3.3 切比雪夫Ⅱ型滤波器390
- 14.4 IIR数字滤波器设计391
- 14.4.1 巴特沃斯数字滤波器设计392
- 14.4.2 切比雪夫I 型数字滤波器设计393
- 14.4.3 切比雪夫II 型数字滤波器设计394
- 14.5 小结395
- 第15章 MATLAB与小波分析396
- 15.1 傅里叶变换到小波分析396
- 15.1.1 傅里叶变换397
- 15.1.2 小波分析399
- 15.1.3 常用的小波函数400
- 15.2 Mallat算法401
- 15.2.1 Mallat算法原理401
- 15.2.2 Mallat算法示例404
- 15.3 小波分析工具箱408
- 15.4 小波分析用例409
- 15.4.1 信号压缩409
- 15.4.2 信号去噪410
- 15.5 小结414
- 附录 MATLAB基本命令415