薛定宇教授大讲堂:MATLAB程序设计(卷Ⅰ)

薛定宇教授大讲堂:MATLAB程序设计(卷Ⅰ)
作 者: 薛定宇
出版社: 清华大学出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  薛定宇教授:分别在沈阳工业大学、东北大学和英国Sussex大学获得学士(1985年)、硕士(1988年)和博士学位(1992年),1997年任东北大学信息学院教授。深耕于计算机在数学与自动控制学科的应用,主持了国家精品课程建设,并于1996年在清华大学出版社出版《控制系统计算机辅助设计——MATLAB与应用》,该教材被认为是国内MATLAB应用领域具有深远影响的一部图书,为MATLAB在国内高校教学与科研中的普及起到了巨大的作用。薛定宇教授先后被评为辽宁省教学名师、辽宁省优秀教师,获得g家级教学成果二等奖。其主讲的“控制系统仿真与CAD”课程被评为g家级精品课程、g家级精品资源共享课程;主讲的“现代科学运算——MATLAB语言与应用”课程被评为辽宁省精品资源共享课程,配套录制的全新慕课课程均上线于爱课程与中国慕课网站。

内容简介

MATLAB语言是进行科学计算的利器。本书系统地论述了 MATLAB的功能及使用 MATLAB语言编程的方法。本书内容包括 MATLAB语言的常用数据结构和语句结构、矩阵的代数运算、c越函数的计算方法与数据处理的方法、 MATLAB语言的流程控制结构与应用、 MATLAB函数编写与调试,以及 MATLAB的科学可视化方法。此外,本书还介绍了 MATLAB语言的接口设计、面向对象的程序设计方法与图形用户界面设计方法等。 本书可作为一般读者学习和掌握 MATLAB语言的工具书,也可作为高等学校理工科各类专业本科生与研究生学习计算机数学语言(MATLAB)的教材。

图书目录

目 录

CONTENTS

第 1章计算机数学语言概述 1

1.1数学问题计算机求解概述 1

1.1.1为什么要学习计算机数学语言· 1

1.1.2数学问题的解析解与数值解· 4

1.1.3数学运算问题软件包发展概述· 5

1.1.4常规计算机语言的局限性 7

1.2计算机数学语言简介 8

1.2.1计算机数学语言的出现 8

1.2.2有代表性的计算机数学语言· 9

1.3科学运算问题的三步求解方法 10本章习题 12第 2章 MATLAB语言程序设计基础 13

2.1 MATLAB命令窗口与基本命令 14

2.1.1变量名命名规则 14

2.1.2保留的常数 · 15

2.1.3显示格式的设置 16

2.1.4底层操作系统命令 16

2.1.5 MATLAB的工作环境设置 17

2.1.6 MATLAB的工作空间与管理 18

2.1.7 MATLAB的其他辅助工具 18

2.2常用数据结构 · 19

2.2.1数值型数据 · 19

2.2.2符号型数据 · 20

2.2.3任意符号型矩阵的生成 22

2.2.4符号型函数 · 22

2.2.5整型变量与逻辑变量 22

2.2.6数据结构类型的识别 23

·iv·薛定宇教授大讲堂(卷 I):MATLAB程序设计

2.2.7矩阵的维数与长度 23

2.3字符串数据结构 · 24

2.3.1一般字符串的表示 24

2.3.2字符串的处理方法 24

2.3.3字符串的转换与读写方法 26

2.3.4字符串命令的执行 27

2.3.5 MuPAD接口函数的编写 · 27

2.4其他常用数据结构 28

2.4.1多维数组 · 28

2.4.2单元数组 · 29

2.4.3表格数据 · 30

2.4.4结构体 · 32

2.4.5其他数据结构 33

2.5 MATLAB的基本语句结构 · 33

2.5.1直接赋值语句 33

2.5.2函数调用语句 34

2.5.3多样的函数调用机制 34

2.5.4冒号表达式 · 34

2.5.5子矩阵的提取 35

2.5.6等间距行向量的生成 36

2.6数据文件的读取与存储 36

2.6.1数据文件的读取与存储命令· 36

2.6.2文件读写的底层方法 37

2.6.3 Excel文件的读取与存储 · 38本章习题 39

第 3章基本数学运算 · 42

3.1矩阵的代数运算 · 42

3.1.1矩阵的转置、翻转与旋转 · 42

3.1.2矩阵的加减乘除运算 44

3.1.3复数矩阵及其变换 45

3.1.4矩阵的乘方与开方 45

3.1.5矩阵的点运算 47

3.2矩阵的逻辑运算与比较运算 47

3.2.1矩阵的逻辑运算 47

3.2.2矩阵的比较运算 48 3.2.3矩阵元素的查询命令 48

3.2.4属性判定语句 49

3.3超越函数的计算 · 49

3.3.1指数与对数函数的计算 50

3.3.2三角函数的计算 50

3.3.3反三角函数的计算 52

3.3.4矩阵的超越函数 52

3.4符号表达式的化简与变换 54

3.4.1多项式的运算 54

3.4.2三角函数的变换与化简 55

3.4.3符号表达式的化简 55

3.4.4符号表达式的变量替换 56

3.4.5符号运算结果的转换 56

3.5基本数据运算 · 57

3.5.1数据的取整与有理化运算 57

3.5.2向量的排序、最大值与最小值 58

3.5.3数据的均值、方差与标准差 · 59

3.5.4质因数与质因式 60

3.5.5排列与组合 · 61本章习题 62

第 4章 MATLAB语言的流程结构 64

4.1循环结构 · 64

4.1.1 for循环结构 · 64

4.1.2 while循环结构 · 66

4.1.3迭代方法的循环实现 67

4.1.4循环结构的辅助语句 69

4.1.5向量化编程实现 69

4.2条件转移结构 · 71

4.2.1简单的条件转移结构 71

4.2.2条件转移结构的一般形式 72

4.2.3分段函数的向量化表示 74

4.3开关结构 · 75

4.4试探结构 · 77本章习题 78

·vi·薛定宇教授大讲堂(卷 I):MATLAB程序设计

第 5章函数编写与调试 80

5.1 MATLAB的脚本程序 · 80

5.2 MATLAB语言函数的基本结构 81

5.2.1函数的基本结构 81

5.2.2函数名的命令规则 83

5.2.3函数编写举例 83

5.3函数编写的技巧 · 86

5.3.1递归调用 · 86

5.3.2可变输入输出个数的处理 87

5.3.3输入变元的容错处理 89

5.3.4全局变量 · 89

5.3.5存取 MATLAB工作空间中的变量 90

5.3.6匿名函数与 inline函数 · 91

5.3.7子函数与私有函数 93

5.4 MATLAB程序的调试 · 93

5.4.1 MATLAB程序的跟踪调试 93

5.4.2伪代码与代码保密处理 96

5.5 MATLAB实时编辑器 · 96

5.5.1实时文档编辑界面 97

5.5.2建立一个简单的文档 97

5.5.3嵌入代码的运行 98

5.5.4在实时编辑器中嵌入其他对象· 99

5.5.5实时编辑文档的输出 101本章习题 101

第 6章二维图形绘制 · 105

6.1二维曲线的绘制 · 105

6.1.1二元数据的曲线绘制 105

6.1.2数学函数的曲线绘制 108

6.1.3分段函数的曲线绘制 108

6.1.4二维图形的标题处理 109

6.1.5多纵轴曲线的绘制 111

6.2图形修饰 · 112

6.2.1利用界面工具的修饰 113

6.2.2 LATEX支持的修饰命令 · 115

6.2.3数学公式叠印与宏包设计 116 6.3其他二维图形绘制语句 117

6.3.1极坐标曲线的绘制 117

6.3.2离散信号的图形表示 118

6.3.3直方图与饼图 120

6.3.4填充图 · 122

6.3.5对数坐标图 · 123

6.3.6误差限图 · 124

6.3.7动态轨迹显示 124

6.3.8二维动画的显示 124

6.4图形窗口的分割 · 125

6.4.1规范分割 · 125

6.4.2任意分割 · 126

6.5隐函数绘制及应用 128

6.6图像的显示与简单处理 130

6.6.1图像的输入 · 130

6.6.2图像的编辑与显示 131

6.6.3颜色空间转换 132

6.6.4边缘检测 · 132

6.6.5直方图均衡化 133

6.7 MATLAB图形的输出方法 · 134

6.7.1图形输出菜单与应用 134

6.7.2图形输出命令 135本章习题 136

第 7章三维图形表示 · 138

7.1三维曲线绘制 · 138

7.1.1三维曲线绘制命令 138

7.1.2已知数学函数的三维曲线绘制· 139

7.1.3三维填充图 · 140

7.1.4三维直方图与饼图 140

7.1.5条带图 · 142

7.2三维曲面绘制 · 144

7.2.1网格图与表面图 144

7.2.2表面图的阴影与光照 147

7.2.3图像文件的三维表面图 149

7.2.4已知函数的表面图 150

·viii·薛定宇教授大讲堂(卷 I):MATLAB程序设计

7.2.5散点数据的表面图绘制 151

7.3三维图形视角设置 152

7.3.1视角的定义 · 152

7.3.2三视图的设置 153

7.3.3任意视角的设置 153

7.4其他三维绘图 · 154

7.4.1等高线 · 154

7.4.2矢量图 · 155

7.4.3三元隐函数的绘图 156

7.4.4参数方程的表面图 158

7.4.5复变函数的三维表面图 158

7.4.6球面与柱面 · 159

7.4.7 Voronoi图与 Delaunay剖分 · 161

7.5三维图形的特殊处理 163

7.5.1三维曲面的旋转 163

7.5.2坐标轴变换的三维曲面 164

7.5.3三维图形的剪切 165

7.5.4三维表面图贴面处理 166

7.6四维图形绘制 · 167

7.6.1切片图 · 167

7.6.2体视化界面 · 168

7.6.3三维动画的制作与播放 169本章习题 171

第 8章 MATLAB语言与其他语言的接口· 173

8.1 C语言环境下提供的 MATLAB变量格式及函数概述 · 174

8.1.1编译程序的环境设置 174

8.1.2 Mex下的数据结构 175

8.1.3 Mex文件的结构 176

8.1.4 Mex文件的编写方法与步骤· 179

8.2不同数据结构的 Mex处理 180

8.2.1不同类型输入输出变元的处理· 181

8.2.2字符串变量的读写 181

8.2.3多维数组的处理 183

8.2.4单元数组的处理 184

8.2.5 MAT文件的读写方法 · 185 8.3 C程序中直接调用 MATLAB函数 187

8.4 MATLAB函数的独立程序转换 191本章习题 192

第 9章面向对象程序设计基础 193

9.1面向对象编程的基本概念 193

9.1.1类与对象 · 193

9.1.2类与对象数据结构 194

9.2类的设计 · 195

9.2.1类的设计方法 195

9.2.2类的定义与输入 196

9.2.3类的显示 · 197

9.3重载函数的编写 · 198

9.3.1加法的重载函数编写 198

9.3.2合并同类项的化简函数 199

9.3.3减法重载函数 200

9.3.4乘法重载函数 200

9.3.5乘方运算重载函数 202

9.3.6域的赋值与提取 203

9.4类的继承与扩展 · 203

9.4.1扩展类的定义与显示 204

9.4.2 ftf对象的连接重载函数 205

9.4.3分数阶传递函数的频域分析· 207本章习题 208

第 10章 MATLAB的图形用户界面设计技术 209

10.1 MATLAB语言图形界面编程基础 · 209

10.1.1 MATLAB图形界面中各对象的关系· 209

10.1.2窗口对象及属性设置 210

10.1.3窗口的常用属性 211

10.1.4对象属性的读取与修改· 213

10.1.5简易对话框 215

10.1.6标准对话框及其调用 216

10.2 MATLAB图形界面设计基本控件 · 219

10.2.1 MATLAB支持的基本控件 219

10.2.2控件的常用属性 221

10.2.3控件句柄的获取 221

·x·薛定宇教授大讲堂(卷 I):MATLAB程序设计

10.3图形用户界面设计工具 Guide 222

10.4图形用户界面的高级技术 · 231

10.4.1菜单系统的设计 231

10.4.2工具栏设计 232

10.4.3 ActiveX控件的嵌入与编程 234

10.5工具箱的集成与发布 · 235本章习题 235参考文献· 237

MATLAB函数名索引 · 239术语索引· 245