第1章 基础入门 2
1.1 MATLAB发展历程 2
基础篇 2
1.2 MATLAB系统结构 3
1.3 MATLAB 7工具箱 4
1.4.1 MATLAB 7最新特点 5
1.4 MATLAB 7/Simulink 6最新特点 5
1.4.2 Sirnulink 6最新特点 6
1.5 MATLAB启动和退出 7
1.6.1 常量与变量 8
1.6 MATLAB基本特色 8
实例目录 9
例1-1 数据的存取 9
1.6.2 MATLAB基本运算 10
1.6.3 MATLAB基本函数 11
1.6.4 向量 12
1.7 小结 13
第2章 MATLAB桌面 14
2.1 MATLAB主菜单及功能 14
2.2 MATLAB命令窗口 18
2.3 MATLAB工作空间 19
2.4 MATLAB文件管理 20
2.5 MATLAB帮助使用 20
2.5.1 直接使用help获得指令使用说明 21
2.5.2 直接使用help进行分类搜索 21
例2-1 使用正弦函数sin的在线求助 21
例2-2 使用help指令进行分类搜索 21
2.5.3 直接使用help获得具体子类指令说明 22
2.6 小结 22
2.5.4 使用lookfor指令 22
例2-3 使用help topic指令 22
例2-4 使用指令窗中的lookfor指令 22
第3章 数组及其操作 23
3.1 MATLAB中的数组 23
例3-2 创建行向量和列向量 24
3.2 数组的创建 24
3.2.2 创建一维数组 24
3.2.1 创建空数组 24
例3-1 创建空数组A 24
3.2.3 创建二维数组 25
例3-4 创建一维等比数组 25
例3-3 创建一维等差数组 25
3.3 数组属性 26
3.3.1 数组结构 26
例3-6 数组结构测试函数 26
例3-5 创建二维数组 26
例3-7 数组大小 27
3.3.2 数组大小 27
3.3.3 数组维度 28
例3-8 数组维度 28
3.3.4 数组数据类型 29
例3-9 数组数据类型测试函数 29
3.4 创建特殊数组 30
3.4.1 0-1数组 30
例3-10 数组的内存占用 30
3.3.5 数组的内存占用 30
例3-11 创建0-1数组 31
3.4.2 对角数组 31
3.4.3 随机数组 32
例3-13 创建随机数组 32
例3-12 创建对角数组 32
3.4.4 魔方数组 33
例3-14 创建魔方数组 33
3.5 数组操作 33
3.5.1 数组的保存和装载 33
3.5.2 数组索引和寻址 34
例3-15 数组元素的索引与寻址 34
例3-16 单-双下标转换 35
例3-17 逻辑索引 36
3.5.3 数组的扩展和裁剪 36
例3-18 通过cat函数扩展数组 38
例3-19 使用块状复制函数repmat 40
例3-20 使用对角块生成函数blkdiag 40
例3-21 使用块操作函数kron 40
例3-22 索引扩展 41
例3-23 数组裁剪 42
3.5.4 数组形状的改变 43
例3-24 数组元素删除 43
例3-25 数组转置 44
例3-26 数组翻转 45
例3-27 数组尺寸调整 46
3.5.5 数组运算 46
例3-28 使用数组-数组运算 47
例3-29 使用数组除法 48
例3-30 使用点运算 48
例3-31 使用数组运算函数 49
例3-32 使用数组查找函数find 50
3.5.6 数组查找 50
3.5.7 数组排序 51
例3-33 数组排序 52
3.6 小结 53
第4章 多维数组及其操作 54
4.1 多维数组 54
4.1.1 多维数组的创建 54
例4-1 通过二维数组扩展创建多维数组 55
例4-2 用MATLAB的内联函数创建多维数组 55
例4-3 用cat函数创建多维数组 56
4.2.1 多维数组的索引 57
例4-5 多维数组的索引访问 57
4.1.2 多维数组的属性 57
例4-4 通过MATLAB函数获取多维数组的属性 57
4.2 多维数组的操作 57
4.2.2 多维数组的维度操作 58
例4-7 对多维数组维度的重新排序 59
例4-6 用reshape函数改变多维数组的形状 59
4.2.3 多维数组参与数学计算 60
例4-8 多维数组参与的数学计算 60
4.3 小结 61
第5章 数据类型概述和数值类型 62
5.1 MATLAB数据类型概述 62
5.2.1 整数类型 63
5.2 MATLAB中的数值类型 63
例5-1 通过转换函数创建整数类型 64
例5-2 整数类型数值参与的运算 65
例5-3 整数类型参与的运算及溢出捕获 66
5.2.2 浮点数类型 66
例5-4 浮点数转换函数的应用 67
例5-5 浮点型参与的运算 67
例5-6 浮点数的精度 68
例5-7 复数的创建和运算 69
5.2.3 复数 69
5.2.4 无穷量(Inf)和非数值量(NaN) 70
例5-8 无穷量和非数值量 70
5.4 MATLAB中确定数值类型的函数 71
5.3 数值类型的显示格式 71
例5-9 通过get和set临时改变数值显示格式 71
5.5 小结 72
第6章 结构体和元胞数组 73
6.1 结构体 73
6.1.1 结构体的创建 74
例6-1 通过对字段赋值创建结构体 74
例6-2 通过圆括号索引指派,用字段赋值的方法创建结构体数组 74
例6-3 利用struct函数创建结构体数组 75
6.1.2 获取结构体内部数据 76
例6-4 结构体内部数据的获取 77
例6-5 结构体数组的操作 78
6.1.3 结构体数组操作函数 78
6.1.4 结构体嵌套 79
例6-6 结构体嵌套 79
例6-7 动态字段的访问 80
6.1.5 动态字段 80
6.1.6 结构体函数 80
例6-8 结构体函数的使用 81
6.2 元胞数组 81
例6-9 创建元胞数组 82
6.2.1 元胞数组的创建 82
例6-10 元胞数组的显示 83
6.2.2 元胞数组的显示 83
6.2.3 元胞数组的操作 84
例6-11 元胞数组的数据访问 84
例6-12 删除元胞和改变元胞数组形状 85
6.2.4 嵌套元胞数组 86
例6-13 嵌套元胞数组的创建和操作 87
6.2.5 元胞数组函数 88
例6-14 元胞函数的应用 88
6.3 小结 88
7.1.1 单行字符串创建 89
第7章 字符串 89
7.1 创建字符串 89
例7-1 字符串的创建 89
7.1.2 多行字符串创建 90
7.2 字符串操作 91
7.2.1 字符串比较 91
例7-2 创建二维字符数组 91
例7-3 字符串的比较 92
例7-4 两个字符串逐个字符的比较 92
例7-5 字符归属测试函数 93
7.2.2 字符串的替换和查找 93
例7-6 字符串的替换 93
例7-7 字符串的查找 94
例7-8 空格处理函数 95
7.2.3 其他操作 95
例7-9 字符数组的格式操作 96
例7-10 字符数组和字符串的元胞数组之间的转换 97
7.3 字符串的元胞数组 97
例7-11 字符串元胞数组的操作 98
7.4 使用正则表达式搜索 99
7.5 字符数组和数值数组间的相互转换 100
例7-12 正则表达式的简单应用 100
例7-13 把数值数组转换成字符数组 101
7.6 小结 102
例7-14 把字符数组转换成数值数组 102
第8章 关系运算和逻辑运算 103
例8-1 逻辑类型数据 103
8.1 逻辑类型的数据 103
例8-2 MATLAB中的关系运算 104
8.2 关系运算 104
8.3 逻辑运算 105
例8-3 浮点数的比较运算 105
8.3.1 逐个元素的逻辑运算 105
例8-4 逐个元素的逻辑运算 106
例8-5 捷径逻辑运算符 107
8.3.2 捷径逻辑运算 107
例8-6 逐位逻辑运算函数 108
8.3.3 逐位逻辑运算 108
例8-7 MATLAB中的逻辑运算函数 109
例8-8 空数组和非数值型(NaN)元素参与的关系运算 109
8.4 逻辑函数和测试函数 109
8.5 运算优先级 111
例8-9 测试函数的应用 111
8.6 小结 112
9.1 分支控制语句 113
第9章 程序控制流 113
9.1.1 if,else和elseif 113
例9-1 if结构 114
例9-2 数组用于if结构 114
例9-3 switch-case结构 115
9.1.2 switch,case和otherwise 115
例9-4 一条case语句列举多个值的switch-case语句 115
例9-5 for循环 116
9.2.1 for循环 116
9.2 循环控制语句 116
例9-6 数组赋值循环变量的for循环 117
例9-7 while循环 118
例9-8 continue语句 118
9.2.3 continue语句 118
9.2.2 while循环 118
9.2.4 break语句 119
例9-9 break语句 119
9.3 错误控制的try-catch结构 120
例9-10 循环和数组函数效率比较 120
9.2.5 数组结构和循环的效率比较 120
9.4 程序终止的return语句 121
例9-11 try-catch结构 121
例9-12 return语句 121
9.5 小结 122
10.1 M文件和MATLAB编程概述 123
第10章 函数 123
10.1.1 M文件概述 123
10.1.2 MATLAB编程概述 124
10.2 M文件结构和实例 125
10.2.1 M文件的一般结构 125
10.2.2 脚本M文件实例 126
例10-1 脚本M文件实例 126
10.2.3 函数M文件 128
例10-2 函数M文件实例 128
例10-3 匿名函数 130
10.3 函数类型 130
10.3.1 匿名函数 130
10.3.2 M文件主函数 131
10.3.3 嵌套函数 131
10.3.4 子函数 132
10.3.5 私有函数 133
10.3.6 重载函数 133
10.4 参数传递 133
10.4.1 MATLAB参数传递概述 133
10.4.2 输入和输出参数的数目 134
例10-4 输入和输出参数的数目 134
例10-5 可变数目的参数传递 135
10.4.3 可变数目的参数传递 135
例10-6 函数内部的输入参数修改 136
10.4.4 返回被修改的输入参数 136
10.4.5 全局变量 137
例10-7 将修改后的输入参数返回给MATLAB工作区 137
例10-8 全局变量的使用 137
10.5.1 函数句柄的创建和调用 138
例10-9 函数句柄的创建和调用 138
10.5 函数句柄 138
10.6 小结 139
例10-10 处理函数句柄的函数 139
10.5.2 处理函数句柄的函数 139
11.1 M文件调试工具 141
第11章 M文件调试和剖析 141
11.2 M文件分析工具 143
11.2.1 M-Lint分析工具 144
11.2.2 Profiler分析工具 145
11.3 小结 147
第12章 目录管理和文件I/O 148
12.1 当前目录和目录管理 148
12.1.1 当前目录工具条 148
12.1.2 当前目录面板 149
12.1.3 可视化目录显示 150
12.1.4 当前目录设置 151
例12-1 目录操作命令 152
12.1.5 命令窗口目录操作命令 152
12.2 MATLAB搜索路径 153
12.2.1 MATLAB文件运行搜索过程 153
12.2.2 搜索路径设置 154
12.2.3 搜索路径设置命令 154
12.3 文件管理 155
12.3.1 文本数据 155
12.3.2 图形、音频和视频数据 155
12.3.3 电子表格数据 155
12.3.5 数据导入向导 156
12.3.4 科学标准格式数据 156
12.3.6 因特网文件处理 157
12.3.7 低级文件I/O 157
12.4 小结 158
第13章 MATLAB中的时间 159
13.1.1 日期时间的三种表示格式 159
13.1 日期和时间 159
例13-2 日期时间局部信息提取函数 160
13.1.2 获取当前日期时间的函数 160
例13-1 获取系统当前日期和时间 160
13.1.3 日期格式转换 161
例13-3 MATLAB中的日期格式转换函数 161
13.1.4 datestr转换函数输出样式控制 161
13.2 程序中应用的计时函数 162
13.3 小结 163
例13-4 程序中的定时函数 163
例14-1 矩阵行列式 164
14.1 矩阵分析 164
第14章 矩阵代数 164
14.1.1 矩阵的行列式 164
例14-2 矩阵的逆 165
14.1.2 矩阵的逆 165
14.1.3 矩阵的秩 166
例14-3 矩阵的秩 166
14.1.4 矩阵的范数和条件数 166
例14-4 矩阵的范数和条件数 166
14.1.5 矩阵的特征值、特征向量和特征多项式 167
例14-5 矩阵的特征值、特征向量和特征多项式 167
14.1.6 矩阵的标准正交基 168
14.1.7 矩阵分解 168
例14-6 矩阵的标准正交基 168
例14-7 LU分解 169
例14-8 Cholesky分解 169
例14-9 QR分解 170
例14-10 SVD分解(奇异值分解) 171
14.1.8 矩阵的对角元素操作 172
例14-11 Schur分解 172
14.1.9 矩阵分析函数总结 173
例14-12 对角元素操作 173
14.2.1 线性方程组的表示和种类 174
14.2 线性方程组 174
例14-13 高斯消元法求解恰定线性方程组 175
14.2.2 线性方程组的MATLAB求解 175
例14-14 高斯消元法求解欠定方程组 175
例14-15 欠定方程组的一般解 176
例14-16 矩阵除法求解线性方程组 177
例14-17 矩阵求逆求解线性方程组 178
14.3 特殊矩阵 179
14.4 稀疏矩阵 179
14.4.1 稀疏矩阵的存储方式 179
例14-18 稀疏矩阵的创建 180
14.4.2 稀疏矩阵的创建 180
例14-19 稀疏矩阵函数应用 181
14.4.3 稀疏矩阵函数 181
例14-20 nnz和nzmax区别 182
14.5 小结 183
第15章 数据分析 184
15.1 数据分析概述和数据预处理 184
15.1.1 数据分析概述 184
15.1.2 数据导入 185
15.2 基础统计分析 186
例15-1 NaN数据参与分析 186
15.1.3 遗失数据的处理 186
例15-2 基础数据统计分析 187
15.2.1 命令窗口统计分析 187
例15-3 MATLAB数据统计工具 188
例15-3 应用 188
15.2.2 MATLAB数据统计工具 188
例15-3 (续)MATLAB数据统计工具应用 189
15.2.3 多组数据的相关分析 190
例15-4 数据相关性分析 190
15.3 用线性回归模型拟合数据 191
15.3.1 命令窗口下的线性回归 191
例15-5 多项式回归 191
例15-6 一般线性回归(数组除法) 192
15.3.2 用基本拟合工具进行回归分析 193
例15-8 应用基本拟合工具进行线性回归分析 193
例15-7 多元线性回归 193
15.4 其他分析方法初步 196
例15-9 有限差分分析 196
例15-8 (续)应用基本拟合工具进行线性回归分析 196
15.4.1 有限差分 196
例15-10 傅里叶分析 197
15.4.2 傅里叶分析初步 197
15.5.1 概率密度函数 199
15.5 MATLAB统计工具箱初步 199
例15-11 概率密度函数 199
例15-12 概率分布函数 200
15.5.2 概率分布函数 200
15.5.3 逆概率分布函数 201
例15-13 逆概率分布函数 201
例15-14 随机数的产生 202
15.5.4 随机数产生 202
15.6 小结 203
第16章 数据插值 204
16.1.1 一维插值函数的使用 204
16.1 一维插值 204
例16-1 对sin函数进行分段线性一维插值 205
例16-2 其他几种方法对sin函数进行插值 205
16.1.2 内插运算和外插运算 206
例16-3 外插运算方法和误差 207
例16-4 spline函数和pchip函数 208
16.2 二维插值 209
例16-5 二维插值 210
例16-6 二维插值方法效果比较 211
16.3 高维插值 212
16.4 插值函数总结 212
例16-7 griddata在二维插值中的应用 213
16.5 小结 213
第17章 多项式 215
17.1 多项式基础 215
17.1.1 多项式的表示 215
例17-1 求解多项式s(x)=x3-6x2-72x-27的根 216
17.1.3 多项式的创建 216
17.1.2 多项式的根 216
例17-2 多项式的创建 216
例17-4 多项式求值 217
例17-5 数组的多项式求值 217
17.1.4 多项式求值 217
例17-3 特征多项式 217
17.2 多项式运算 218
17.2.1 多项式乘法 218
例17-6 多项式乘法 218
17.2.2 多项式除法 218
17.2.3 多项式加法 219
例17-7 多项式除法 219
例17-8 多项式加法 219
例17-9 多项式微分 220
17.2.4 多项式微分 220
例17-10 多项式的部分分式展开 221
17.2.5 多项式的部分分式展开 221
例17-11 多项式的曲线拟合 222
17.3 多项式曲线拟合 222
例17-12 多项式函数的综合应用 223
17.4 多项式函数总结 223
17.5 小结 224
18.1 三次样条基础 225
18.2 三次样条的MATLAB实现 225
第18章 三次样条 225
例18-1 产生一条正弦曲线,然后用三次样条插值进行拟合 226
18.3 小结 228
19.1 傅里叶变换 229
第19章 傅里叶分析 229
例19-1 求函数f(x)=e-x2的傅里叶变换及其逆变换 230
19.2 快速傅里叶变换(FFT) 230
例19-2 求函数y(t)=|t|的傅里叶变换及其逆变换 230
例19-3 用傅里叶变换分析受噪声干扰的时域信号 233
19.3 小结 234
20.1.1 优化工具箱3.0的新特色 235
第20章 最优化计算 235
20.1 优化工具箱简介 235
20.1.2 优化函数 236
20.2.1 一元函数无约束优化 238
例20-1 求函数f=2e-2xsin(x)在0 20.2 无约束优化问题 238 20.2.2 多元函数无约束优化 239 例20-3 求函数在约束条件下的局部最小值 240 20.3 约束优化问题 240 例20-2 求函数局部最小点 240 20.4 小结 241 例21-1 计算? 242 21.1 微分 242 第21章 微积分 242 21.1.1 符号微分 242 21.2 积分 243 21.1.2 数值微分 243 21.2.1 符号积分 243 例21-2 计算? 243 例21-3 按列进行差分运算 243 21.2.2 数值积分的实现方法 244 例21-4 采用符号积分求? 244 例21-7 采用牛顿—柯特斯法求函数的定积分 245 例21-5 采用梯形法计算定积分?sin(x)dx 245 例21-6 采用变步长辛普生法求函数的定积分 245 例21-8 采用trapz函数计算函数的定积分 246 21.2.3 重积分的实现方法 246 21.3 小结 247 例21-9 计算函数的二重定积分 247 例21-10 计算函数的三重定积分 247 第22章 常微分方程 248 22.1 常微分方程符号解 248 例22-3 求y"+2y'+ex=0的通解 249 例22-1 计算微分方程的通解 249 22.2 常微分方程数值解 249 例22-2 计算微分方程在初始条件下的特解 249 例22-4 求描述某非刚性体的运动方程的微分方程 251 22.3 小结 252 第23章 二维图形 253 23.1 MATLAB图形窗口概述 253 例23-1 MATLAB绘图函数实例 255 23.2.1 基本绘图流程 256 23.2 基本绘图指令 256 23.2.2 基本绘图函数 257 例23-2 简单画线函数line 258 例23-3 plot函数应用 258 例23-4 极坐标绘图函数polar 259 23.2.3 设置函数曲线格式和标记点格式 260 例23-6 线宽和标记点格式设置 261 例23-5 曲线格式和标记点类型设置 261 例23-7 子图绘制 262 23.2.4 子图绘制 262 23.2.5 叠加绘图模式 263 例23-8 叠加绘图模式 263 23.2.6 设置坐标轴和网格线 264 例23-9 坐标轴范围和比例设置(M-file) 265 23.2.7 对数/半对数坐标系绘图 266 例23-10 设置坐标轴显示刻度 266 23.2.8 双纵轴绘图 267 例23-11 对数/半对数坐标系作图 267 例23-12 双纵轴绘图 268 23.2.9 绘图窗口开关控制函数 269 例23-13 开关控制函数(M-File) 269 例23-14 设置绘图格式循环顺序 270 23.2.10 设置默认绘图格式循环顺序 270 23.2.11 复数绘图 271 例23-15 复数绘图 271 23.3.1 图形标注概述 272 23.3 图形标注 272 例23-16 图形标题函数title 274 23.3.2 图形标题 274 23.3.3 坐标轴标签 275 例23-17 坐标轴标签 275 例23-18 图例 276 23.3.4 图例和颜色条 276 例23-19 颜色条 277 23.3.5 文本框标注 277 例23-20 文本框标注 278 例23-21 利用TEX标记序列进行文本标注 280 例23-22 文本框对齐方式(M-File) 280 23.3.7 箭头和图框标注 282 23.3.6 数据点标记 282 23.3.8 锚定图形标注对象 284 23.4.1 柱状图和面积图 284 23.4 特殊绘图 284 例23-23 柱状图 284 例23-24 面积图 285 23.4.2 饼图 285 例23-25 饼图 286 例23-26 频数直方图 286 例23-27 玫瑰图 286 23.4.3 直方图 286 23.4.4 离散数据绘图 287 例23-28 火柴杆图 287 23.4.5 等高线图 288 例23-29 阶梯图 288 例23-30 等高线图 288 23.4.6 向量图 289 例23-31 罗盘图 289 例23-32 羽毛图 290 例23-33 向量场图 291 例23-34 其他特殊绘图指令-1 291 23.4.7 其他特殊绘图指令 291 例23-35 其他特殊绘图指令-2 292 例23-36 函数绘图 293 23.4.8 函数绘图 293 23.5 图形窗口进阶 294 23.5.1 概述 294 23.5.2 图形面板 295 例23-37 图形窗口进阶 295 23.5.3 绘图浏览器 297 23.5.4 属性编辑器 298 23.5.5 数据查视工具 299 23.6 小结 300 23.5.6 工作保存 300 24.1.1 三维图形概述 301 第24章 三维图形 301 24.1 创建三维图形 301 24.1.2 三维曲线图 302 24.1.3 三维曲面图 303 例24-1 plot3绘制三维曲线图 303 例24-2 矩形网格 304 例24-3 三维网线图 305 例24-4 三维表面图 306 例24-5 网格边框线设置 307 例24-6 非网格数据点绘图 308 例24-7 三维柱状图 309 24.1.4 特殊三维绘图 309 例24-8 三维散点图 310 例24-9 三维饼状图 311 例24-10 三维火柴杆图 312 例24-11 三维向量场图 312 例24-12 三维等值线图 313 例24-13 简易三维绘图函数 314 24.2 创建三维片块模型 315 24.2.1 创建片块模型 315 例24-14 创建片块模型 315 24.2.2 多个片块模型的创建和颜色设置 316 例24-15 创建多个片块模型 317 例24-16 设置多个片块模型的颜色 319 例24-17 设置坐标轴 320 24.3 三维图形显示控制 320 24.3.1 设置坐标轴 320 例24-18 设置视角 321 24.3.2 设置视角 321 24.3.3 Camera控制 322 24.3.4 其他控制工具 323 24.4 小结 323 第25章 使用颜色和光影 324 25.1 MATLAB中的颜色 324 25.1.1 着色技术 324 25.1.2 RGB真彩着色 325 例25-1 RGB真彩着色 325 25.1.3 颜色表 326 例25-2 颜色表数组操作 327 例25-3 指定颜色索引数组的映射索引着色 328 25.1.4 索引着色 328 例25-4 不指定颜色索引数组的映射索引着色 329 例25-5 直接索引着色 330 例25-6 shading模式 331 25.1.5 shading模式 331 例25-7 光源对象 332 25.2 光照效果 332 25.2.1 光源对象 332 例25-8 光照方法 333 25.2.2 光照方法 333 25.3 小结 334 26.1 图像 335 26.1.1 图像及其数值类型 335 第26章 图像、声音和视频 335 26.1.2 图像处理函数 336 例26-1 获取信息命令 337 例26-2 图像读入和显示 338 例26-3 (续)灰阶强度图像显示——cool颜色表 339 例26-4 设置图像显示时的坐标轴比例 339 例26-3 灰阶强度图像显示——gray颜色表 339 例26-5 图像写回命令imwrite 340 26.2 声音 341 26.3 视频 342 26.4 小结 343 27.1 图形打印和导出概述 344 第27章 图形的打印和导出 344 27.2 图形打印 345 27.2.1 使用菜单打印图形 345 27.2.2 图形打印命令 346 27.2.3 打印设置 347 27.3 图形导出 352 27.3.1 使用菜单导出图形 352 27.3.3 导出设置 352 27.3.2 图形导出命令 352 27.4 小结 355 28.1 句柄图形对象概述 356 第28章 句柄图形对象 356 28.2 get和set函数 357 28.3 根对象 357 28.4 图形窗口对象 358 28.5 核心图形对象 359 例28-1 句柄图形对象操作 360 28.6 句柄图形对象操作 360 28.7 回调函数 361 例28-2 回调函数 362 28.8 小结 363 29.1 GUI和GUIDE 364 29.1.1 GUI程序概述 364 第29章 图形用户界面(GUI) 364 29.1.2 打开GUIDE开发环境 365 29.2.1 GUIDE界面概述 366 29.2 使用GUIDE创建GUI界面 366 29.2.2 交互组件 367 29.2.3 设计菜单 371 29.2.4 GUI程序的存储 372 29.2.5 对象浏览器 373 29.2.6 GUI程序的运行 374 29.3 回调函数 374 29.3.1 回调函数原型 374 29.3.2 回调函数编程 375 29.4 小结 378 第30章 MATLAB类和面向对象编程 379 30.1 MATLAB类概述 379 30.1.1 类的基本概念 379 30.2 MATLAB类的设计 380 30.1.2 类的组成 380 30.2.1 在MATLAB中设计类的基本方法 380 30.2.2 建立类目录 381 30.2.3 类的构造函数方法 381 30.2.4 类的转换方法 382 30.2.6 类的subsref方法 384 30.2.5 类的显示方法 384 30.2.7 类的重载 385 30.2.8 类方法综合使用实例 388 例30-1 类方法的使用实例 388 30.3 MATLAB面向对象编程 389 30.3.1 MATLAB面向对象编程的特点 389 30.3.2 MATLAB面向对象编程与其他语言对比的特点 390 30.4 小结 390 第31章 MATLAB编程接口 391 31.1 MATLAB与Excel接口 391 31.1.1 Excel link的使用 392 31.1.2 Excel link应用举例 393 例31-1 实现Excel和MATLAB中的数据交换 393 31.2 MATLAB与VB接口 395 31.2.1 动态链接库DLL方法 395 31.2.2 利用DDE方式调用MATLAB程序 396 31.2.3 利用ActiveX技术 396 31.3 MATLAB与VC++接口 397 31.3.1 使用MATLAB engine 397 31.3.2 MEX文件 398 31.3.3 使用Matcom实现MATLAB到C++代码转换 399 31.4 与MAT文件交换数据 400 31.5 小结 401 第32章 扩展MATLAB和Java 402 32.1 Java概述 402 32.2 在MATLAB中使用Java 403 32.2.1 Java接口 403 32.2.2 MATLAB中调用Java 404 32.3 创建和使用Java对象 406 32.3.1 创建Java类对象 406 32.3.2 连接Java对象 407 例32-1 连接相同的Java对象 407 32.3.3 调用Java类对象 408 例32-2 连接不同的Java对象 408 例32-3 利用Frame的getTitle和setTitle两个函数 408 32.3.4 Java实例 410 32.4 Java与MATLAB混合编程 410 32.5 小结 411 33.1 COM组件 412 33.1.1 COM简介 412 第33章 Windows应用程序集成 412 33.1.2 MATLAB COM编译器 413 33.2 动态数据交换(DDE) 416 33.2.1 DDE基本概念 416 33.2.2 MATLAB中的DDE 417 33.2.3 MATLAB作为DDE的服务器端 418 33.2.4 MATLAB作为DDE的客户端 419 33.3.1 Notebook基础 421 33.3 Notebook 421 33.3.2 在Word中使用Notebook 422 例33-1 MATLAB与Word的链接使用 423 33.4 小结 423 34.1 Simulink的使用 424 第34章 Simulink交互式仿真集成环境 424 34.1.1 Simulink启动 425 34.1.2 Simulink仿真设置 426 34.1.3 Simulink模块库简介 432 34.1.4 Simulink功能模块的处理 444 34.2 Simulink自定义功能模块 446 34.2.1 采用Subsystem建立自定义功能模块 446 34.2.2 多个模块组合自定义功能模块 447 34.2.3 自定义功能模块的封装 447 34.3 S函数设计与应用 448 34.3.1 S函数设计 449 例34-1 利用MATLAB中S函数模板设计一个离散系统的S-Function 452 34.3.2 S函数应用 452 例34-2 利用Simulink进行仿真 453 34.4 Simulink仿真举例 453 34.5 小结 457 第35章 MATLAB高等数学计算实例 460 35.1 极限运算 460 例35-1 求极限? 460 例35-2 求极限? 460 实战篇 460 例35-3 求极限?(1+?)n 461 例35-5 求y=ln(x)的二阶导数 461 35.2.1 一元函数求导 461 35.2 求导数 461 例35-4 求y=ln(x)的一阶导数 461 例35-8 求? 462 例35-6 已知函数z=3x3y2+sin(xy),求? 462 例35-7 已知函数z=3x3y2+sin(xy),求? 462 35.2.2 多元函数求导 462 35.2.3 参数方程求导 463 例35-9 已知一参数方程为?,求? 463 35.2.4 隐函数求导 463 35.2.5 求梯度与方向导数 463 例35-10 已知ey+ysinx-ex=0所确定的隐函数y=y(x),求? 463 例35-11 求函数的梯度 463 35.3.1 定积分 464 例35-12 求函数的方向导数 464 例35-13 求定积分? 464 35.3 求积分 464 例35-16 计算? 465 35.3.2 广义积分 465 35.3.3 重积分 465 例35-14 计算广义积分? 465 35.3.4 不定积分 465 例35-15 计算f(x,y)=e?sin(x2+2y)在区间[-1,1]×[-1,1]上的二重积分 465 例35-19 求函数的零点,并画出函数的图像 466 35.4 级数 466 例35-17 将函数展开为幂级数 466 35.4.2 级数求和 466 例35-18 求和?[an3+(a-1)n2] 466 35.4.1 级数展开 466 35.5.1 求函数的零点 466 35.5 求函数的零点和极值点 466 35.5.2 求函数的极值点 467 例35-20 求函数的极小值点 467 35.6.1 线性方程组求解 468 35.6 代数方程组求解 468 例35-21 采用直接法求解方程组 468 例35-22 LU分解法求解方程组 469 例35-23 QR分解法求解方程组 470 例35-24 Cholesky分解法求解方程组 471 例35-25 Cholesky分解法求解方程组 471 例35-26 用Jacobi迭代法求解线性方程组 473 例35-27 用Gauss-Serdel迭代法求解线性方程组 474 35.6.2 非线性方程组求解 474 例35-28 求非线性方程组的数值解 474 35.7 常微分方程求解 475 35.7.2 常微分方程组数值解 475 例35-29 求?=3y2的解 475 例35-30 求常微分方程数值解,并与精确解相比较 475 35.7.1 常微分方程的符号解 475 例35-31 求解常微分方程的解,并画出解的图形 476 35.8 小结 477 第36章 MATLAB图形绘制实例 478 36.1.1 函数绘图 478 例36-2 绘制匿名函数 478 36.1 二维绘图 478 例36-1 绘制sin函数 478 例36-3 简易绘制隐函数 479 例36-4 极坐标函数绘图 479 例36-6 离散数据点拟合绘图 480 例36-5 离散数据点直接绘图 480 36.1.2 离散数据绘图 480 例36-7 离散数据点插值绘图 481 36.1.3 特殊坐标轴绘图 482 例36-9 半对数坐标轴绘图 482 例36-8 纵轴绘图 482 36.2 三维绘图 483 36.2.1 二元函数绘图 483 例36-10 双对数坐标轴绘图 483 例36-11 二元函数peaks绘图 483 例36-12 二元匿名函数绘图 484 例36-13 三维曲线绘图 484 36.2.2 三维曲线绘图 484 例36-14 三维曲面绘图 485 36.2.3 三维曲面绘图 485 36.3.1 柱状图 485 例36-15 二维柱状图 485 36.3 特殊分析用图 485 例36-17 直方图 486 36.3.2 直方图 486 例36-16 三维柱状图 486 例36-19 二维和三维散点图 487 36.3.4 散点图 487 36.3.3 饼图 487 例36-18 二维和三维饼图 487 例36-20 二维和三维等高线图 488 36.3.5 等高线图 488 36.4 小结 489 37.1 MATLAB与VC++混合编程概述 490 37.1.1 混合编程的背景 490 第37章 MATLAB扩展编程实例 490 37.2.1 MATLAB引擎 491 37.1.2 混合编程的方式 491 37.2 使用MATLAB引擎 491 37.2.2 编程实例 495 37.3 使用mcc编译器 498 37.3.1 mcc编译器 498 37.3.2 MATLAB的设置及创建动态链接库 499 37.3.3 编程实例 501 37.4 使用COM 504 37.4.2 COM的设置与创建 504 37.4.1 COM简介 504 37.4.3 VC++中调用COM 508 37.5 小结 510 参考文献 511