学习和掌握科学计算应用软件——MATLAB核心模块的应用是利用该软件开展控制系统设计与分析、数字信号与数字图像处理、通信系统设计与仿真、金融数学分析等应用的基础。本书重点介绍了该软件的核心基础内容,包括MATLAB产品的体系,MATLAB桌面工具的使用方法,M语言编程方法,MATLAB进行数据可视化、分析处理的基本步骤等。
本书凝聚了作者从业多年来利用MATLAB解决各种工程问题时积累的应用经验。全书仅围绕MATLAB核心模块的基础内容展开,是学习和掌握MATLAB软件最基础的书籍,书中内容翔实、全面,用词简单、扼要,示例丰富,可以作为MATLAB软件的培训教材,也可以作为自学MATLAB应用软件的入门教程,还可以作为已经基本掌握MATLAB使用方法的工程技术人员提高MATLAB使用技巧的参考书。
初夏的上午时分,冉冉升起的艳阳正炙烤着北京CBD的写字楼,意式浓缩咖啡的醇香尚未散去,笔者的个人邮箱突然收到了一封来自某大学老师的电子邮件,咨询是否有计划重新编写《MATLAB基础与编程入门》。与此同时,西安电子科技大学出版社编辑的一通电话也问了我同样的问题,被称呼为“张老师”还多少有些不习惯。看来这本书的确需要根据新版本的MATLAB软件进行再一次的升级更新了。
笔者接触MATLAB软件还是在大学三年级的“自动控制原理”课程上,简单的几个命令就可以准确地绘制奈奎斯特曲线、波特图,完成复杂的矩阵运算,那时几张1.44英寸(注:1英寸=2.54厘米)的软盘就足够容纳所有的MATLAB安装程序包。到了今天,完整地将MATLAB软件安装到计算机内需要占据十几吉字节的存储空间。MATLAB应用软件体系庞大,功能丰富,包含众多工具,掌握其功能和工具的使用成为MATLAB初学者的最大障碍。应用MATLAB产品需要首先掌握其核心基础内容,包含MATLAB的产品体系、桌面工具,M语言编程,数据可视化以及数据分析的基本步骤和流程等,实际上,上述大部分功能都由MATLAB核心模块来提供,并不涉及具体的专业产品或者工具箱。利用这些基础功能,再结合自身的专业知识就可以解决很多领域的科学或者工程问题。
本书是学习、掌握MATLAB软件的基础书籍,第一版于2004年2月出版,之后更新出版了第二版和第三版。尽管这些年来MATLAB软件每年都在升级,但是很多MATLAB用户往往会选择自己最熟悉的那个版本软件,只有初学者才更愿意追逐产品的更新,使用最新版的软件,体会最新的功能。每一次MATLAB软件的升级都或多或少引入了一些新的功能,并且淘汰了一部分过时的内容。很多挚友希望看到本书能够反映MATLAB的新版本、新功能,于是,基于MATLAB Release 2020a的本书诞生了。
本书的基本结构与前面几个版本保持一致,围绕MATLAB 9.80版的核心模块展开,介绍了MATLAB数据类型与编程基础、数据图形的可视化功能和各种桌面工具的使用方法。与第三版相比较,本书删除了部分已经彻底淘汰的功能的介绍,修正了文字描述方面的错误,加入了部分新函数、新功能的描述,并且在对应的章节中介绍了新旧版本软件的变化,以保持对旧版本书籍及软件的向下兼容性。
本书从第一版到现在,均得到西安电子科技大学出版社毛红兵副总编辑的大力支持,在这里对她和出版社的其他同志表示衷心的感谢。感谢母校—北京航空航天大学对笔者的培养,从“艰苦朴素,勤奋好学,全面发展,勇于创新”到“德才兼备,知行合一”,从自动化学院到光电学院再到生物与医学工程学院,难忘主楼243、主南116、六号楼、新主楼和逸夫科学馆里的日日夜夜。感谢多年的同学、同事、好友以及师长,与你们一同学习、钻研MATLAB软件,学习和研究实时仿真、混合试验技术的日子让我终身受益。更要感谢我的父母、兄长和妻儿,我花费了太多时间在计算机前,没能很好地尽到自己应尽的义务和责任,如果没有家人对我的关心、支持和鼓励,也就没有今天本书的如期出版。
由于时间仓促,书中难免存在一些不足之处,诚望广大读者谅解,并且希望读者提出宝贵的意见和建议,以便再版时改进。如果需要获得本书所涉及的示例源代码、电子课件,或者对本书有任何疑问以及想法,可以通过电子邮件与作者直接联系。作者电子信箱为zhang_way@163.com。
作 者
2022年1月
第1章 MATLAB桌面环境 1
1.1 MATLAB产品族简介 1
1.1.1 MATLAB的产品体系 2
1.1.2 Simulink简介 6
1.1.3 Stateflow简介 8
1.1.4 自动化代码生成工具 9
1.2 MATLAB的桌面环境 11
1.2.1 MATLAB用户界面 12
1.2.2 MATLAB用户界面布局 15
1.2.3 修改窗体文本样式 18
1.3 Command Window和MATLAB
命令 20
1.3.1 在命令行窗体中执行命令 20
1.3.2 设置命令行窗体的数值
显示格式 23
1.3.3 常用的命令行窗体控制命令 25
1.4 Command History和历史记录 28
1.4.1 命令行历史窗体 28
1.4.2 diary命令 32
1.5 使用帮助和Function Browser 34
1.5.1 使用在线帮助 34
1.5.2 使用窗体帮助 37
1.5.3 函数浏览器 40
1.5.4 操作帮助的函数 42
1.6 Current Folder和搜索路径 43
1.6.1 当前路径察看器 43
1.6.2 工作目录 45
1.6.3 搜索路径 47
1.7 使用MATLAB命令收藏 50
本章小结 55
练习 56
第2章 矩阵和数组 57
2.1 向量、矩阵和数组的基本概念 57
2.2 创建向量 59
2.3 创建矩阵 62
2.3.1 直接输入法 62
2.3.2 工作空间浏览器 63
2.3.3 变量编辑器 66
2.4 索引 70
2.4.1 向量元素的访问 70
2.4.2 矩阵元素的访问 72
2.5 基本运算 74
2.5.1 矩阵生成函数 75
2.5.2 基本矩阵运算 76
2.5.3 基本数组运算 78
2.5.4 基本数学函数 82
2.5.5 矩阵(数组)操作函数 84
2.6 稀疏矩阵 87
2.7 多维数组 90
2.7.1 创建多维数组 90
2.7.2 多维数组的操作函数 94
本章小结 96
练习 96
第3章 数据类型基础 98
3.1 MATLAB提供的数据类型 98
3.2 数值类型 99
3.2.1 基本数值类型入门 99
3.2.2 整数类型数据运算 102
3.2.3 MATLAB的常量 107
3.2.4 空数组 110
3.2.5 数据类型转换 112
3.3 逻辑类型 114
3.3.1 逻辑数据类型 114
3.3.2 逻辑运算 116
3.3.3 关系运算 118
3.3.4 运算符的优先级 121
3.4 字符向量与字符串数组 122
3.4.1 字符向量 122
3.4.2 字符串数组 127
3.4.3 处理字符向量和字符串的函数 132
3.4.4 格式化字符串 137
3.4.5 格式化输入/输出 141
3.5 元胞数组 146
3.5.1 元胞数组的创建 147
3.5.2 元胞数组基本操作 149
3.5.3 元胞数组操作函数 154
3.6 结构 157
3.6.1 结构数组的创建 157
3.6.2 结构数组的基本操作 161
3.6.3 结构操作函数 163
本章小结 166
练习 167
第4章 MATLAB编程基础 168
4.1 M语言编辑器 168
4.2 脚本文件 169
4.3 流程控制 173
4.3.1 选择结构 173
4.3.2 循环结构 181
4.3.3 break语句和continue语句 184
4.3.4 提高运算性能 186
4.4 函数文件 190
4.4.1 基本结构 190
4.4.2 输入/输出参数 195
4.4.3 子函数 196
4.4.4 局部变量和全局变量 197
4.4.5 函数执行规则 200
4.5 M文件调试 202
4.5.1 一般调试过程 202
4.5.2 条件断点 206
4.5.3 命令行调试 207
本章小结 208
练习 208
第5章 导入/导出数据文件 210
5.1 高级例程函数 210
5.1.1 MAT数据文件操作 210
5.1.2 文本文件操作 218
5.1.3 导入其他类型数据文件 219
5.1.4 导出二进制格式数据 224
5.2 低级例程函数 225
5.2.1 打开与关闭文件 226
5.2.2 读写数据 227
5.2.3 文件位置指针 230
5.3 数据导入向导 234
本章小结 239
练习 240
第6章 图形基础 241
6.1 概述 241
6.2 交互式绘图 243
6.2.1 工具栏快速绘图 243
6.2.2 交互式绘图工具 247
6.3 命令绘图 270
6.3.1 基本绘图命令 270
6.3.2 设置曲线的样式属性 272
6.3.3 使用子图 278
6.3.4 控制绘图区域 280
6.3.5 格式化绘图命令 285
6.3.6 特殊图形函数 292
6.4 基本三维绘图 299
6.5 图形显示与调色板 304
6.6 保存和输出图形 309
6.6.1 保存图形 309
6.6.2 导出与打印图形 311
6.7 简单数据分析工具 313
6.7.1 简单数据统计 313
6.7.2 插值运算 316
6.7.3 曲线拟合 320
6.7.4 基本拟合工具 324
本章小结 329
练习 330
第7章 图形用户界面基础 332
7.1 句柄图形入门 332
7.2 GUIDE工具入门 341
7.2.1 GUIDE工具的界面 342
7.2.2 创建图形用户界面外观 345
7.2.3 图形用户界面编程 352
7.3 应用设计工具基础 357
本章小结 364
练习 364
附录 366
附录A MATLAB关键字 366
附录B MATLAB可用的TEX
字符集 367
附录C 数据文件IO函数 368
附录D 可读的常见文件类型 370
附录E 数据IO格式化字符向量 371
附录F MATLAB运算符的优先级 372
附录G 实用命令 373
参考文献 375