描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787512424562
MATLAB/Simulink工具箱众多,功能强大,很少有人能把这个软件的各方面都吃透用精。本书的五位作者都是来自各论坛的资深版主,他们在不同的领域各有建树(大学教授、高级工程师、创业公司CEO),也都有各自的著作,这次愿意与其他各位作者合作,一是相互欣赏,二是深知术业有专攻,只有大家通力合作,才能把这样的一本偏基础的书写好,让读者读有所感、学有所得,真正受益。
本书配有学习课件。课件和所有程序源代码均可通过扫描书中二维码免费获得。
为方便读者的学习和使用,本书免费配备所有案例的源程序以及用于教学和自学的PPT课件。
本书可作为一般读者自学并掌握MATLAB语言的参考书,也可作为高等院校理工类本科生、研究生系统学习MATLAB的教材或参考书,还可作为科研人员和工程技术人员应用MATLAB解决实际问题的参考用书。
1.1 MATLAB的那些事儿………… 1
1.1.1 MATLAB的起源……………… 1
1.1.2 MATLAB的版本信息………… 1
1.1.3 MATLAB软件的系统组成……… 3
1.1.4 MATLAB的产品构成………… 4
1.1.5 Simulink的产品构成…………… 5
1.1.6 MATLAB/Simulink的应用领域…………… 7
1.2 MATLAB的安装与启动……… 7
1.2.1 MATLAB的安装……………… 7
1.2.2 MATLAB的启动……………… 7
1.3 MATLAB工作界面…………… 8
1.3.1 工作界面布局………………… 8
1.3.2 工作界面的显示属性调整……… 9
1.3.3 工作界面的布局调整…………… 9
1.4 命令窗口(Command Window)…………………… 10
1.4.1 初识MATLAB命令………… 10
1.4.2 分号的重要作用……………… 11
1.4.3 MATLAB命令窗口中常用的快捷键…………… 11
1.5 历史命令窗口(Command History)…………………… 11
1.6 当前目录窗口(Current Directory)………………… 12
1.6.1 MATLAB搜索路径机制和搜索顺序……………… 12
1.6.2 MATLAB当前目录管理……… 13
1.6.3 MATLAB搜索路径设置……… 13
1.7 工作空间窗口(Workspace)…… 14
1.8 程序编辑窗口(Editor)………… 15
1.8.1 编辑M 文件………………… 15
1.8.2 M 文件的调用………………… 16
1.8.3 MATLAB程序编辑窗口中常用的快捷键………… 17
1.9 MATLAB帮助系统…………… 17
1.9.1 MATLAB命令窗口帮助系统… 17
1.9.2 Help帮助浏览器……………… 18
1.10 参考文献……………………… 20
第2章 MATLAB基本操作…………… 21
2.1 变量的定义与数据类型……… 21
2.1.1 变量的定义与赋值…………… 21
2.1.2 MATLAB中的常量…………… 21
2.1.3 MATLAB中的关键字……… 23
2.1.4 数据类型……………………… 23
2.1.5 数据输出格式………………… 24
2.2 常用函数………………………… 24
2.3 数组的定义……………………… 26
2.3.1 向量的定义…………………… 26
2.3.2 矩阵的定义…………………… 27
2.3.3 特殊矩阵……………………… 29
2.3.4 高维数组……………………… 31
2.3.5 访问数组元素………………… 32
2.3.6 定义元胞数组(Cell Array) …… 33
2.3.7 定义结构体数组……………… 34
2.3.8 几种数组的转换……………… 35
2.3.9 定义数据集数组……………… 36
2.3.10 定义表格型数组……………… 37
2.4 数组运算………………………… 37
2.4.1 矩阵的算术运算……………… 37
2.4.2 矩阵的关系运算……………… 39
2.4.3 矩阵的逻辑运算……………… 40
2.4.4 矩阵的其他常用运算………… 41
2.5 MATLAB常用标点符号……… 43
2.6 MATLAB命令窗口中常用的快捷命令………………… 44
2.7 参考文献………………………… 45
第3章 MATLAB绘图与可视化……… 46
3.1 图形对象与图形对象句柄……… 46
3.1.1 句柄式图形对象……………… 46
3.1.2 获取图形对象属性名称和属性值………………… 47
3.1.3 设置图形对象属性值………… 48
3.2 二维图形绘制…………………… 48
3.2.1 基本二维绘图函数…………… 48
3.2.2 二维图形修饰和添加注释………51
3.2.3 常用统计绘图函数…………… 56
3.2.4 特殊二维绘图函数…………… 57
3.3 三维图形绘制…………………… 59
3.3.1 常用三维绘图函数…………… 59
3.3.2 三维图形的修饰和添加注释…… 64
3.4 图形的打印和输出……………… 68
3.4.1 把图形复制到剪贴板………… 68
3.4.2 把图形导出到文件…………… 70
3.4.3 打印图形……………………… 72
3.5 动画制作………………………… 74
3.5.1 彗星运行轨迹动画…………… 74
3.5.2 霓虹闪烁动画………………… 75
3.5.3 电影动画……………………… 76
3.5.4 录制AVI格式视频动画……… 77
3.5.5 制作GIF格式动画…………… 79
3.6 参考文献………………………… 80
第4章 MATLAB程序设计…………… 81
4.1 M 文件———脚本文件和函数文件………………… 81
4.1.1 脚本文件……………………… 81
4.1.2 函数文件……………………… 81
4.2 MATLAB程序流程控制与调试………………………… 82
4.2.1 MATLAB程序流程控制……… 82
4.2.2 MATLAB程序调试…………… 84
4.3 程序流程控制示例……………… 86
4.3.1 概 述……………………… 86
4.3.2 问题分析……………………… 86
4.3.3 MATLAB求解……………… 87
4.4 匿名函数、子函数与嵌套函数… 88
4.4.1 匿名函数……………………… 88
4.4.2 子函数……………………… 90
4.4.3 嵌套函数……………………… 90
4.4.4 嵌套函数的彼此调用关系……… 94
4.5 匿名函数、子函数与嵌套函数应用案例……………… 98
4.5.1 匿名函数应用实例…………… 98
4.5.2 子函数和嵌套函数应用实例… 102
4.6 编写高效的MATLAB程序… 107
4.6.1 重新认识循环……………… 107
4.6.2 提高代码效率的方法………… 113
4.7 养成良好的编程风格………… 124
4.7.1 命名规则…………………… 124
4.7.2 程序设计注意事项…………… 126
4.7.3 程序编排与注释…………… 126
4.8 参考文献……………………… 127
第5章 图形用户界面(GUI)编程…… 128
5.1 图形对象……………………… 128
5.1.1 图形对象的类型…………… 129
5.1.2 图形对象的属性…………… 132
5.1.3 图形对象的操作…………… 135
5.2 图形用户界面的设计原则和步骤………………… 140
5.2.1 图形用户界面设计原则……… 140
5.2.2 图形用户界面的设计步骤…… 141
5.3 开发图形用户界面的方法…… 142
5.4 直接编写M 文件开发图形用户界面……………… 145
5.4.1 M 文件的类型……………… 145
5.4.2 根对象……………………… 149
5.4.3 图形窗口对象……………… 152
5.4.4 坐标轴对象………………… 154
5.4.5 用户界面控件对象…………… 156
5.4.6 用户菜单对象……………… 168
5.4.7 用户现场菜单对象…………… 169
5.4.8 用户工具条对象…………… 170
5.5 利用GUIDE工具开发图形用户界面…………………… 172
5.5.1 GUIDE及其组成部分……… 172
5.5.2 GUIDE产生的FIG文件和M 文件………………… 173
5.5.3 GUIDE创建的GUI中的数据管理…………………… 176
5.5.4 利用GUIDE创建图形用户界面……………………… 177
5.6 典型案例介绍………………… 181
5.6.1 基于列表控件的图片浏览器… 181
5.6.2 在GUI中对鼠标进行控制…… 185
5.6.3 实现同一GUI内的不同控件之间的数据传递…………… 188
5.6.4 实现不同GUI之间的数据传递………………………… 193
5.6.5 在GUI中控制Simulink仿真过程………………………… 197
第6章 MATLAB与TXT文件的数据交换…………………………… 201
6.1 案例背景……………………… 201
6.2 从TXT文件中读取数据…… 201
6.2.1 利用数据导入向导导入TXT文件……………………… 202
6.2.2 调用高级函数读取数据……… 205
6.2.3 调用低级函数读取数据……… 215
6.3 把数据写入TXT文件……… 222
6.3.1 调用dlmwrite函数写入数据… 222
6.3.2 调用fprintf函数写入数据…… 223
6.4 参考文献……………………… 226
第7章 MATLAB与Excel文件的数据交换………………………… 227
7.1 利用数据导入向导导入Excel文件…………………………… 227
7.2 调用函数读写Excel文件…… 228
7.2.1 调用xlsfinfo函数获取文件信息………………………… 228
7.2.2 调用xlsread函数读取数据…… 228
7.2.3 调用xlswrite函数把数据写入Excel文件……………… 231
7.3 Excel Link宏……………… 232
7.3.1 Excel 2003加载Excel link宏………………………… 233
7.3.2 使用Excel link宏………… 234
7.3.3 Excel 2007与Excel 2010加载和使用宏………………… 237
7.4 参考文献……………………… 240
第8章 数据库连接…………………… 241
8.1 案例背景……………………… 241
8.2 MATLAB实现……………… 241
8.2.1 Database工具箱简介………… 241
8.2.2 Database工具箱函数………… 241
8.2.3 数据库数据读取…………… 242
8.2.4 数据库数据写入…………… 246
8.3 网络数据读取………………… 248
8.3.1 读取Yahoo数据…………… 248
8.3.2 读取Google数据…………… 250
8.4 参考文献……………………… 251
第9章 符号计算……………………… 252
9.1 符号对象和符号表达式……… 252
9.1.1 符号对象的创建…………… 252
9.1.2 符号表达式………………… 253
9.1.3 运算符……………………… 253
9.1.4 符号计算与数值计算结合…… 254
9.2 符号微积分…………………… 255
9.2.1 极限、导数和级数的符号计算… 255
9.2.2 符号积分计算……………… 257
9.3 符号方程求解………………… 258
9.3.1 符号代数方程求解…………… 258
9.3.2 符号常微分方程求解………… 259
9.4 参考文献……………………… 263
第10章 数值积分计算……………… 264
10.1 矩形区域积分以及离散数据积分…………………… 264
10.1.1 矩形区域积分……………… 264
10.1.2 离散数据积分……………… 266
10.2 含参数积分…………………… 267
10.3 一般区域二重和三重积分…… 269
10.3.1 概 要……………………… 269
10.3.2 一般区域二重积分的计算…… 270
10.3.3 一般区域三重积分的计算…… 272
10.4 一般区域n 重积分………… 274
10.5 蒙特卡洛法计算n 重积分… 277
10.5.1 概 述……………………… 277
10.5.2 基本的蒙特卡洛积分法…… 277
10.5.3 等分布序列的蒙特卡洛法…… 278
10.6 参考文献……………………… 281
第11章 方程与方程组的数值求解… 282
11.1 概 述………………………… 282
11.2 MATLAB求解方程(组)的函数及其用法……………… 282
11.2.1 左除“”与右除“/” ………… 282
11.2.2 fzero函数………………… 283
11.2.3 roots函数………………… 284
11.2.4 fsolve函数………………… 285
11.2.5 含参数方程组求解………… 286
11.3 应用扩展……………………… 287
11.3.1 等额还款模型……………… 287
11.3.2 MATLAB编程求解等额还款模型…………………… 288
11.4 参考文献……………………… 289
第12章 常微分方程(组)数值求解… 290
12.1 数值求解常微分方程(组)函数概述………………… 290
12.1.1 概 述……………………… 290
12.1.2 初值问题求解函数………… 290
12.1.3 延迟问题以及边值问题求解函数
…………………………… 291
12.1.4 求解前的准备工作………… 292
12.2 非刚性/刚性常微分方程初值问题求解……………… 292
12.2.1 概 述……………………… 292
12.2.2 非刚性问题举例…………… 292
12.2.3 刚性问题举例……………… 294
12.3 隐式微分方程(组)求解……… 297
12.3.1 概 述……………………… 297
12.3.2 利用solve函数…………… 297
12.3.3 利用fzero/fsolve函数和ode15i函数…………… 298
12.4 微分代数方程(DAE)与延迟微分方程(DDE)求解……… 302
12.4.1 概 述……………………… 302
12.4.2 微分代数方程举例………… 302
12.4.3 延迟微分方程(DDE)举例…… 307
12.5 边值问题求解………………… 310
12.5.1 概 述……………………… 310
12.5.2 求解案例…………………… 310
12.6 参考文献……………………… 314
第13章 线性规划问题……………… 315
13.1 案例背景……………………… 315
13.1.1 线性规划应用……………… 315
13.1.2 线性规划的求解方法……… 316
13.2 线性规划的标准型…………… 316
13.3 线性规划问题的MATLAB求解………………………… 316
13.4 线性规划案例分析…………… 318
13.4.1 传统内点法求解…………… 318
13.4.2 单纯形法求解……………… 319
13.5 案例扩展———含参数线性规划……………………… 320
13.5.1 目标函数含参数…………… 320
13.5.2 约束函数含参数…………… 321
13.6 参考文献……………………… 322
第14章 非线性优化问题…………… 323
14.1 理论背景……………………… 323
14.2 理论模型……………………… 323
14.2.1 无约束非线性优化………… 323
14.2.2 约束非线性优化…………… 323
14.3 MATLAB实现……………… 324
14.3.1 fminunc函数(无约束优化) … 324
14.3.2 fminsearch函数…………… 327
14.3.3 fmincon函数……………… 329
14.4 案例扩展……………………… 333
14.4.1 大规模优化问题…………… 333
14.4.2 含参数优化问题…………… 334
14.5 参考文献……………………… 335
第15章 小问题———公共设施选址……………… 336
15.1 案例背景……………………… 336
15.1.1 小问题……………… 336
15.1.2 垃圾场选址问题…………… 336
15.2 小问题的MATLAB求解………………………… 337
15.2.1 fminimax函数……………… 337
15.2.2 垃圾场选址问题求解……… 338
15.3 案例扩展……………………… 339
15.4 参考文献……………………… 341
第16章 概率分布与随机数………… 342
16.1 概率分布…………………… 342
16.1.1 概率分布的定义…………… 342
16.1.2 几种常用概率分布………… 342
16.1.3 概率密度、分布和逆概率分布函数值的计算………… 345
16.2 生成一元分布随机数………… 347
16.2.1 均匀分布随机数和标准正态分布随机数……………… 347
16.2.2 常见一元分布随机数……… 350
16.3 生成多元分布随机数………… 355
16.4 参考文献……………………… 356
第17章 描述性统计量和统计图…… 357
第18章 参数估计与假设检验……… 374
第19章 回归分析…………………… 382
第20章 多项式回归与数据插值…… 417
第21章 MATLAB程序编译………… 445
第22章 系统级仿真工具Simulink及应用……………………… 501
与朋友茶余饭后聊天时,时常有人大发感慨:“现在的人是越来越离不开电脑了,要是没有电脑该怎么办啊!”我也禁不住感慨:“越来越多的人是离不开MATLAB了,没有MATLAB就做不成研究了。”事实的确如此,MATLAB已经不再是诞生之初用于线性代数计算的接口程序,而是计算软件中的“巨无霸”,已经在自然科学、社会生产和科学研究等各领域得到了广泛的应用。有人在用MATLAB 作数据分析,有人在用MATLAB
作算法设计,有人在用MATLAB作建模仿真,还有人在用MATLAB作软件开发……往小了说,MATLAB能帮我们炒股赚钱;往大了说,MATLAB能帮助军事专家设计尖端武器。试想一下,或许几年以后,朋友之间打招呼的问候语就是:您今天MATLAB了吗? 如果到那时您还不会MATLAB,您很可能就Out啦!
如果您目前还是一个MATLAB零基础的读者,您大可不必烦恼,本书就是专门为您准备的,它将带领您走进MATLAB的殿堂,从入门到精通。本书编写的宗旨就是引领读者从零基础入门,由浅入深地学习,先熟悉MATLAB“草稿纸式”的编程语言和语法规则,让读者能够调用其内部函数做“傻瓜式”的计算,然后慢慢了解MATLAB自带的包罗万象的工具箱,在此基础上可以根据自己的算法熟练地进行扩展编程。在这个过程中,读者会在不知不觉中成为精通MATLAB的高手。
本书作者团队是多学科、跨专业的组合,已经在北京航空航天大学出版社出版了4本MATLAB语言及其应用相关的图书,受到广大读者的普遍欢迎和一致好评,在此,向我们的读者和忠实粉丝们表示感谢! 这4本图书分别是:
《MATLAB统计分析与应用:40个案例分析》(第2版),谢中华编著,2015年5月出版。
《MATLAB高效编程技巧与应用:25个案例分析》,吴鹏编著,2010年6月出版。
《MATLAB N 个实用技巧———MATLAB中文论坛精华总结》(第2版),刘焕进等编著,2016年10月出版。
《金融数量分析———基于MATLAB编程》(第3版),郑志勇编著,2015年6月出版。
MATLAB中文论坛(http://www.ilovematlab.cn/)专门为这些著作开设了读者在线交流平台,让读者能够与作者作近乎面对面的交流,解决大家在学习MATLAB过程中遇到的各种问题,分享彼此的学习经验。本书将继续延续这一优良传统,通过在线交流平台http://www.ilovematlab.cn/forum-263-1.html集结大家展开讨论,共同进步!
本书配有大量精心挑选的案例,每个案例都配有注释详尽并且高效率的MATLAB程序,旨在不仅教读者使用MATLAB,还教读者写出高效率的MATLAB代码。这些MATLAB程序在MATLAB
R2017b下经过了验证,均能够正确执行,读者可将自己的MATLAB更新至较新的版本,以避免出现不必要的问题。本书为读者免费提供程序源代码以及PPT 课件,以二维码的形式印在扉页及作者简介后,请扫描二维码下载。
本书内容分为22章:第1章,MATLAB 简介;第2 章,MATLAB 基本操作;第3 章,MATLAB绘图与可视化;第4章,MATLAB程序设计;第5章,图形用户界面(GUI)编程;第6章,MATLAB与TXT文件的数据交换;第7章,MATLAB与Excel文件的数据交换;第8章,数据库连接;第9章,符号计算;第10章,数值积分计算;第11章,方程与方程组的数值求解;第12章,常微分方程(组)数值求解;第13章,线性规划问题;第14章,非线性优化问题;第
15章,小问题———公共设施选址;第16章,概率分布与随机数;第17章,描述性统计量和统计图;第18章,参数估计与假设检验;第19章,回归分析;第20章,多项式回归与数据插值;第21章,MATLAB程序编译;第22章,系统级仿真工具Simulink及应用。在章节顺序的安排上,我们是经过深思熟虑的,本着从易到难、从基础到应用及提高的原则。为了能让读者尽快熟悉MATLAB,学会使用MATLAB编出自己的程序,我们把MATLAB绘图与可视化、MATLAB程序设计、图形用户界面等章节放在了前面,这一点不同于一般的MATLAB 书籍。根据我们的经验,从绘图开始是学习MATLAB为高效快捷的方式,因为各种实用的或是炫目的图形能够激发读者的学习兴趣,有了兴趣自然一切就变得简单了。另外,本书的内容力求与大学必修的高等数学、线性代数和概率论与数理统计等多门主干课程相贴合,这样让读者能够理论结合实践,学习起来更为轻松。
俗话说,术业有专攻,多人合编也是为了发挥作者们各自的专长,将各自在不同领域多年的经验和技巧奉献给读者。本书由谢中华主编并负责统筹定稿,其中第1~3、6、16~20章由谢中华(xiezhh)编写,第4、9、10、12章由吴鹏(rocwoods)编写,第5、21章由刘焕进(liuhuanjinliu)
编写,第8章由郑志勇(ariszheng)编写,第22章由李国栋(ljelly)编写,第7、13、15章由谢中华和郑志勇共同编写,第11、14章由吴鹏和郑志勇共同编写。本书每一章都有作者署名,读者可有针对性地直接提问,这样做是为了对读者负责,并且能够让读者领略到不同作者的编程风格。
本书在写作过程中,得到了北京航空航天大学出版社陈守平编辑、MATLAB中文论坛独立创始人math(张延亮)博士的支持与鼓励,陈守平编辑提出了宝贵的修改意见。在此,作者向他们表示真诚的谢意!
本书的写作还得到了作者领导、同事及学生们的大力支持与帮助,他们在文字校对、课件制作等方面做了大量工作,他们是:张爱妮、胡美兰、马辉、贾旺强、赵玮、丁成、唐小兵、顾玉龙、姜颖飞、侯普文、王翰林、李盼东、于杰、刘鹏、李旦、刘泽华、彭亚林、彭玲、林璐、莫文阳、夏俊、郭宾、孔安平、冯帆、张龙辉、袁欢、占俊、杨雪、周艳梅、牛桢桢、朱文成、岳荣,等。
后,还要感谢我们的家人,他们默默地为我们付出,支持我们顺利完成本书的写作,在此,向我们的家人表示衷心的感谢!
由于作者水平有限,书中难免出现疏漏和错误,恳请广大读者和同行批评指正,联系邮箱:[email protected]。
作 者
2017年2月
评论
还没有评论。