书籍详情
MATLAB修炼之道:编程实例透析
作者:祁彬彬,马良,靳欢 著
出版社:北京航空航天大学出版社
出版时间:2022-08-01
ISBN:9787512438439
定价:¥69.00
购买这本书可以去
内容简介
本书主要介绍MATLAB编程基本操作方法与技巧。由于MATLAB近几年在基本操作和数据类型等方面发生了巨大变化,本书对于新版本MATLAB,尤其是R2019b到R2021b中的比较引人注意的新增函数与实用功能,结合代码示例说明其具体的应用方法。全书共10章,第1~4章介绍基本环境设置、代码调试工具使用方法、数据类型等,结合案例讲解包括隐式扩展与逗号表达式等基本操作在内的综合运用;第6~10章讲述函数与脚本、子函数与匿名函数在工程计算中的运用,以及绘图和实时脚本中的一些新老函数与代码案例。 本书包含大量代码案例,展示了MATLAB的基本操作方法、函数命令与数据类型是如何有机融合在一起来解决实际问题的。全书通俗易懂,适合具有一定基础但希望更进一步理解和掌握MATLAB编程语言特点的读者阅读,也可为科学研究工作者、教师在运用MATLAB语言解决实际编程问题时提供代码编写技巧与求解方法的参考。
作者简介
祁彬彬:毕业于中国石油大学(北京)地球探测与信息技术专业,毕业后一直从事石油软件研发工作。曾多次参加数学建模比赛,并获得全国一等奖、二等奖多次。近10年来,一直活跃在MATLAB的各大论坛,担任版主职务。在MATLAB官方的Cody程序解答活动中,目前排名全球第二。 马良:博士毕业于东北大学,副教授,从事现代机械设计理论相关研究。自2003年开始学习MATLAB语言,作为一名高校教师,近两年来在工作中开始致力于研究如何合理与综合地运用MATLAB等工具软件,辅助大学生数学建模的培训与教学,指导学生在2021~2022年连续取得了高教社杯国家一等奖、Mathorcup一等奖和美赛M奖的成绩。 靳欢:博士毕业于美国爱荷华大学,现任宁波诺丁汉大学助理教授,宁波市领军与拔尖人才。2016—2019年任麻省理工学院(MIT)兼职研究员。从事优化方法与机器学习方法在物流交通领域的应用、理论和实证产业结合的研究,运用优化理论和机器学习方法在国际SCI期刊上发表十余篇学术论文。主持和参与多项市级自然科学基金项目。
目录
第1章绪论1
1.1培养MATLAB编程的代码直觉1
1.1.1案例1:用MATLAB实现快速排序算法2
1.1.2案例2:MATLAB计算“亲密数”4
1.2使用新版本MATLAB6
第2章MATLAB环境设置与代码调试工具10
2.1设置MATLAB工作环境10
2.1.1修改默认工作文件路径10
2.1.2工作文件夹间的快速切换10
2.1.3一键调换界面背景配色方案12
2.1.4帮助文档的基本设置与有效利用14
2.1.5MATLAB代码编写环境16
2.2代码注释与智能缩进19
2.3MATLAB中的代码调试20
2.3.1MATLAB代码调试工具20
2.3.2代码调试示例1:逐行顺序调试22
2.3.3代码调试示例2:用Pause on Errors调试循环体23
2.3.4代码调试示例3:添加逻辑断点或assert函数24
2.4Visual Studio Code编写和运行MATLAB代码25
2.4.1VS Code编写MATLAB代码的环境配置26
2.4.2VS Code运行MATLAB代码28
2.5MATLAB编程语言的特点与代码示例分析28
2.5.1案例1:指定元素包含的判断问题29
2.5.2案例2:矩阵中的运算操作32
2.5.3案例3:列元素交换位置34
2.6总结36
第3章运算操作符与数据类型37
3.1运算操作符37
3.1.1MATLAB 中的常用运算符38
3.1.2最“MATLAB”的操作方式:矢量化运算39
3.1.3低调而强大的隐式扩展47
3.2数据类型52
3.2.1MATLAB中的基本数据类型52
3.2.2cell/struct/table 类型特征辨析53
3.2.3技巧:神秘的逗号表达式55
3.2.4技巧:两种快速生成结构数组的方法57
3.2.5文本类型:char 或 string58
3.2.6R2020b新功能:pattern模式搜索匹配string文本63
3.2.7用于时间描述的数据类型:datetim65
3.2.8关于映射表结构:containers.Map67
3.3总结69
第4章逻辑关系、逻辑运算与索引寻址70
4.1逻辑关系和逻辑运算70
4.1.1逻辑条件里的8个“是非”断定70
4.1.26种MATLAB 逻辑运算操作72
4.1.3进阶:“短路”运算与常规数组逻辑操作特征辨析73
4.1.4逻辑运算代码示例1:分段函数76
4.1.5逻辑运算代码示例2:构造字形矩阵78
4.2数组的索引寻址80
4.2.1多角标的高维索引80
4.2.2单一角标的低维索引81
4.2.3索引查找函数find82
4.2.4进阶:示例解析不同索引应用方法83
4.3总结91
第5章MATLAB 脚本与函数92
5.1脚本、函数的基本功能辨析92
5.2m-function 的基本结构剖析93
5.3varargout/varargin 定制数量可变的输入输出95
5.4用inputParser 解析输入变量97
5.5R2019b 新功能:用arguments 解析输入变量99
5.5.1arguments 调用格式与基本功能100
5.5.2示例1: 解析输入包含“名称值”属性参数对的函数101
5.5.3示例2:用自定义解析函数输入变量102
5.5.4示例3:解析输入包含varargin的函数103
5.6增强程序条理性的利器:子函数104
5.7函数和脚本综合运用实例105
5.7.1MATLAB 中的数值积分106
5.7.2非线性方程(组) 计算——求解器式与问题式方案110
5.7.3常微分方程及参数传递116
5.8总结120
第6章MATLAB 程序控制流程121
6.1控制流程概述121
6.2for/while 循环流程示例122
6.2.1for 循环122
6.2.2while 循环125
6.2.3for/while 流程综合示例:十一抽杀问题126
6.3多路分支的if 和switchcase 流程130
6.3.1克拉兹序列中if 流程解读130
6.3.2今天星期几——switch 流程做文本选择132
6.4总结136
第7章匿名函数及其应用137
7.1匿名函数概念与基本用法137
7.1.1匿名函数调用方法137
7.1.2应用示例1:匿名函数与参数化的绘图138
7.1.3应用示例2:以数据“反调用”匿名函数句柄140
7.2嵌套匿名函数与参数传递141
7.3嵌套匿名函数示例1:含参变量数值积分142
7.3.1匿名函数构造一重数值积分被积表达式142
7.3.2匿名函数构造带参数非矩形区域三重积分被积表达式143
7.4嵌套匿名函数示例2:含参变量的非线性方程组144
7.5嵌套匿名函数示例3:含参变量的常微分方程146
7.5.1ODE 的匿名函数基本解法146
7.5.2嵌套匿名函数构造含参变量常微分方程组148
7.5.3嵌套匿名函数+结构数组传递参数149
7.5.4嵌套匿名函数构造隐式微分代数方程(组) 模型152
7.5.5嵌套匿名函数构造携带分段参变量微分方程模型154
7.5.6匿名函数与ODE 中的Events 事件构造156
7.6总结159
第8章图形技术160
8.1图形对象160
8.1.1概念:MATLAB图形的对象父子结构关系161
8.1.2示例:空间参数曲线与图形对象层级162
8.2平面图形绘制基本方法概述163
8.2.1示例:曲线图绘制及属性参数设置代码分析163
8.2.2示例:曲线图和属性值设置初步165
8.2.3示例:图形属性参数的进一步设置167
8.2.4示例:多坐标轴子图的 subplot 和 tiledlayout 函数170
8.2.5绘图函数 plot 的数据逻辑175
8.2.6用 stackedplot 函数绘制堆叠图183
8.2.7函数 histcounts/histogram 与频数直方图188
8.2.8柱状图195
8.2.9用 polarplot 绘制极坐标图209
8.2.10用 xline/yline 绘制垂直和水平线210
8.2.11R2018b 新功能:增强的图轴和数据交互工具212
8.2.12R2020b 新增:线图对象的数据点标记214
8.3三维曲线 (面) 和数据可视化217
8.3.1对流线切片示例的拓展思考217
8.3.2三维数据图形的“动画”视效实现222
8.3.3光源和视效美化初步223
8.3.4综合示例:几何体堆叠画法和patch补片机理分析226
8.4R2019b 新功能:通过图表容器类自定义图形对象234
8.5MATLAB图形输出237
8.5.1MATLAB图形输出方式与类别237
8.5.2用 Export Setup(hgexport) 输出图形238
8.5.3R2020a 新函数:用copygraphics 输出图形239
8.5.4用pirnt/exportgraphics 函数打印和输出图片240
8.6总结243
第9章数据和文件I/O244
9.1数据I/O概述244
9.2load/save读写数据245
9.2.1用save保存数据245
9.2.2用load读取数据247
9.3用importdata读取数据249
9.4用textscan读取数据250
9.5R2013b 函数:readtable/writetable读写数据254
9.5.1简述新增数据读写高级命令254
9.5.2table 数据类型的基本知识255
9.5.3示例:readtable/writetable 读写 dat/txt 数据259
9.5.4示例:readtable 读取 csv 数据261
9.5.5示例:readtable/writetable 读写 Excel 数据262
9.5.6示例:readvars 从文件中读取变量264
9.6R2019a 新函数:readcell/writecell 读写数据265
9.6.1示例:writecell 将多个 Word 表格导入 Excel 文件265
9.6.2示例:readcell 将数据读入 MATLAB267
9.7R2019a 新函数:readmatrix/writematrix 读写数据270
9.7.1示例:writematrix+cellfun 实现数据读取与类型变换270
9.7.2示例:复杂数值型数据的提取与读写272
9.8R2020b 新函数:用 readstruct 读取 xml 数据文件276
9.9xlsread/xlswrite 成为“不推荐函数”原因初探279
9.10总结279
第10章实时代码编辑器 (Live Editor)281
10.1引言281
10.2Live Editor 主要功能简介283
10.2.1新建实时脚本和实时函数283
10.2.2初识实时脚本的文本和代码环境283
10.2.3实时脚本中的大纲目录分级284
10.2.4文本环境中的公式插入285
10.2.5插入超链接286
10.2.6Code Example 功能287
10.2.7实时脚本中的互动式控件288
10.3实时脚本插入 App 实现交互任务289
10.4Live Editor 符号计算替代 MuPAD 的原因分析292
10.4.1Live Editor 符号计算:合乎习惯的公式显示效果292
10.4.2Live Editor符号计算:一致的语法风格293
10.5R2020b 新功能:交互式优化建模计算示例296
10.5.1空域飞行管理问题描述与数学模型297
10.5.2优化模型与实现代码297
10.5.3实时脚本嵌入交互式优化 App300
10.6总结303
参考文献304
1.1培养MATLAB编程的代码直觉1
1.1.1案例1:用MATLAB实现快速排序算法2
1.1.2案例2:MATLAB计算“亲密数”4
1.2使用新版本MATLAB6
第2章MATLAB环境设置与代码调试工具10
2.1设置MATLAB工作环境10
2.1.1修改默认工作文件路径10
2.1.2工作文件夹间的快速切换10
2.1.3一键调换界面背景配色方案12
2.1.4帮助文档的基本设置与有效利用14
2.1.5MATLAB代码编写环境16
2.2代码注释与智能缩进19
2.3MATLAB中的代码调试20
2.3.1MATLAB代码调试工具20
2.3.2代码调试示例1:逐行顺序调试22
2.3.3代码调试示例2:用Pause on Errors调试循环体23
2.3.4代码调试示例3:添加逻辑断点或assert函数24
2.4Visual Studio Code编写和运行MATLAB代码25
2.4.1VS Code编写MATLAB代码的环境配置26
2.4.2VS Code运行MATLAB代码28
2.5MATLAB编程语言的特点与代码示例分析28
2.5.1案例1:指定元素包含的判断问题29
2.5.2案例2:矩阵中的运算操作32
2.5.3案例3:列元素交换位置34
2.6总结36
第3章运算操作符与数据类型37
3.1运算操作符37
3.1.1MATLAB 中的常用运算符38
3.1.2最“MATLAB”的操作方式:矢量化运算39
3.1.3低调而强大的隐式扩展47
3.2数据类型52
3.2.1MATLAB中的基本数据类型52
3.2.2cell/struct/table 类型特征辨析53
3.2.3技巧:神秘的逗号表达式55
3.2.4技巧:两种快速生成结构数组的方法57
3.2.5文本类型:char 或 string58
3.2.6R2020b新功能:pattern模式搜索匹配string文本63
3.2.7用于时间描述的数据类型:datetim65
3.2.8关于映射表结构:containers.Map67
3.3总结69
第4章逻辑关系、逻辑运算与索引寻址70
4.1逻辑关系和逻辑运算70
4.1.1逻辑条件里的8个“是非”断定70
4.1.26种MATLAB 逻辑运算操作72
4.1.3进阶:“短路”运算与常规数组逻辑操作特征辨析73
4.1.4逻辑运算代码示例1:分段函数76
4.1.5逻辑运算代码示例2:构造字形矩阵78
4.2数组的索引寻址80
4.2.1多角标的高维索引80
4.2.2单一角标的低维索引81
4.2.3索引查找函数find82
4.2.4进阶:示例解析不同索引应用方法83
4.3总结91
第5章MATLAB 脚本与函数92
5.1脚本、函数的基本功能辨析92
5.2m-function 的基本结构剖析93
5.3varargout/varargin 定制数量可变的输入输出95
5.4用inputParser 解析输入变量97
5.5R2019b 新功能:用arguments 解析输入变量99
5.5.1arguments 调用格式与基本功能100
5.5.2示例1: 解析输入包含“名称值”属性参数对的函数101
5.5.3示例2:用自定义解析函数输入变量102
5.5.4示例3:解析输入包含varargin的函数103
5.6增强程序条理性的利器:子函数104
5.7函数和脚本综合运用实例105
5.7.1MATLAB 中的数值积分106
5.7.2非线性方程(组) 计算——求解器式与问题式方案110
5.7.3常微分方程及参数传递116
5.8总结120
第6章MATLAB 程序控制流程121
6.1控制流程概述121
6.2for/while 循环流程示例122
6.2.1for 循环122
6.2.2while 循环125
6.2.3for/while 流程综合示例:十一抽杀问题126
6.3多路分支的if 和switchcase 流程130
6.3.1克拉兹序列中if 流程解读130
6.3.2今天星期几——switch 流程做文本选择132
6.4总结136
第7章匿名函数及其应用137
7.1匿名函数概念与基本用法137
7.1.1匿名函数调用方法137
7.1.2应用示例1:匿名函数与参数化的绘图138
7.1.3应用示例2:以数据“反调用”匿名函数句柄140
7.2嵌套匿名函数与参数传递141
7.3嵌套匿名函数示例1:含参变量数值积分142
7.3.1匿名函数构造一重数值积分被积表达式142
7.3.2匿名函数构造带参数非矩形区域三重积分被积表达式143
7.4嵌套匿名函数示例2:含参变量的非线性方程组144
7.5嵌套匿名函数示例3:含参变量的常微分方程146
7.5.1ODE 的匿名函数基本解法146
7.5.2嵌套匿名函数构造含参变量常微分方程组148
7.5.3嵌套匿名函数+结构数组传递参数149
7.5.4嵌套匿名函数构造隐式微分代数方程(组) 模型152
7.5.5嵌套匿名函数构造携带分段参变量微分方程模型154
7.5.6匿名函数与ODE 中的Events 事件构造156
7.6总结159
第8章图形技术160
8.1图形对象160
8.1.1概念:MATLAB图形的对象父子结构关系161
8.1.2示例:空间参数曲线与图形对象层级162
8.2平面图形绘制基本方法概述163
8.2.1示例:曲线图绘制及属性参数设置代码分析163
8.2.2示例:曲线图和属性值设置初步165
8.2.3示例:图形属性参数的进一步设置167
8.2.4示例:多坐标轴子图的 subplot 和 tiledlayout 函数170
8.2.5绘图函数 plot 的数据逻辑175
8.2.6用 stackedplot 函数绘制堆叠图183
8.2.7函数 histcounts/histogram 与频数直方图188
8.2.8柱状图195
8.2.9用 polarplot 绘制极坐标图209
8.2.10用 xline/yline 绘制垂直和水平线210
8.2.11R2018b 新功能:增强的图轴和数据交互工具212
8.2.12R2020b 新增:线图对象的数据点标记214
8.3三维曲线 (面) 和数据可视化217
8.3.1对流线切片示例的拓展思考217
8.3.2三维数据图形的“动画”视效实现222
8.3.3光源和视效美化初步223
8.3.4综合示例:几何体堆叠画法和patch补片机理分析226
8.4R2019b 新功能:通过图表容器类自定义图形对象234
8.5MATLAB图形输出237
8.5.1MATLAB图形输出方式与类别237
8.5.2用 Export Setup(hgexport) 输出图形238
8.5.3R2020a 新函数:用copygraphics 输出图形239
8.5.4用pirnt/exportgraphics 函数打印和输出图片240
8.6总结243
第9章数据和文件I/O244
9.1数据I/O概述244
9.2load/save读写数据245
9.2.1用save保存数据245
9.2.2用load读取数据247
9.3用importdata读取数据249
9.4用textscan读取数据250
9.5R2013b 函数:readtable/writetable读写数据254
9.5.1简述新增数据读写高级命令254
9.5.2table 数据类型的基本知识255
9.5.3示例:readtable/writetable 读写 dat/txt 数据259
9.5.4示例:readtable 读取 csv 数据261
9.5.5示例:readtable/writetable 读写 Excel 数据262
9.5.6示例:readvars 从文件中读取变量264
9.6R2019a 新函数:readcell/writecell 读写数据265
9.6.1示例:writecell 将多个 Word 表格导入 Excel 文件265
9.6.2示例:readcell 将数据读入 MATLAB267
9.7R2019a 新函数:readmatrix/writematrix 读写数据270
9.7.1示例:writematrix+cellfun 实现数据读取与类型变换270
9.7.2示例:复杂数值型数据的提取与读写272
9.8R2020b 新函数:用 readstruct 读取 xml 数据文件276
9.9xlsread/xlswrite 成为“不推荐函数”原因初探279
9.10总结279
第10章实时代码编辑器 (Live Editor)281
10.1引言281
10.2Live Editor 主要功能简介283
10.2.1新建实时脚本和实时函数283
10.2.2初识实时脚本的文本和代码环境283
10.2.3实时脚本中的大纲目录分级284
10.2.4文本环境中的公式插入285
10.2.5插入超链接286
10.2.6Code Example 功能287
10.2.7实时脚本中的互动式控件288
10.3实时脚本插入 App 实现交互任务289
10.4Live Editor 符号计算替代 MuPAD 的原因分析292
10.4.1Live Editor 符号计算:合乎习惯的公式显示效果292
10.4.2Live Editor符号计算:一致的语法风格293
10.5R2020b 新功能:交互式优化建模计算示例296
10.5.1空域飞行管理问题描述与数学模型297
10.5.2优化模型与实现代码297
10.5.3实时脚本嵌入交互式优化 App300
10.6总结303
参考文献304
猜您喜欢