《精通MATLAB 7编程与数据库应用》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:董振海编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2007
  • ISBN:7121049309
  • 页数:542 页
图书介绍:本书是一本全面、详细地介绍MATLAB程序设计各个方面的书。从怎样进入MATLAB,到程序调试;从基本程序元素,到过程控制、数据输入/输出;从一般编程,到数据库连接、应用。主要介绍进入MATLAB界面及其上的各个部分,以及命令窗口的操作;组成程序的各种成分和MATLAB的数据类型;编写两种M文件——脚本和函数,MATLAB的各种函数,以及控制流程的语句;调试程序时的错误处理和程序优化方法;输入/输出数据的各种方法和函数;MATLAB与数据库的接口——数据库工具箱,数据库工具箱的函数及可视查询生成器(VQB);图形用户接口(GUI)的各种控件,以及GUI应用的5个实例,会让我们学到建立不同GUI的技术。除了控制流程的语句之外,实现数据处理、数据输入/输出,以及形形色色的操作,都是由MATLAB的固有函数完成的。本书涉及到的函数,基本上都详尽地列出了它们的不同调用格式,讲解各自的输入和输出参数的意义,描述函数功能,读者不必再查阅别的资料。大量的实例,每一节甚至每一类函数都有例子,以帮助读者尽快地理解内容。本书尽量避免生涩词汇,力求语言生动活泼,描述通俗易懂。本书适合MATLAB程序设计的初

第1章 初识MATLAB 1

1.1 什么是MATLAB 1

1.2 启动和退出MATLAB 2

1.2.1 启动MATLAB 2

1.2.2 退出MATLAB 2

1.2.3 MATLAB桌面 3

1.3 桌面工具和开发环境 4

1.3.1 排列桌面 4

1.3.2 “Start”按钮 4

1.3.3 命令窗口 5

1.3.4 命令历史 5

1.3.5 帮助浏览器 7

1.3.6 当前目录浏览器 8

1.3.7 搜索路径(SearchPath) 11

1.3.8 工作区浏览器 13

1.3.9 数组编辑器 15

1.3.10 Editor/Debugger 17

1.3.11 M-Lint代码检查报告 18

1.3.12 Profiler 18

1.4 命令窗口的操作 18

1.4.1 语法帮助 18

1.4.2 命令和函数的语法 19

1.4.3 命令行继续和一行多个语句 19

1.4.4 使用Tab键完成命令 20

1.4.5 重新调用以前的语句行 22

1.4.6 清除写入的命令 22

1.4.7 抑制输出到屏幕 22

第2章 基本程序元素 23

2.1 变量 23

2.1.1 变量名 23

2.1.2 变量类型 24

2.1.3 有关变量的几个函数 25

2.2 关键字 26

2.3 特殊值 26

2.4 运算符 27

2.4.1 算术运算符 27

2.4.2 关系运算符 29

2.4.3 逻辑运算符和逻辑运算函数 30

2.4.4 运算符的优先级 32

2.5 MATLAB函数 32

第3章 数据类型 33

3.1 MATLAB数据类型概述 33

3.2 数字型 34

3.2.1 整数 34

3.2.2 浮点数 35

3.2.3 复数 38

3.2.4 无穷大数 38

3.2.5 非数值 39

3.2.6 识别数据类型 40

3.2.7 数字值的显示格式 40

3.2.8 有关数字型数据的函数 42

3.3 逻辑型 43

3.3.1 建立逻辑数组 43

3.3.2 使用逻辑数组 44

3.3.3 识别逻辑数组 45

3.4 字符与字串 46

3.4.1 建立字符数组 46

3.4.2 字串单元数组 49

3.4.3 字串比较 50

3.4.4 查找与替换 54

3.4.5 数字转换为字串 57

3.4.6 字串转换为数字 58

3.4.7 执行字符串 59

3.4.8 用规则表达式查找和替换的函数 61

3.4.9 字符数组函数汇总 64

3.5 日期和时间 65

3.5.1 日期格式的类型 66

3.5.2 转换日期格式 67

3.5.3 当前的日期和时间 73

3.5.4 函数汇总 74

3.6 结构 74

3.6.1 建立结构数组 75

3.6.2 存取结构数组的数据 78

3.6.3 使用动态字段名 80

3.6.4 增加和删除结构字段 81

3.6.5 以字段或元素为对象做运算 82

3.6.6 写操作结构的函数 82

3.6.7 用结构数组组织数据 83

3.6.8 嵌套结构 86

3.6.9 多维结构数组 88

3.6.10 函数汇总 89

3.7 单元数组 90

3.7.1 建立单元数组 91

3.7.2 从单元数组取数据 94

3.7.3 删除单元和重塑单元数组 96

3.7.4 用单元数组代替变量列表 97

3.7.5 用单元数组组织数据 98

3.7.6 嵌套单元数组 98

3.7.7 单元数组与数字数组的转换 100

3.7.8 结构的单元数组 101

3.7.9 多维单元数组 102

3.7.10 函数汇总 102

3.8 函数句柄 104

第4章 数组和矩阵的基本操作 105

4.1 建立和连接矩阵 105

4.1.1 构造简单矩阵 105

4.1.2 专业化的矩阵函数 106

4.1.3 连接矩阵 113

4.1.4 连接矩阵的函数 114

4.1.5 生成数字序列 117

4.1.6 组合不同的数据类型 118

4.2 矩阵的索引 120

4.2.1 存取单个元素 120

4.2.2 线性索引 120

4.2.3 控制索引形式的函数 121

4.2.4 存取多个元素 123

4.2.5 逻辑索引 124

4.2.6 赋值语句中的矩阵索引 125

4.3 获取有关矩阵的信息 125

4.3.1 矩阵的维数 126

4.3.2 矩阵使用的数据类型 128

4.3.3 矩阵的数据结构 132

4.4 改变矩阵的大小和形状 132

4.4.1 扩展矩阵 132

4.4.2 缩小矩阵 134

4.4.3 重塑矩阵形状 135

4.4.4 预分配内存 139

4.5 矩阵元素的移位和排序 140

4.5.1 circshift函数 140

4.5.2 sort函数 140

4.5.3 sortrows函数 142

4.5.4 issorted函数 144

4.6 对角矩阵 145

4.6.1 trace函数 145

4.6.2 tril函数 145

4.6.3 Triu函数 146

4.7 空矩阵、标量和向量 146

4.7.1 空矩阵 146

4.7.2 标量 148

4.7.3 向量 149

4.8 完全矩阵和稀疏(sparse)矩阵 149

4.8.1 稀疏矩阵 149

4.8.2 有关稀疏矩阵的函数 150

4.9 多维数组 154

4.9.1 概述 154

4.9.2 建立多维数组 155

4.9.3 存取多维数组的属性 158

4.9.4 多维数组的索引 159

4.9.5 重塑多维数组 162

4.9.6 重新排列多维数组的维 163

4.9.7 多维数组作为运算对象 164

4.9.8 用多维数组组织数据 167

4.9.9 多维单元数组 167

4.9.10 多维结构数组 168

4.9.11 矩阵和数组函数汇总 169

第5章 M文件程序设计 171

5.1 程序开发 171

5.1.1 程序开发的建议 171

5.1.2 建立和运行程序 172

5.2 过程控制语句 173

5.2.1 条件控制 173

5.2.2 循环控制 175

5.2.3 错误控制 178

5.2.4 提前结束程序 179

5.3 写M文件 179

5.3.1 两种M文件 179

5.3.2 M文件的基本内容 180

5.3.3 M文件名与函数名 181

5.3.4 识别函数是否为M文件函数 181

5.3.5 读M文件函数的源码 181

5.3.6 M文件的例子 181

5.4 函数的类型 182

5.4.1 主函数(primary) 182

5.4.2 子函数(subroutine) 183

5.4.3 私有函数(Private) 183

5.4.4 嵌套函数 184

5.4.5 重载函数(Overloaded) 190

5.4.6 匿名函数 191

5.5 函数的参数 196

5.5.1 确定输入/输出参数的个数 196

5.5.2 传送或返回可变数目的参数 198

5.5.3 返回被改变的输入参数 200

5.6 函数句柄 201

5.6.1 构建函数句柄 201

5.6.2 用函数句柄调用函数 201

5.6.3 有关函数句柄的函数 202

5.7 调用函数 202

5.7.1 调用函数时MATLAB会做什么 202

5.7.2 多个函数同名时MATLAB调用哪一个 202

5.7.3 调用格式 203

5.7.4 传送特定类型的参数 205

5.7.5 用结构或单元数组传送参数 206

5.7.6 调用外部函数 207

5.7.7 强制调用内部函数 207

第6章 程序调试和优化 209

6.1 在Debugger窗口调式程序 209

6.2 设置断点 211

6.2.1 设置标准断点 212

6.2.2 设置条件断点 214

6.2.3 设置错误断点 219

6.3 交互地使用命令窗口和Debugger窗口 221

6.3.1 keyboard语句 221

6.3.2 详说命令窗口看变量 221

6.4 彩色语法突出显示(Syntaxhighlighting),改正语法错误 223

6.5 利用错误信息 224

6.6 在MATLAB命令窗口进入Debug方式 224

6.7 Cells 226

6.8 M-Lint 228

6.8.1 M-Lint的图形用户界面 228

6.8.2 mlint函数 232

6.8.3 File Comparison Repoort(文件比较报告) 233

6.9 Profile 234

6.9.1 使用Profiling的一般过程 234

6.9.2 打开Profiler 234

6.9.3 运行Profiler 235

6.9.4 Profiler简略报告 236

6.9.5 Profiler详细报告 237

6.9.6 profile函数 240

第7章 错误处理 242

7.1 使用try-catch语句捕捉错误 242

7.1.1 try-catch构成的语句块 242

7.1.2 嵌套try-catch块 243

7.2 处理错误和从错误中恢复 244

7.2.1 报告错误 244

7.2.2 揭示错误原因 246

7.3 警告 248

7.3.1 发出警告 248

7.3.2 警告控制 249

7.3.3 揭示警告原因 254

7.4 排除错误和警告 255

第8章 数据输入和输出 256

8.1 概述 256

8.2 使用输入向导 258

8.2.1 使用输入向导输入文本数据 258

8.2.2 使用输入向导输入二进制数据 260

8.3 保存和加载MAT文件 261

8.3.1 输出数据到MAT文件 261

8.3.2 从MAT文件输入数据 266

8.4 输入文本数据 268

8.4.1 使用输入函数处理文本数据 268

8.4.2 输入数字文本数据 269

8.4.3 输入有定界符的ASCII数据文件 269

8.4.4 输入带有文本头的数字数据 270

8.4.5 输入字母和数字混合数据 278

8.5 输出文本数据 282

8.5.1 输出定界的ASCII数据文件 282

8.5.2 使用diary函数输出数据 284

8.5.3 使用csvwrite函数 286

8.6 输入/输出标准图像文件 287

8.6.1 得到有关图像文件的信息 287

8.6.2 输入图像数据 289

8.6.3 输出图像数据 293

8.7 输入/输出音频和视频数据 298

8.7.1 得到有关音频和视频文件的信息 298

8.7.2 输入音频和视频数据 300

8.7.3 输出音频和视频数据 303

8.8 输入/输出电子表数据 305

8.8.1 Microsoft Excel电子表 305

8.8.2 Lotus 123电子表 310

8.9 低级文件输入/输出函数 312

8.9.1 打开文件——fopen函数 313

8.9.2 读二进制数据 314

8.9.3 写二进制数据 317

8.9.4 控制文件的读/写位置 318

8.9.5 从文本文件逐行读字串 320

8.9.6 读格式化的ASCII数据 322

8.9.7 写格式化文本文件 324

8.9.8 关闭文件 327

8.10 函数汇总 327

第9章 使用数据库工具箱函数 329

9.1 数据库工具箱(Database Toolbox) 329

9.1.1 数据库工具箱概述 329

9.1.2 数据库工具箱的特点 330

9.1.3 系统要求 330

9.2 建立数据库连接 331

9.2.1 为ODBC驱动程序建立数据源 331

9.2.2 连接数据库 333

9.2.3 建立并打开游标(cursor) 334

9.3 从数据库将数据输入到MATLAB 335

9.3.1 logintimeout函数 335

9.3.2 database函数 335

9.3.3 ping函数 336

9.3.4 exec函数 336

9.3.5 setdbprefs函数 337

9.3.6 fetch函数 340

9.3.7 close函数 343

9.3.8 将数据输入到MATLAB实例 343

9.4 查看有关输入数据的信息 344

9.4.1 rows函数 344

9.4.2 cols函数 344

9.4.3 columnnames函数 344

9.4.4 width函数 345

9.4.5 attr函数 345

9.4.6 实例 346

9.5 将数据从MATLAB输出到数据库,生成一个新记录 348

9.5.1 get函数 348

9.5.2 insert函数 350

9.5.3 commit函数 351

9.5.4 实例 352

9.6 更新数据库中已存在的数据 355

9.6.1 update函数 355

9.6.2 rollback函数 356

9.6.3 set函数 357

9.6.4 exec函数 357

9.6.5 实例:修改数据表中某些列的数据 358

9.7 存取metadata 358

9.7.1 dmd函数 358

9.7.2 supports函数 358

9.7.3 tables函数 359

9.7.4 实例 360

9.8 与数据库有关的对象和单元数组 363

9.8.1 与数据库工具箱有关的对象与方法 363

9.8.2 操作数据库时使用单元数组 365

9.9 函数汇总 370

第10章 可视查询生成器 371

10.1 建立数据源 371

10.2 启动和关闭VQB 371

10.3 建立并执行输入数据的查询 372

10.3.1 为读取数据建立查询并执行 373

10.3.2 保存和编辑查询 374

10.3.3 为NULLS、数据格式和错误处理指定优先权 375

10.4 浏览查询结果 376

10.4.1 数据的关系表 377

10.4.2 图表显示结果 378

10.4.3 报表显示在Web浏览器上 379

10.4.4 利用报表生成器定制报表 380

10.5 精细查询 383

10.5.1 读取的字段值避免重复 383

10.5.2 读取符合指定条件的信息 384

10.5.3 给指定条件分组 385

10.5.4 按指定顺序排列结果 387

10.5.5 用多个表的值建立子查询 388

10.5.6 联合查询——结果来自多个表的查询 391

10.5.7 用VQB输出数据 392

10.6 MATLAB的逻辑型数(BOOLEAN Data) 394

10.6.1 输入BOOLEAN类型数 394

10.6.2 输出BOOLEAN类型数 396

10.7 在数据库工具箱函数中使用VQB生成的查询 397

10.7.1 在exec函数中插入VQB SQL语句 397

10.7.2 执行插入(insert)语句 398

第11章 建立图形用户界面 399

11.1 引见GUIDE 399

11.1.1 启动GUIDE 399

11.1.2 布局编辑器 400

11.1.3 GUIDE模板 401

11.1.4 GUI的FIG文件和M文件 401

11.1.5 GUIDE组件介绍 402

11.2 建立GUI 402

11.2.1 设置GUI的大小 403

11.2.2 为GUI加控件 403

1.2.3 调整控件位置 404

11.2.4 设置Tab顺序 406

11.2.5 控件前后位置的控制 407

11.2.6 选择GUI选项 407

11.3 设置控件的属性 411

11.3.1 属性检查器(Property Inspector) 411

11.3.2 共同使用的属性 411

11.3.3 为一些特定控件设置属性 412

11.3.4 Callback属性 416

11.3.5 改变Tag属性 418

11.3.6 改变Callback属性 418

11.3.7 对象浏览器(Object Browser) 419

11.3.8 为控件设置属性的实例 420

11.4 建立菜单 423

11.4.1 菜单编辑器(Menu Editor) 423

11.4.2 定义下拉菜单 424

11.4.3 菜单的Callbacks(响应属性) 427

11.4.4 定义快捷菜单(Context Menu) 428

第12章 GUI程序设计 432

12.1 理解M文件 432

12.1.1 利用handles结构数组共享数据 432

12.1.2 M文件的函数和响应函数 433

12.1.3 输入和输出参数 435

12.1.4 有关函数 436

12.2 为GUI的控件设计响应函数 437

12.2.1 开关按钮的Callback函数 437

12.2.2 单选钮和复选框 438

12.2.3 编辑文本框 438

12.2.4 滑动条 439

12.2.5 列表框 439

12.2.6 弹出菜单 439

12.2.7 组面板 440

12.2.8 按钮组 440

12.2.9 坐标轴 441

12.2.10 ActiveX控件 442

12.2.11 Figure 447

12.2.12 一些函数 447

12.3 使用handles结构管理GUI数据 459

12.3.1 在响应函数之间传送数据的实例 459

12.3.2 应用程序数据(Application Data) 461

12.4 为跨平台兼容性设计GUI 462

12.4.1 使用默认系统字体 462

12.4.2 使用标准背景颜色 463

12.4.3 跨平台可兼容的Figure Units 463

12.5 响应函数的类型 463

12.5.1 所有图形对象的响应函数 463

12.5.2 figures的响应属性 464

12.5.3 特定控件的响应函数 464

12.5.4 执行哪个响应函数 465

12.5.5 添加响应函数 465

12.6 中断执行的响应函数 465

12.6.1 控制中断 465

12.6.2 事件队列 466

12.6.3 响应函数执行期间的事件处理 466

12.6.4 有关函数 467

12.7 Modal figure窗口 470

12.7.1 使figure成为Modal窗口 470

12.7.2 解除Modalfigure窗口 470

12.7.3 Modal figure应用实例 471

12.7.4 有关函数 479

第13章 GUI应用实例 483

13.1 具有多个坐标轴的GUI 483

13.1.1 实例中应用的技术 483

13.1.2 预览GUI完整的布局 484

13.1.3 建立GUI 484

13.1.4 Plot命令按钮的响应函数 485

13.2 列表框目录阅读器 487

13.2.1 观看GUI布局 487

13.2.2 为列表指定目录 488

13.2.3 将项目加载到列表框 488

13.2.4 列表框的响应函数Callback 489

13.2.5 GUIM文件全貌 490

13.3 从列表框存取工作区变量 493

13.3.1 GUI布局及属性设置 494

13.3.2 GUI中应用的技术 495

13.3.3 读工作区变量 495

13.3.4 从列表框中得到被选项 495

13.3.5 绘图命令按钮的响应函数 496

13.3.6 完整的GUIM文件 496

13.4 地址簿阅读器 499

13.4.1 GUI布局和属性设置 499

13.4.2 在实例中应用的技术 500

13.4.3 管理共享数据 500

13.4.4 运行GUI 500

13.4.5 将地址簿加载到阅读器 501

13.4.6 Contact Name的响应函数 503

13.4.7 Contact Phone Number的响应函数 504

13.4.8 在地址簿中翻页——Prev/Next命令按钮 505

13.4.9 利用菜单保存对地址簿的修改 506

13.4.10 Create New子菜单 507

13.4.11 地址簿的resize函数 507

13.4.12 地址簿GUI M文件全貌 509

13.5 设置Simulink Model参数的GUI 516

13.5.1 GUI的完整布局及属性设置 516

13.5.2 实例中应用的技术 517

13.5.3 怎样使用GUI 517

13.5.4 运行GUI 518

13.5.5 为滑动条和编辑文本框设计程序 520

13.5.6 从GUI运行模拟 521

13.5.7 从列表框中删除结果 522

13.5.8 用结果数据绘图 523

13.5.9 GUI的Help命令按钮 524

13.5.10 关闭GUI 524

13.5.11 列表框的Callback和Create函数 524

13.5.12 本实例的GUIM文件全貌 525

13.6 有关函数 532

13.6.1 文件和目录函数 532

13.6.2 对话框函数 535

13.6.3 其他函数 538

第2章 基本程序元素 23

例2.1 变量TICTOC被tic和toc函数共享,这两个函数都声明它为全局变量 24

例2.2 声明永久变量SUM_X并测试 26

例2.3 标量扩展 28

例2.4 两个向量,做不同的矩阵运算和数组运算 28

例2.5 矩阵A乘B 28

例2.6 数组A和数组B比较相等 29

例2.7 X是标量,下面的两组语句是一个结果。第1组的运算过程是标量扩展,即X与数组的每个元素比较。第2组的X=5*ones(3,3),则是对标量扩展的形象注解 30

例2.8 向量A和B的运算 30

例2.9 A和B为标量,作为输入 31

例2.10 捷径运算示例1 31

例2.11 捷径运算示例2 31

例2.12 用函数all对数组A按列、按行做判断 32

第3章 数据类型 33

例3.1 format函数使用举例 41

例3.2 建立逻辑数组B,使B满足条件A>0.5,利用B中1的位置对数组A索引 45

例3.3 找出魔方A中素数的位置,然后利用逻辑索引置非素数为0 45

例3.4 建立三个单元数组a、b和c,然后应用strcat函数 47

例3.5 用strvcat函数连接字符数组t1、t2、t3和t4 48

例3.6 3×32的字符数组,显示了可打印的ASCII字符 49

例3.7 把一个字符数组转换成字串单元数组 49

例3.8 strcmp函数使用举例 51

例3.9 isstrprop函数使用举例 53

例3.10 strrep函数使用举例 54

例3.11 findstr函数使用举例 55

例3.12 strtok函数使用举例 56

例3.13 strmatch函数使用举例 57

例3.14 将数字转换为字串的函数使用举例 57

例3.15 将字串转换为数字的函数使用举例 58

例3.16 eval函数使用举例 60

例3.17 feval函数使用举例 61

例3.18 regexp和regexpi函数使用举例 63

例3.19 regexprep函数使用举例 64

例3.20 datenum函数使用举例 68

例3.21 datestr函数使用举例 70

例3.22 datevec函数使用举例 72

例3.23 利用struct函数建立结构数组 77

例3.24 用动态字段存取结构的值 80

例3.25 对学生的考试成绩求平均分的函数,应用动态字段 80

例3.26 将客户信息组织成两种结构——平面组织和单元素组织,比较它们的优缺点 85

例3.27 有关结构的函数使用举例 89

例3.28 cell函数使用举例 92

例3.29 用celldisp函数显示单元数组A,数组的显示名为dd 93

例3.30 显示例3.29的单元数组A 94

例3.31 有关单元数组的函数使用举例 103

第4章 数组和矩阵的基本操作 105

例4.1 accumarray函数的输入参数较多,多些例子更好说明 108

例4.2 生成三角矩阵 110

例4.3 rand函数使用举例 112

例4.4 randn函数使用举例 112

例4.5 生成随机排列的整数1~n 113

例4.6 垂直连接矩阵A和B,构造出一个新矩阵C 113

例4.7 用cat函数连接矩阵 114

例4.8 建立3×5的矩阵A和3×3的矩阵B,然后水平连接它们 115

例4.9 repmat函数使用举例 116

例4.10 由矩阵a、b、c、d构造一个块对角矩阵out 116

例4.11 组合不同类型的整数 119

例4.12 从矩阵中存取单个元素 120

例4.13 建立一个3×4×2的数组A,取某个元素的值,再将此元素的三维下标转换为线性下标 121

例4.14 2×2×2的数组s,由线性索引求出4个元素的三维索引。图4-3是数组的线性索引映射到三维索引的示意图 122

例4.15 矩阵索引与逻辑索引的比较 124

例4.16 得到数组X的最长的维的大小 126

例4.17 得到数组A的元素数 126

例4.18 假定X=ones(3,4,5) 127

例4.19 制造一个3×5的矩阵A,利用A示范numel、ndims和size函数的使用 127

例4.20 建立用户定义的类polynom的实例,用isa函数识别这个实例是否属于polynom类 129

例4.21 生成单元数组,而后用函数ischar测试单元数组中哪一个单元是字符数组 130

例4.22 建立两个数组,y是复数数组,它的实数部分的值是数组x的值,虚数部分全是0 131

例4.23 检测数组patient是否是结构 131

例4.24 从向量A中挑选出实数元素 131

例4.25 横向连接两个结构数组 133

例4.26 用空单元([])填充单元数组 134

例4.27 将6×6的矩阵重塑成二维和三维数组 136

例4.28 逆时针旋转矩阵X270度 137

例4.29 transpose和ctranspose函数使用举例 138

例4.30 为一个大数组预分配内存,然后从文件读数据块到这个数组,直到文件结束 139

例4.31 circshift函数使用举例 140

例4.32 对矩阵A排序 141

例4.33 sortrows函数使用举例 143

例4.34 测试矩阵是否排过序 144

例4.35 计算矩阵的对角线元素之和 145

例4.36 得到矩阵主对角线下方指定三角区的元素值 145

例4.37 得到矩阵主对角线上方指定三角区的元素值 146

例4.38 测试矩阵A和它的一个元素 149

例4.39 稀疏矩阵S,密度大约是2/3,转换成完全矩阵后,二者需要的存储差不多 150

例4.40 从矩阵A中取出非0元素,构成一个列向量 151

例4.41 生成稀疏矩阵,平均每列至多有3个非0元素 152

例4.42 用不同的i、j和s向量,生成相应的稀疏矩阵 153

例4.43 在数组nddata的基础上,重塑几个新数组,数组的维数变了,但元素数始终一样 162

例4.44 建立一个2×2×3的数组A 164

例4.45 建立一个三维数组,使用snm函数对3个维分别求和 165

例4.46 输出数组B的每个元素,是三维数组X每个元素的平方根 166

第5章 M文件程序设计 171

例5.1 包含else和包含elseif语句的对比 174

例5.2 生成一个矩阵 174

例5.3 switch示例 175

例5.4 for语句示例 176

例5.5 while语句示例 177

例5.6 包含continue语句的循环 177

例5.7 包含break语句的循环 178

例5.8 try语句示例 178

例5.9 包含return语句的函数 179

例5.10 嵌套函数中的变量 188

例5.11 返回函数句柄的两种函数的比较 188

例5.12 (继续例5.11) 190

例5.13 myplot函数的部分代码 196

例5.14 函数在输入的字串中寻找第一个token。一个token是由空线间隔(white space)或其他字符定界的字串 197

例5.15 varargin函数使用示例 198

例5.16 函数testvar接受任意数目的向量,每个向量有两个元素,表示坐标上的一个点,然后在绘图窗口把这些点连成线 198

例5.17 varargout函数使用示例 199

例5.18 varargout函数使用示例 200

例5.19 测定几个函数的输入或输出参数数目,负数表示输入或输出参数数目不确定 200

例5.20 函数plotFHandle的输入参数中包含一个函数句柄fhandle,这是函数中引用的函数句柄 202

例5.21 函数格式与命令格式调用函数时,对输入参数的不同处理 204

例5.22 函数格式与命令格式调用函数时,对输入参数的不同处理 204

例5.23 函数句柄作为输入参数传送给另一个函数 206

例5.24 表5-4所示是几个城市有关天气的数据,把这些数据保存在一个结构数组W中,表中的每一列数据是结构的一个字段 206

例5.25 把若干个画图的属性值参数组织成一个单元数组C,然后在调用中传送给plot函数 207

第6章 程序调试和优化 209

例6.1 一个只有3行的M文件,设置3种不同的断点 213

例6.2 停在第一可执行行 213

例6.3 如果有错误,停止 213

例6.4 输入x的任何一个元素是0,出现被0除问题。给出警告信息,并进入debug方式 213

第7章 错误处理 242

例7.1 仍然使用前面的例子(矩阵乘),只是扩充了代码,以从错误中恢复程序的正常运行 243

例7.2 在error函数中,只有指定了多于一个输入参数时,MATLAB才转换特殊字符,如\n和%d 244

例7.3 下面这个简单的函数,将演示不能找到指定文件时发出的信息 245

例7.4 用lasterr函数确定矩阵乘出错的原因 246

例7.5 在error函数中指定信息标识字串和错误信息,然后在相关的操作失败后,使用lasterr函数确定信息标识字串和错误信息 247

例7.6 为了仅仅使来自Simulink的actionNotTaken警告接通(处在可显示状态),先关闭所有警告,然后只设置这个警告是on状态 250

例7.7 查询所有的警告 251

例7.8 设置特定警告的状态为on,并保存这个警告以前的状态 252

例7.9 warning警告控制语句应用示例 252

例7.10 利用lastwarn函数确定警告原因 254

第8章 数据输入和输出 256

例8.1 保存结构数组 262

例8.2 二次保存文件ABC0610,文件上的变量有何变化 263

例8.3 建立两个3000×3000的矩阵,保存在文件c1和c2中,c1被压缩,c2未压缩,比较它们所占存储大小 264

例8.4 将两个变量保存在ASCII文件june11,合并成一个变量 265

例8.5 按load的函数方式加载,形成结构数组 266

例8.6 从ASCII文件加载 267

例8.7 矩形数据用load命令输入 269

例8.8 用dlmread函数输入数据 270

例8.9 将指定数据输入到单元数组 276

例8.10 只读第一个字段,跳过行中的其余字段 277

例8.11 使用非缺省delimiter和whitespace 277

例8.12 使用非缺省的emptyValue 277

例8.13 使用自定义空值和注解 278

例8.14 使用%读自由格式文件上的所有字段 280

例8.15 按固定格式文件读,忽略浮点值,‘%*f’在起作用 280

例8.16 忽略匹配的字符,‘Level%d’在起作用,忽略了Level 281

例8.17 指定一个值代替空字段 281

例8.18 将M文件读到一个字串单元数组 281

例8.19 使用save函数输出定界ASCII文件 282

例8.20 dlmwrite函数应用 284

例8.21 使用diary的过程 285

例8.22 创建数组M4,csvwrite函数用不同的参数将M4写到文件上 286

例8.23 得到tif文件的信息 288

例8.24 得到音频文件的信息 300

例8.25 利用麦克风录制8位、22kHz单声道数据,录制,听,然后将数据放在MATLAB工作区的uint8数组中 303

例8.26 建立一个AVI文件 305

例8.27 测试文件是否包含Microsoft Excel电子表 306

例8.28 将混合数据写到指定的工作表 307

例8.29 读Excel文件上的数据到MATLAB工作组 309

例8.30 输入图8-19中的Excel的工作表 309

例8.31 将一个4×5的矩阵A写到文件matA.wkl,从行2列3开始写 311

例8.32 建立一个矩阵B,并输出到Lotus电子表文件matB.wkl 311

例8.33 成功与失败的打开文件操作 313

例8.34 验证文件的标识符,确保能成功打开所需要的文件 313

例8.35 fread函数应用示例 316

例8.36 从freadSkip.txt文件读数据 317

例8.37 magic(5)矩阵有25个元素,每个元素写在文件上是4个字节的整数 318

例8-38 读文件testl.dat的指定数据,并写到文件test2.dat上 319

例8.39 运行下面的M文件函数,演示fgetl函数的使用 321

例8.40 这一组语句生成一系列数,被fprintf函数写到文件exp.txt中 323

例8.41 fprintf函数的不同格式 326

第9章 使用数据库工具箱函数 329

例9.1 连接到ODBC数据源SampleDB,用户名和口令不需要给出 334

例9.2 建立JDBC连接 334

例9.3 存取由conn连接的数据库,选择数据库表customers的全部数据,指定返回的游标对象给变量curs 334

例9.4 在SQL查询语句中,字段名可以是一个变量,用input函数交互地将字段名输入到变量 334

例9.5 经Oracle JDBC Driver连接后,检查时限值 335

例9.6 为ODBC连接设置时限为5s 335

例9.7 得到连接信息 336

例9.8 不成功的连接 336

例9.9 显示所有优先权的当前值 338

例9.10 改变多个属性的值 338

例9.11 改变DataReturnFormat的值 338

例9.12 改变ErrorHandling(错误处理方式)的值 339

例9.13 注意3个curs属性值的变化 341

例9.14 输入的数据包含BOOLEAN字段Discontinued 342

例9.15 先关闭游标对象,再关闭连接对象 343

例9.16 得到输入数据的行数 344

例9.17 得到输入数据的列数 344

例9.18 得到数据的列名 345

例9.19 得到输入数据集第一列的宽度 345

例9.20 查看第4列数据的属性。看看MATILAB的返回结果 346

例9.21 换一种方法,显示同样第4列的属性 346

例9-22 连接数据库,然后得到数据源名并将它赋给变量v 349

例9-23 显示游标对象(curs)中的数据 349

例9-24 由City和Avg_Temp两个字段组成的记录插入到Temperatures表中 350

例9-25 将多个记录插入到Growth表 351

例9-26 插入数字数据 351

例9-27 插入BOOLEAN数据 351

例9-28 在Birthdays表中,修改First_Name是Jean的记录,用40替换Age字段原来的值 356

例9-29 验证AutoCommit标志 357

例9-30 设置连接对象属性,而后插入数组 357

例9-31 测定GroupBy属性 359

例9-32 获取数据库的表名 359

例9-33 输入数据库的数据若是字符和数字的混合数据,应当使用单元数组 369

第12章 GUI程序设计 432

例12.1 画正弦函数图,跨越3个不同的范围,使用3种不同的线样式、颜色和标记符 452

例12.2 使用图形属性指定其他线特性 452

例12.3 使用单元数组对每个对象的属性设置不同的值 455

例12.4 对多个对象的相同属性设置不同的值 456

例12.5 得到线图形对象的LineWidth属性的默认值,线图形对象定义在根级 457

例12.6 询问所有坐标轴孩子的一组属性的值 457

例12.7 更新figure窗口 467

例12.8 使peaks函数生成的图像振动 468

第13章 GUI应用实例 483

例13.1 dir函数应用 533

例13.2 用fileparts函数返回指定文件的路径、名字、扩展名和版本 534

例13.3 由指定的目录和文件名生成一个完整的文件名 534

例13.4 uigetfile函数应用 536

例13.5 显示标题为“Save Workspace As”的对话框,过滤器限定为MAT文件 538

例13.6 抽出MATLAB基本工作区中的变量var,并且把它的值放在局部变量v中 539

例13.7 将一个图例添加到显示正弦和余弦函数的图形上 541

例13.8 web函数的不同格式 542