具体描述
《MATLAB面向对象程序设计》以面向对象程序设计方法的基本特征(抽象、封装、继承、多态)为主线,由浅入深、循序渐进地展开,系统介绍了MATLAB面向对象程序设计的思想、设计方法等。《MATLAB面向对象程序设计》重点突出、通俗易懂,各章节提供大量的程序代码供读者参考练习,多数章节安排了相应的应用实例。全书分为11章,主要分为三部分:一是MATLAB基本操作和程序设计基础、面向对象程序设计思想,以及MATLAB面向对象程序设计特点等(第1~2章);二是详细介绍了MATLAB中面向对象程序的开发过程和设计方法(第3~10章);三是MATLAB面向对象程序设计方法的综合应用实例(第11章)。
《MATLAB面向对象程序设计》内容详实、科学合理,图文并茂、实例丰富,讲解系统透彻,通过本书的学习读者可以很快理解MATLAB面向对象程序设计的基本思想,掌握其设计方法,提高利用MATLAB解决问题的能力和效率。《MATLAB面向对象程序设计》可以作为高等院校理工科专业大学生、研究生的计算机教材和广大科研人员的参考资料。
作者简介
苗志宏,2001年毕业于北京师范大学数学系,获理学博士学位。现为中国人民武装警察部队学院消防工程系教授,主要从事数学和信息工程教学。参与多项国家自然科学基金项目的研究,发表论文30余篇,多篇被SCI、EI收录,主编著作《虚拟现实技术基础与应用》。
马金强,硕士,现为中国人民武装警察部队学院消防工程系讲师。从事电子信息工程教育教学12年。发表学术论文10余篇,多篇被EI收录,主编教材1部,参与出版译著1部,出版了著作《多媒体制作与Authorware》,参与编写了著作《虚拟现实技术基础与应用》。
目录信息
1.1 MATLAB概述 1
1.1.1 MATLAB的发展史 1
1.1.2 MATLAB体系结构 2
1.1.3 MATLAB功能特点 2
1.2 MATLAB的安装与运行 4
1.2.1 MATLAB的安装与激活 4
1.2.2 MATLAB的启动与退出 7
1.3 MATLAB开发环境 7
1.3.1 菜单栏 8
1.3.2 工具栏 12
1.3.3 MATLAB的窗口 12
1.4 MATLAB帮助和演示系统 17
1.4.1 命令窗口帮助系统 17
1.4.2 联机帮助 18
1.4.3 联机演示系统 19
1.5 矩阵及其运算 20
1.5.1 创建矩阵 20
1.5.2 矩阵访问 23
1.5.3 矩阵的赋值 24
1.5.4 矩阵的四则运算 25
1.5.5 点运算 26
1.5.6 矩阵的其他运算 27
1.5.7 矩阵操作 30
1.6 MATLAB图形用户界面设计 32
1.6.1 图形对象和句柄 32
1.6.2 图形窗口及坐标轴 34
1.6.3 用户界面对象 37
1.6.4 图形用户界面设计开发环境 41
1.7 小结 46
思考与练习 46
第2章 MATLAB面向对象程序设计概述 47
2.1 MATLAB程序设计基础 47
2.1.1 MATLAB的变量及数据类型 47
2.1.2 运算符与操作符 50
2.1.3 M文件介绍 51
2.1.4 函数的类型 54
2.1.5 MATLAB的程序设计原则 55
2.2 面向对象程序设计方法简介 56
2.2.1 程序设计方法的发展概述 56
2.2.2 面向对象程序设计方法 56
2.2.3 面向对象程序设计方法的优越性 57
2.2.4 面向对象程序设计的基本概念 57
2.2.5 面向对象程序设计方法中的基本特征 58
2.3 MATLAB面向对象程序设计简介 59
2.3.1 MATLAB中的类和对象 59
2.3.2 MATLAB中类的设计、定义 61
2.4 MATLAB面向对象程序设计特点 63
2.4.1 MATLAB面向对象程序设计的特点 63
2.4.2 MATLAB面向对象程序设计与其他语言 63
2.5 小结 64
思考与练习 64
第3章 MATLAB中的类和对象 65
3.1 类的声明 65
3.1.1 类的声明 65
3.1.2 对象的创建和使用 66
3.1.3 类的特性 67
3.1.4 类定义的组织形式 67
3.1.5 命名空间和包 68
3.2 类的属性成员及访问控制 71
3.2.1 属性成员的声明和初始化 71
3.2.2 属性成员的特性 71
3.2.3 属性成员的set和get方法 74
3.2.4 属性成员的访问控制 77
3.3 类的方法及访问控制 78
3.3.1 普通方法及访问控制 79
3.3.2 构造函数 81
3.3.3 静态方法 83
3.3.4 类型转换方法 85
3.4 类的组合 87
3.4.1 内嵌对象 88
3.4.2 类的优先级问题 88
3.4.3 对象的保存与加载 91
3.5 小结 92
思考与习题 93
第4章 MATLAB中的继承与派生 94
4.1 类的继承与派生 94
4.1.1 继承与派生的概念 94
4.1.2 派生类的定义 95
4.1.3 派生类生成过程 96
4.1.4 用派生类创建一个类的别名 99
4.2 派生类的构造函数 99
4.2.1 构造函数的建立 99
4.2.2 派生类构造函数执行的顺序 102
4.3 多重继承中的成员标识问题 104
4.3.1 属性成员名称冲突 105
4.3.2 方法名称冲突 105
4.3.3 事件名称冲突 107
4.4 指定容许派生的类 108
4.5 类成员的访问控制 109
4.5.1 属性成员的访问控制 109
4.5.2 方法的访问控制 110
4.5.3 事件的访问控制 114
4.6 定义MATLAB内置类型的派生类 115
4.6.1 MATLAB的内置类 115
4.6.2 定义MATLAB内置类的派生类 115
4.7 小结 120
思考与练习 120
第5章 handle型类 122
5.1 handle型类的声明 122
5.2 类handle的介绍 124
5.3 属性成员set/get接口的实现 125
5.4 动态属性成员的实现 127
5.5 handle型类的析构函数 130
5.6 handle-兼容类 135
5.7 深拷贝与浅拷贝 136
5.7.1 深拷贝与浅拷贝的概念 136
5.7.2 matlab.mixin.Copyable类简介 138
5.7.3 深拷贝的实现 139
5.8 应用实例 142
5.8.1 问题的提出 142
5.8.2 类的设计 142
5.8.3 源程序及运行效果 143
5.9 小结 146
思考与练习 146
第6章 对象阵列 147
6.1 MATLAB中常用的阵列形式 147
6.1.1 阵列的概念 147
6.1.2 几种常用的阵列 147
6.2 创建对象阵列 153
6.2.1 如何创建对象阵列 154
6.2.2 在对象阵列上添加动态属性成员 157
6.3 不同类型对象组成的对象阵列 158
6.3.1 不同类型对象的连接 158
6.3.2 转换方法的实现 159
6.4 多相对象阵列 160
6.4.1 matlab.mixin.Heterogeneous类及多相阵列创建 161
6.4.2 多相阵列的下标索引和连接 162
6.4.3 convertObject方法 163
6.5 小结 164
思考与练习 164
第7章 多态性 165
7.1 函数重载 165
7.2 运算符重载 169
7.2.1 运算符重载的实现 170
7.2.2 运算符重载中的优先级问题 172
7.2.3 subsref和subsasgn的重载 173
7.3 抽象类 179
7.3.1 抽象类的定义 179
7.3.2 有关抽象类的特殊规定 180
7.3.3 一个例子 180
7.4 小结 183
思考练习 183
第8章 事件与听众 185
8.1 事件与听众的概念 185
8.1.1 事件的概念及事件模型 185
8.1.2 听众的概念 186
8.2 定义事件和听众 186
8.2.1 如何命名一个事件 186
8.2.2 事件触发和广播 188
8.2.3 如何响应事件(听众的定义) 189
8.2.4 听众的几种创建方式 190
8.2.5 回调函数定义和调用 191
8.2.6 一个例子 192
8.3 属性成员事件的收听 197
8.3.1 属性成员事件 197
8.3.2 为属性成员事件创建听众 198
8.3.3 为听众定义回调函数 199
8.3.4 属性成员的AbortSet属性 199
8.4 动态属性成员事件响应 201
8.5 应用实例 204
8.5.1 问题的提出 204
8.5.2 类的设计 204
8.5.3 源程序及运行效果 205
8.6 小结 209
思考与练习 209
第9章 枚举 210
9.1 枚举概述 210
9.1.1 相关术语 210
9.1.2 枚举类型的分类 210
9.2 枚举类的定义和使用 211
9.2.1 枚举类的定义 211
9.2.2 枚举类中的方法 212
9.2.3 在枚举类中定义属性成员 212
9.2.4 枚举类的使用 213
9.2.5 枚举类与阵列 216
9.2.6 枚举类的构造函数调用顺序 216
9.2.7 枚举类在应用中的一些限制 217
9.3 小结 218
思考与练习 218
第10章 利用类元数据获取类信息 219
10.1 类元数据简介 219
10.1.1 相关概念 219
10.1.2 元类对象的创建和使用方法 219
10.2 元数据的使用 220
10.2.1 使用元数据查阅类和对象 220
10.2.2 查找具有指定设置的对象 223
10.2.3 获得关于属性成员的信息 225
10.2.4 获得属性成员的默认值 228
10.3 小结 230
思考与练习 230
第11章 综合应用实例 231
11.1 倒立摆控制演示实例 231
11.2 元胞自动机演示实例 237
11.3 小结 242
思考与练习 242
附录 MATLAB中的函数分类索引 243
参考文献 251
· · · · · · (收起)
读后感
用户评价
这本书的叙述风格极其严谨,充满了学术的深度,但又巧妙地避免了过度晦涩难懂的术语堆砌。它更像是一位资深教授在进行深度研讨会,而非简单的知识传授。作者对面向对象编程范式在科学计算领域的价值进行了深刻的哲学思考,这使得阅读过程不仅仅是学习“如何做”,更是理解“为什么这样做是最佳选择”。例如,在讲解抽象基类和接口实现时,作者引用了多个经典算法的重构案例,展示了OOP如何通过解耦数据和行为,极大地提高了代码的可测试性和可扩展性。对于那些习惯了C++或Java等传统OOP语言背景的开发者来说,这本书提供了一个绝佳的桥梁,使他们能快速、高效地将成熟的设计理念移植到MATLAB这一特定的工程环境中。我发现,读完关于对象生命周期管理的那几章后,我对MATLAB内存管理和垃圾回收的理解提升了一个台阶,这在处理大型仿真模型时至关重要。
坦白说,我一开始对MATLAB也能进行“正统”的面向对象编程持怀疑态度,毕竟它的传统印象还是侧重于矩阵运算和快速原型开发。然而,这本书彻底颠覆了我的看法。它不仅展示了MATLAB在OOP方面的强大潜力,更重要的是,它提供了一套非常实用的、面向实际项目的开发流程。书中对错误处理和异常机制的详尽阐述,尤其令我印象深刻。作者提供了一套标准化的错误代码和日志记录框架,这在多人协作的大型项目中是不可或缺的。此外,对于如何利用MATLAB的特性(比如属性访问限制和事件监听器)来构建健壮的用户界面或数据采集系统,书中的示例代码清晰、模块化程度高,几乎可以直接拿来套用修改。这本书的价值在于,它成功地将MATLAB从一个“脚本语言”的标签中解放出来,证明了它完全有能力胜任复杂软件工程的构建任务。
这本书的排版和装帧设计真是让人眼前一亮,封面色彩搭配得非常专业,既有技术书籍的严谨感,又不失现代气息。内页的纸张质量也相当不错,阅读起来非常舒适,长时间盯着屏幕看久了再翻开纸质书,眼睛得到了很好的放松。尤其值得称赞的是,作者在章节布局上花了很多心思。逻辑流程非常清晰,从基础概念的引入,到复杂特性的深入讲解,过渡得自然而流畅。初学者很容易就能跟上作者的思路,而有一定基础的读者也能在其中找到值得深挖的知识点。书中大量的图示和流程图,将抽象的编程概念具象化了,这对于理解面向对象设计的核心思想,比如封装、继承和多态,提供了极大的帮助。不仅仅是理论的堆砌,书中还穿插了许多实际的应用案例,这些案例的设计紧密贴合工程实践的需求,让人感觉学到的知识是“活的”,可以直接在自己的项目中运用。整体来看,这本书在视觉体验和结构设计上都达到了一个很高的水准,让人在阅读过程中充满了愉悦感和探索欲。
我最近在寻找一本能够系统梳理MATLAB高级编程技巧的书籍,这本书的作者显然是位经验老道的工程师。它没有停留在MATLAB基础语法层面的简单重复,而是直接将读者带入了构建大型、可维护软件系统的视野。特别是关于类定义和对象交互的部分,讲解得极为透彻。作者并没有简单地罗列语法,而是深入剖析了不同设计模式在MATLAB环境下的实现优势与权衡。我特别欣赏作者处理“遗留代码维护”这一现实问题的角度,他提供了一套清晰的重构策略,教导我们如何将传统的MATLAB脚本逐步优雅地迁移到面向对象的架构中,这对于许多从事工业界工作的人来说,是实打实的干货。书中对性能优化的讨论也十分到位,详细解释了何时应该使用句柄对象,何时应倾向于值对象,以及对象数组操作的底层机制。这本书绝对不是为应付考试而写的教材,而是一部能切实提升开发者专业素养的工具书。
我感觉这本书的编写者非常贴近实际用户的痛点。很多技术书籍在讲解完理论后,往往会留下一个“如何应用”的巨大鸿沟,但这本书在这方面做得非常出色。它不仅仅是展示了类和对象的语法糖,而是着重探讨了如何利用这些特性来解决真实世界中遇到的具体难题,比如如何管理复杂的仿真参数集,如何构建一个可配置、可复用的数据处理管道。书中对于如何进行单元测试和集成测试的章节,简直就是及时雨。作者清晰地指导了如何利用MATLAB自身的测试框架,配合OOP结构,对各个模块进行隔离测试,这对于确保大型代码库的质量至关重要。此外,对于工具箱(Toolbox)的设计与发布,书中也有独到的见解,教导开发者如何将自己的OOP成果包装成易于分享和维护的专业工具箱。这本书读下来,感觉收获的不仅仅是编程技巧,更是一种结构化、工程化的思维方式。
看到76页
看到76页
看到76页
挺奇怪的书。典型比较老的国内技术书风格。从安装开始,一步步的截图,菜单栏一个个介绍。介绍MATLAB从基本运算讲起。名字都是高大上的面向对象设计了,还不能脱离这些基础,感觉像是硬填内容凑字数。然后关键的面向对象部分,列举好多例子,但没有机制,感觉就是说明书,还不讲原理的。作者应该确实有些货,但没有突出重点。叙述啰嗦又把偶尔那么一些闪光点都盖住了。很难坚持看完全书,恶心了好久。也许对“没有什么MATLAB基础”,然后又“马上要用MATLAB做面向对象程序设计”,又“不在乎了解MATLAB面向对象机制和原理”的人比较有用吧。对这样的人来说,还算是很细致了。比MATLAB在线doc好一点,是中文。
看到76页