图书目录

目    录

第1章  MATLAB概述 1

 1.1  MATLAB简介 1

  1.1.1  MATLAB发展历程 1

  1.1.2  MATLAB体系结构 3

  1.1.3  MATLAB产品家族 4

 1.2  MATLAB的安装与运行 6

  1.2.1  MATLAB运行环境要求 7

  1.2.2  MATLAB的安装 7

  1.2.3  MATLAB的启动与退出 10

 1.3  MATLAB集成开发环境 11

  1.3.1  MATLAB的主菜单 11

  1.3.2  MATLAB的工具栏 15

  1.3.3  MATLAB的窗口 15

 1.4  MATLAB帮助和演示系统 17

  1.4.1  命令窗口帮助系统 17

  1.4.2  联机帮助系统 18

  1.4.3  联机演示系统 19

 思考与练习 20

第2章  MATLAB基础知识与基本运算 21

 2.1  MATLAB数据类型 21

  2.1.1  数值类型 21

  2.1.2  逻辑类型 24

  2.1.3  字符和字符串 25

  2.1.4  函数句柄 28

  2.1.5  结构体 29

  2.1.6  单元数组 32

 2.2  基本运算符 36

  2.2.1  算术运算符 36

  2.2.2  关系运算符 36

  2.2.3  逻辑运算符 37

  2.2.4  运算符优先级 38

 2.3  数组及其运算 38

  2.3.1  数组的创建 39

  2.3.2  数组元素的访问 40

  2.3.3  数组操作 41

  2.3.4  数组运算 47

  2.3.5  多维数组 48

 2.4  矩阵及其运算 50

  2.4.1  特殊矩阵 50

  2.4.2  稀疏矩阵 51

  2.4.3  矩阵运算 53

 思考与练习 54

第3章  MATLAB程序设计基础 55

 3.1  M文件介绍 55

  3.1.1  M文件编辑器 55

  3.1.2  M文件的基本内容 56

  3.1.3  脚本M文件 57

  3.1.4  函数M文件 58

 3.2  流程控制 59

  3.2.1  顺序结构 59

  3.2.2  条件控制结构 59

  3.2.3  循环控制结构 62

  3.2.4  程序终止控制 64

  3.2.5  错误控制结构 65

  3.2.6  人机交互命令 66

 3.3  变量和函数 68

  3.3.1  全局变量和局部变量 68

  3.3.2  变量的传递 70

  3.3.3  主函数和子函数 73

  3.3.4  私有函数 73

  3.3.5  嵌套函数 73

  3.3.6  重载函数 74

  3.3.7  匿名函数 75

 3.4  串演算函数 75

  3.4.1  eval函数 75

  3.4.2  inline函数 76

 3.5  内存的使用 77

  3.5.1  内存管理函数 77

  3.5.2  高效使用内存的策略 78

 3.6  MATLAB面向对象程序设计 80

  3.6.1  面向对象基础 80

  3.6.2  MATLAB类的定义 81

  3.6.3  MATLAB对象的使用 86

  3.6.4  面向对象程序实例 87

 思考与练习 89

第4章  MATLAB数据文件I/O 91

 4.1  导入向导的使用 91

 4.2  文件的基本操作 94

  4.2.1  文件的打开与关闭 94

  4.2.2  文件的位置控制 96

 4.3  读写MAT文件 97

  4.3.1  MAT文件的写入 98

  4.3.2  MAT文件的读取 99

 4.4  读写二进制文件 99

  4.4.1  二进制文件的写入 99

  4.4.2  二进制文件的读取 101

 4.5  读写文本文件 102

  4.5.1  文本文件的写入 103

  4.5.2  文本文件的读取 105

 4.6  操作音频/视频文件 107

  4.6.1  音频文件的导入导出与播放 107

  4.6.2  视频文件的导入导出与播放 110

 思考与练习 111

第5章  MATLAB图形绘制 112

 5.1  图形绘制基本流程 112

 5.2  二维图形的绘制 114

  5.2.1  绘制二维曲线 114

  5.2.2  设置曲线样式 115

  5.2.3  添加图形标注 117

  5.2.4  定制坐标轴 118

  5.2.5  多图形绘制 119

  5.2.6  子图绘制 120

  5.2.7  特殊图形绘制 121

 5.3  三维图形的绘制 124

  5.3.1  绘制三维曲线 124

  5.3.2  绘制三维曲面 125

  5.3.3  绘制特殊三维图形 127

  5.3.4  三维图形显示控制 129

 思考与练习 134

第6章  MATLAB高级图形用户界面设计 135

 6.1  句柄图形对象 135

  6.1.1  句柄图形结构 136

  6.1.2  图形对象的属性 138

  6.1.3  图形对象的创建 143

  6.1.4  图形对象创建实例 145

 6.2  图形用户界面设计原则和一般步骤 146

  6.2.1  设计原则 147

  6.2.2  设计步骤 147

 6.3  全命令行的M文件编程实现GUI设计 147

  6.3.1  回调函数的编写 148

  6.3.2  图形用户界面设计实例 148

 6.4  GUIDE辅助的GUI设计 156

  6.4.1  GUIDE介绍 156

  6.4.2  交互组件 159

  6.4.3  设计菜单 163

  6.4.4  编写回调函数 165

 思考与练习 169

第7章  MATLAB与Word和Excel的组合使用 171

 7.1  Notebook简介 171

  7.1.1  Notebook的配置 171

  7.1.2  Notebook的启动 172

 7.2  在MS-Word中使用Notebook 173

  7.2.1  Notebook菜单功能 174

  7.2.2  输入单元(组)和输出单元 174

  7.2.3  自初始化单元 177

  7.2.4  Notebook菜单的其他常用选项 177

  7.2.5  输出单元的格式控制 179

 7.3  Excel?Link简介 180

  7.3.1  Excel Link的配置与安装 181

  7.3.2  Spreadsheet Link EX工具栏 182

 7.4  Excel?Link函数 185

  7.4.1  连接管理函数 185

  7.4.2  数据管理函数 187

  7.4.3  使用Excel Link函数的注意事项 187

 7.5  Excel Link应用实例 189

 思考与练习 193

第8章  MATLAB与C/C++混合编程 194

 8.1  MATLAB混合编程概述 194

  8.1.1  MATLAB外部接口简介 194

  8.1.2  常用MATLAB与C/C++混合编程方法 196

 8.2  使用MAT文件实现数据交互 196

  8.2.1  MAT文件简介 196

  8.2.2  操作MAT文件的MATLAB API 197

  8.2.3  编译和链接C/C++ MAT程序的环境配置 198

  8.2.4  使用MAT文件实现数据交互实例 200

 8.3  使用共享库实现混合编程 203

  8.3.1  MATLAB调用共享库函数 203

  8.3.2  给共享库中的函数传递参数 205

  8.3.3  使用libpointer/libstruct对象传递参数 207

  8.3.4  使用共享库实现混合编程实例 208

 8.4  使用MEX文件实现混合编程 209

  8.4.1  MEX文件简介 210

  8.4.2  使用MEX文件的环境配置 211

  8.4.3  C语言MEX函数 213

  8.4.4  C语言创建MEX文件实例 214

  8.4.5  C++语言创建MEX文件实例 215

 8.5  使用MATLAB引擎实现混合编程 217

  8.5.1  MATLAB引擎简介 218

  8.5.2  MATLAB引擎函数 218

  8.5.3  MATLAB引擎的使用 219

  8.5.4  VS2005中开发MATLAB引擎程序实例 220

 8.6  使用MATLAB编译器实现混合编程 222

  8.6.1  MATLAB编译器简介 222

  8.6.2  编译器的安装与配置 224

  8.6.3  编译和部署MATLAB程序 225

  8.6.4  使用编译器混合编程实例 226

 思考与练习 231

第9章  MATLAB与Java混合编程 232

 9.1  MATLAB的Java接口与MATLAB Builder JA 232

  9.1.1  MATLAB Java接口简介 232

  9.1.2  MATLAB Builder JA简介 232

 9.2  在MATLAB环境中调用Java 233

  9.2.1  在MATLAB中访问Java类的准备工作 233

  9.2.2  创建和使用Java对象 235

  9.2.3  在MATLAB中使用Java数组 238

  9.2.4  Java对象与MATLAB数据交互 239

 9.3  在Java环境中调用MATLAB 242

  9.3.1  MATLAB Builder JA安装与环境配置 242

  9.3.2  创建Java组件 244

  9.3.3  发布Java组件 246

  9.3.4  在Java程序中调用Java组件 246

 9.4  MATLAB与Java混合编程实例 250

  9.4.1  MATLAB环境调用Java实例 250

  9.4.2  Java环境调用MATLAB实例 251

 思考与练习 256

第10章  MATLAB科学计算 257

 10.1  数据插值 257

  10.1.1  一维插值 257

  10.1.2  二维插值和三维插值 259

  10.1.3  数据插值实例 260

 10.2  曲线拟合 263

  10.2.1  多项式基础 264

  10.2.2  多项式曲线拟合应用实例 267

 10.3  微积分 269

  10.3.1  积分 269

  10.3.2  导数 271

  10.3.3  极限 272

  10.3.4  级数求和 273

  10.3.5  泰勒级数展开 274

 10.4  线性方程组求解 275

  10.4.1  直接法 275

  10.4.2  矩阵求逆法 276

  10.4.3  矩阵分解法 276

  10.4.4  迭代法 278

 10.5  非线性方程(组)求解 280

  10.5.1  非线性方程的求根 281

  10.5.2  非线性方程组的数值解法 282

 10.6  微分方程求解 285

  10.6.1  常微分方程求解 285

  10.6.2  偏微分方程求解 286

  10.6.3  偏微分方程求解实例 287

 10.7  最优化问题 290

  10.7.1  最优化函数 290

  10.7.2  无约束最优化 290

  10.7.3  有约束最优化 292

  10.7.4  线性规划 293

 思考与练习 294

第11章  Simulink仿真 296

 11.1  Simulink基本概念 296

  11.1.1  Simulink运行方法及编辑窗口 296

  11.1.2  Simulink模块库 297

  11.1.3  Simulink模块基本操作 298

  11.1.4  Simulink仿真参数设置 300

 11.2  Simulink子系统建立与封装技术 302

  11.2.1  子系统建立 302

  11.2.2  条件执行子系统建立 303

  11.2.3  子系统封装方法与实例 304

 11.3  Simulink仿真命令与回调方法 307

  11.3.1  Simulink模型构造与编辑命令 307

  11.3.2  Simulink模型仿真命令 308

  11.3.3  模型与模块的回调方法 309

 11.4  S函数 312

  11.4.1  S函数基本概念 312

  11.4.2  S函数工作原理 313

  11.4.3  用M文件编写S函数 314

  11.4.4  S函数创建器的使用 316

 11.5  Stateflow原理与应用 317

  11.5.1  Stateflow应用基础 317

  11.5.2  Stateflow建模实例 318

 11.6  Simulink模型的实时代码生成技术 321

  11.6.1  Real-Time Workshop介绍 321

  11.6.2  Simulink模型的普通实时代码生成实例 322

 思考与练习 324

第12章  MATLAB信号处理 325

 12.1  信号处理工具箱基础 325

  12.1.1  工具箱简介 325

  12.1.2  交互式工具 326

  12.1.3  基本的信号处理概念 326

  12.1.4  信号产生实例 328

 12.2  滤波器设计与实现 329

  12.2.1  滤波器的实现和分析 330

  12.2.2  频率响应 331

  12.2.3  滤波器的设计 334

  12.2.4  滤波器设计实例 336

  12.2.5  用Filterbuilder GUI设计滤波器 338

  12.2.6  滤波器设计和分析GUI 339

 12.3  统计信号处理 340

  12.3.1  相关和协方差 341

  12.3.2  谱估计 341

 12.4  信号处理GUI 342

  12.4.1  信号观察器 343

  12.4.2  滤波器可视化工具 344

  12.4.3  频谱观察器 344

  12.4.4  噪声的滤波和分析 345

 12.5  工具箱中的其他常用处理方法 347

  12.5.1  窗 347

  12.5.2  参数建模 348

  12.5.3  重采样 350

  12.5.4  倒谱分析及实例 351

  12.5.5  通信应用及实例 351

  12.5.6  特殊变换及实例 352

 思考与练习 354

第13章  MATLAB数字图像处理 355

 13.1  MATLAB图像类型与转换 355

  13.1.1  MATLAB图像类型 355

  13.1.2  MATLAB图像类型转换 356

  13.1.3  MATLAB图像类型转换实例 356

 13.2  图像读写和显示 357

  13.2.1  图像读写函数 357

  13.2.2  图像显示函数 358

  13.2.3  图像读写与显示实例 359

 13.3  图像变换 360

  13.3.1  图像离散傅里叶变换 360

  13.3.2  图像离散余弦变换 361

  13.3.3  图像离散小波变换 362

 13.4  图像增强 364

  13.4.1  直接灰度修正 365

  13.4.2  直方图均衡化 367

  13.4.3  图像噪声消除 368

  13.4.4  同态滤波图像增强 373

 13.5  图像的数学形态学处理 374

  13.5.1  数学形态学简介 375

  13.5.2  MATLAB数学形态学函数 375

  13.5.3  二值图像形态学分析实例 376

  13.5.4  灰度图像形态学分析实例 378

 习题与练习 380

第14章  MATLAB通信系统仿真 382

 14.1  数字通信系统基本概念 382

 14.2  数字调制/解调及其仿真 383

  14.2.1  脉冲幅度调制(PAM)信号 384

  14.2.2  相位调制(PSK)信号 385

  14.2.3  频率调制信号 386

  14.2.4  连续相位调制信号 388

 14.3  信道编码/译码及其仿真 389

  14.3.1  线性分组码 389

  14.3.2  循环码 392

  14.3.3  卷积码 395

 14.4  典型数字通信仿真实例 398

  14.4.1  2FSK信号在高斯白噪声信道的传输性能 398

  14.4.2  TDMA信号收发系统仿真 400

 思考与练习 407

  

  

XII

  

XIII