第1章 MATLAB 6.0入门 1
1.1 MATLAB简介 1
1.2 MATLAB 6.0系统需求 2
1.2.1 硬件需求 2
1.2.2 软件需求 2
1.3 MATLAB 6.0的安装过程 2
1.4 认识MATLAB 6.0的新工作环境 4
1.4.1 MATLAB 6.0的启动和退出 4
1.4.2 全新的MATLAB 6.0命令窗口 5
1.5 MATLAB 6.0新功能和新特性 8
1.5.1 软件更容易使用 8
1.5.2 方便灵活的命令窗口 9
1.5.3 直观的系统演示和在线帮助 10
1.5.4 MATLAB 6.0的新特性 15
2.2 正确设置工作路径 17
2.1 MATLAB的基本程序设计原则 17
第2章 程序设计基础 17
2.3 常量和变量 18
2.4 程序的运算符 19
2.4.1 算术运算符 20
2.4.2 关系运算符 21
2.4.3 逻辑运算符 22
2.4.4 常用的逻辑函数 23
2.5 数据类型 24
2.6 程序控制语句 26
2.6.1 for循环语句 26
2.6.2 while循环语句 27
2.6.3 条件选择语句if 28
2.6.4 switch分支结构语句 29
2.6.5 return语句 30
2.7.1 M文件的类型 31
2.7.2 MATLAB文件的系统命令 31
2.7 M文件 31
2.7.3 M文本编辑器 32
2.7.4 命令文件 33
2.7.5 函数文件 34
2.8 字符数组 35
2.8.1 字符数组的定义 35
2.8.2 字符与数值的相互转换 36
2.8.3 字符串的比较 37
2.8.4 二维字符数组 37
2.8.5 字符型单元数组 38
2.9 结构数组 39
2.9.1 建立结构数组 39
2.9.2 对结构数组的操作 41
2.9.3 结构数组的运算 43
2.10 单元数组 44
2.10.1 创建单元数组 44
2.10.2 单元数组的显示 45
2.10.3 单元数组的运算 46
2.10.4 单元数组的变形 47
2.10.5 单元数组的嵌套 47
2.11 多维数组 48
2.11.1 多维数组的生成 48
2.11.2 多维数组的有关操作 51
2.11.3 多维数组的变形 52
2.11.4 多维数组的运算 54
2.12.2 时间函数clock 56
2.12.3 查看CPU时间 56
2.12 时间和日期 56
2.12.1 日历函数calendar 56
2.12.4 日期函数date 57
2.12.5 秒表定时器 57
第3章 MATLAB的数值计算 59
3.1 矩阵基础 59
3.1.1 矩阵的定义和简单输入 59
3.1.2 利用函数命令来创建矩阵 60
3.1.3 矩阵的求和 62
3.1.4 矩阵的下标 63
3.1.5 矩阵的转置 64
3.1.6 矩阵的对角元素 65
3.1.7 矩阵加减运算 66
3.1.8 矩阵的乘积 67
3.1.9 矩阵的冒号运算符 68
3.2 利用M文件来创建矩阵 69
3.3 矩阵的乘方和指数运算 70
3.3.1 矩阵的乘方 70
3.3.2 矩阵的指数运算 71
3.4 矩阵的除法和求解线性方程组 71
3.5 行列式及矩阵的逆 72
3.5.1 方阵的行列式与逆矩阵 72
3.6.1 特征值分解 73
3.6 特征值分解和奇异值分解 73
3.5.2 伪逆矩阵 73
3.6.2 矩阵的奇异值分解 74
3.7 LU、QR和Cholesky分解 75
3.7.1 矩阵的LU分解 75
3.7.2 矩阵的QR分解 76
3.7.3 矩阵的Cholesky分解 76
3.7.4 多项式的表示和处理多项式的函数 77
3.7.5 多项式的根和系数 78
3.7.6 多项式的值和特征多项式 78
3.7.7 多项式的乘法和除法 79
3.7.8 多项式的导数 80
3.8 多项式的部分分式 80
3.8.1 将两个多项式的分式表示为部分分式,可以用函数residue来执行 80
3.8.2 函数residue还可以用来对多项式的部分分式作逆运算 81
3.9 多项式的拟合曲线 81
3.10 多项式插值 82
3.10.1 一维插值 83
3.10.2 二维插值 84
3.10.3 三维及多维插值 85
第4章 符号计算 87
4.1 在线帮助和系统演示 88
4.1.1 在钱帮助 88
4.1.2 系统演示程序 90
4.2 创建和使用符号对象 90
4.2.1 符号变量和表达式的定义 90
4.2.2 符号对象调用格式 91
4.2.3 函数sym的其他使用 93
4.2.4 符号函数的生成 94
4.3 运算符 95
4.4 微积分 96
4.4.1 符号微分 97
4.4.2 符号积分 99
4.4.3 求极限 100
4.4.5 泰勒(Taylor)级数的展开 101
4.4.4 级数求和 101
4.5 线性代数 102
4.5.1 基本线性代数运算 102
4.5.2 Jordan标准形 106
4.5.3 奇异值分解 107
4.5.4 特征多项式 108
4.6 符号表达式的化简 109
4.6.1 collect函数 109
4.6.2 expand函数 110
4.6.3 factor函数 110
4.6.4 horner函数 111
4.6.5 numden函数 111
4.6.6 simple和simplify函数 111
4.6.7 subexpr和subs函数 113
4.7 方程求解 114
4.7.1 求解代数方程 115
4.7.2 求解微分方程 119
4.8 常用特殊符号函数 120
4.9 MAPLE的运用 123
4.9.1 对特殊函数的调用 123
4.9.2 MAPLE库函数在线帮助 124
4.9.3 调用MAPLE库函数 124
第5章 高级编程技术 127
5.1 数据输入输出 127
5.1.1 数据输入 127
5.1.2 数据输出 128
5.2 文件读写I/O命令函数 130
5.2.1 fopen函数 130
5.2.2 fclose函数 131
5.2.3 fprintf函数 131
5.2.4 fscanf函数 132
5.2.5 fread函数 132
5.2.6 fwrite函数 132
5.2.7 fgetl函数 133
5.2.8 frewind函数 134
5.2.9 fseek函数 134
5.2.10 ftell函数 135
5.3 图像文件的读写与显示 135
5.4 使用外部函数优化程序 138
5.5 MATLAB和其他语言的接口 138
5.5.1 编译程序环境设置 139
5.5.2 Mex文件及其结构 141
5.5.3 Mex技术应用举例 143
5.6 内存管理 144
第6章 MATLAB的绘图功能 147
6.1 基本绘图函数 147
6.2 二维图形的绘制 147
6.2.1 绘制二维图形的一般步骤 147
6.2.2 plot函数的调用格式 148
6.3.1 色彩、线型和数据点标志 150
6.3 基本的绘图控制 150
6.3.2 坐标轴的控制 152
6.3.3 坐标网格 153
6.3.4 图形的标注和图例 153
6.3.5 图形的叠加功能 154
6.3.6 离散数据点的绘制 155
6.4 MATLAB的图形窗口 156
6.4.1 建立图形窗口 156
6.4.2 子图 157
6.5 三维图形的绘制 158
6.5.1 三维曲线图形的绘制 158
6.5.2 创建三维图形的基本步骤 159
6.5.3 网格和曲面图形的绘制 160
6.6 伪彩色图 161
6.7.1 三维图的光照效果 163
6.7.2 视角的控制 163
6.7 三维图形的控制 163
6.7.3 坐标轴的控制 164
6.8 绘制特殊图形 165
6.8.1 区域图 165
6.8.2 直方图 166
6.8.3 饼图的绘制 168
6.8.4 柱状图的绘制 169
6.8.5 枝干图的绘制 170
6.9 从图形窗口进行交互控制 172
6.9.1 使用“编辑”菜单项进行控制 173
6.9.2 利用“插入”菜单项进行控制 174
6.9.3 利用菜单进行其他控制 175
6.10 图形的打印和输入 176
6.10.1 图形打印的菜单操作方式 176
6.10.2 利用命令打印图形 178
6.11 MATLAB 6.0的绘图命令 179
7.1 安装Notebook 183
第7章 Notebook的使用 183
7.1.1 MATLAB 6.0中Notebook的安装 184
7.1.2 MATLAB 5.0~5.3版本如何安装Notebook 186
7.2 启动Notebook 186
7.2.1 Word中启动Notebook 187
7.2.2 从MATLAB 6.0中启动Notebook 188
7.2.3 启动失败的补救措施 188
7.3.1 Notebook菜单简介 190
7.3 Notebook的使用环境 190
7.3.2 右键弹出菜单 196
7.4 Notebook的使用 197
7.4.1 中文M.book模板的初始化 197
7.4.2 单元的定义和使用 198
7.4.3 计算区、循环运行 202
7.4.4 输出的控制 204
第8章 稀疏矩阵 207
8.1.2 创建稀疏矩阵 208
8.1 稀疏矩阵的概念 208
8.1.1 稀疏矩阵的保存 208
8.2 基本稀疏矩阵 211
8.2.1 单位稀疏矩阵 211
8.2.2 随机稀疏矩阵 212
8.2.3 正态分布的随机稀疏矩阵 213
8.2.4 稀疏对称随机矩阵 215
8.3 满矩阵和稀疏矩阵的转换 216
8.3.1 查找非0元素的下标 216
8.3.2 稀疏矩阵与满矩阵的转换 217
8.4 载入稀疏矩阵 218
8.5 稀疏矩阵的非0元素操作 219
8.5.1 求非0元素的个数 219
8.5.2 非0元素 219
8.5.3 非0元素存储空间数 220
8.5.4 非0元素的计算 220
8.5.5 非0元素用1替换 221
8.6 稀疏矩阵的可视化 222
8.7 稀疏矩阵的运算 223
8.7.1 稀疏矩阵的运算规则 223
8.7.2 稀疏矩阵的排序 224
8.7.3 范数、条件数和秩 226
8.7.4 稀疏矩阵的特征值和奇异值 227
8.7.5 稀疏矩阵的分解 228
8.8 系数矩阵为稀疏矩阵的线性方程 234
8.8.1 双共轭梯度法 234
8.8.2 双共轭梯度稳定法 236
8.8.3 二次共轭梯度法 238
8.8.4 广义最小残差法 239
第9章 MATLAB中的图形用户界面 241
9.1 初识图形用户界面 241
9.1.1 一个简单的例子 242
9.1.2 图形用户界面设计过程和设计原则 246
9.2 MATLAB语言图形界面编程基础 248
9.2.1 窗口对象及其属性 249
9.2.2 创建常用的对话框 252
9.2.3 基本控件和控件属性 253
9.2.4 菜单对象 255
9.3 图形用户界面设计详例 256
9.3.1 设计图形界面的准备 256
9.3.2 利用控制对象面板设计外观草图 257
9.3.3 添加新的图形对象 258
9.3.4 利用属性编辑器来添加属性内容 262
9.3.5 界面的修饰 263
9.3.6 设计界面的功能测试 265
9.3.7 提供的配套文件和数据 265
附录 269
附录A 基本命令函数目录 269
附录B MATLAB命令按字母顺序索引 303
附录C Toolbox函数 317