描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121305535丛书名: 国外电子与通信教材系列
全书语言简洁,内容充实,结构紧凑;
更新到第三版,兼顾了版本的更新和内容的稳定。
部分 用MATLAB进行程序设计
第1章 MATLAB简介
1.1 初识MATLAB
1.2 MATLAB桌面环境
1.3 变量和赋值语句
1.3.1 初始化、递增和递减
1.3.2 变量名
1.3.3 类型
1.4 表达式
1.4.1 format函数和省略号
1.4.2 运算符
1.4.3 内置函数和help命令
1.4.4 常量
1.4.5 随机数
1.5 字符和编码
1.6 关系表达式
探索其他有趣的特征
总结
习题
第2章 向量和矩阵
2.1 向量和矩阵
2.1.1 创建行向量
2.1.2 创建列向量
2.1.3 创建矩阵变量
2.1.4 维数
2.1.5 空向量
2.1.6 三维矩阵
2.2 用作函数参数的向量和矩阵
2.3 向量和矩阵上的标量运算和
数组运算
2.4 矩阵乘法
2.4.1 向量的矩阵乘法
2.5 逻辑向量
2.5.1 含有向量和矩阵的关系
表达式
2.5.2 逻辑内置函数
2.6 应用: diff和meshgrid函数
探索其他有趣的特征
总结
习题
第3章 MATLAB程序设计概述
3.1 算法
3.2 MATLAB脚本
3.2.1 文档
3.3 输入与输出
3.3.1 输入函数
3.3.2 输出语句:disp和fprintf
3.4 脚本的输入和输出
3.5 用脚本生成和定制简单图形
3.5.1 plot函数
3.5.2 与plot相关的函数
3.6 文件输入/输出简介
3.6.1 向文件中写数据
3.6.2 向文件中追加数据
3.6.3 从文件中读数据
3.7 返回单个值的用户自定义
函数
3.7.1 函数定义
3.7.2 函数调用
3.7.3 从脚本中调用用户自定义
函数
3.7.4 传递多个参数
3.7.5 函数中的局部变量
3.7.6 范围介绍
3.8 命令和函数
探索其他有趣的特征
总结
习题
第4章 选择语句
4.1 if语句
4.1.1 逻辑真和逻辑假的表示
4.2 ifelse语句
4.3 嵌套的ifelse语句
4.3.1 elseif子句
4.4 switch语句
4.5 menu函数
4.6 MATLAB中的is函数
探索其他有趣的特征
总结
习题
第5章 循环
5.1 for循环
5.1.1 实际应用中不使用迭代
变量的for循环
5.1.2 for循环的输入
5.1.3 求和与积
5.1.4 预分配向量
5.1.5 for循环示例: subplot
5.2 for嵌套循环
5.2.1 for嵌套循环和if语句的
混合使用
5.3 while循环
5.3.1 while循环中的多重条件
5.3.2 在while循环中读文件
5.3.3 while循环中的输入
5.3.4 while循环中的计数
5.3.5 while循环中对用户输入信息
的差错检测
5.4 向量和矩阵的循环: 向量化
代码
5.4.1 向量化求和与求积
5.4.2 向量化与选择语句
相关的循环
5.4.3 编写高效代码的技巧
5.5 计时
探索其他有趣的特征
总结
习题
第6章 MATLAB程序
6.1 其他类型的用户自定义函数
6.1.1 返回多值的函数
6.1.2 完成任务无返回值的
函数
6.1.3 带返回值并可打印的
函数
6.1.4 向函数传递参数
6.2 MATLAB程序的组织
6.2.1 模块化程序
6.2.2 子函数
6.3 应用:菜单驱动的模块程序
6.4 变量作用域
6.4.1 持续变量
6.5 调试技术
6.5.1 错误类型
6.5.2 追踪
6.5.3 编辑器/调试程序
6.5.4 函数桩
6.5.5 代码元和发布代码
探索其他有趣的特征
总结
习题
第7章 字符串操作
7.1 创建字符串变量
7.1.1 字符串向量
7.2 字符串操作
7.2.1 连接
7.2.2 创建自定义字符串
7.2.3 删除空白字符
7.2.4 变换大小写
7.2.5 字符串比较
7.2.6 查找、 替换和分割
字符串
7.2.7 字符串求值
7.3 有关字符串的 is函数
7.4 字符串和数值之间的转换
探索其他有趣的特征
总结
习题
第8章 数据结构:元胞数组和结构体
8.1 元胞数组
8.1.1 创建元胞数组
8.1.2 查看和显示元胞数组
的元素和属性
8.1.3 在元胞数组中存放
字符串
8.2 结构体
8.2.1 创建和修改结构体变量
8.2.2 将结构体传递给函数
8.2.3 相关结构体函数
8.2.4 结构体向量
8.2.5 嵌套结构体
8.2.6 嵌套结构体向量
探索其他有趣的特征
总结
习题
第9章 高级文件输入/输出
9.1 低级文件I/O函数
9.1.1 打开和关闭文件
9.1.2 读取文件
9.1.3 写入文件
9.1.4 追加文件
9.2 写入和读取电子表格类文件
9.3 使用MAT文件变量
9.3.1 将变量写入文件中
9.3.2 将变量追加到MAT
文件中
9.3.3 从MAT文件中读取
探索其他有趣的特征
总结
习题
第10章 高级函数
10.1 匿名函数
10.2 函数句柄的使用
10.2.1 函数的函数
10.3 参数数目可变
10.3.1 输入参数数目可变
10.3.2 输出参数数目可变
10.4 嵌套函数
10.5 递归函数
探索其他有趣的特征
总结
习题
第二部分 用MATLAB解决问题的进阶
第11章 MATLAB作图
11.1 图形函数
11.2 动画
11.3 三维图形
11.4 定制图形
11.5 句柄图形和图形属性
11.5.1 图形对象和属性
11.5.2 核心对象
11.6 plot的应用
11.6.1 从函数中绘图
11.6.2 绘制文件数据
11.7 保存和打印图形
探索其他有趣的特征
总结
习题
第12章 基本统计、集合、排序和索引
12.1 统计函数
12.1.1 平均值
12.1.2 方差和标准差
12.1.3 众数
12.1.4 中间值
12.2 集合操作
12.3 排序
12.3.1 对结构体向量排序
12.3.2 字符串排序
12.4 索引
12.4.1 结构体向量的索引
12.5 查找
12.5.1 顺序查找
12.5.2 二分查找
探索其他有趣的特征
总结
习题
第13章 声音和图像
13.1 声音文件
13.2 图像处理
13.2.1 色图
13.2.2 真彩色矩阵
13.2.3 图像文件
13.3 图形用户界面的介绍
13.3.1 GUI基础
13.3.2 文本框、 按钮和滚动条
13.3.3 在 GUI 中画图和处理
图像
13.3.4 规范化单位和按钮组
探索其他有趣的特性
总结
习题
第14章 高等数学应用
14.1 数据拟合曲线
14.1.1 多项式
14.1.2 曲线拟合
14.1.3 内插值和外插值
14.2 复数
14.2.1 复数的判等
14.2.2 复数相加减
14.2.3 复数乘法
14.2.4 共轭复数和值
14.2.5 表示为多项式的复数
方程式
14.2.6 极坐标形式
14.2.7 绘图
14.3 矩阵求解线性代数方程组
14.3.1 矩阵属性
14.3.2 线性代数方程组
14.4 符号数学
14.4.1 符号变量和表达式
14.4.2 简化函数
14.4.3 显示表达式
14.4.4 解方程
14.5 微积分:积分和微分
14.5.1 积分和梯形法则
14.5.2 微分
14.5.3 符号数学工具箱中的微积分
探索其他有趣的特征
总结
习题
附录1 MATLAB函数
附录2 MATLAB和动态仿真工具箱
译 者 序
MATLAB是Matrix Laboratory的简写, 是一款由美国MathWorks公司开发的商业数学软件, 是一个集科学计算、可视化及交互式程序设计的计算环境。它将数值分析、矩阵计算、科学数据可视化及非线性动态系统的建模和仿真等诸多功能, 集成在一个易于使用的视窗环境中, 为科学研究、工程设计及需要有效数值计算的学科领域提供了方便, 在一定程度上摆脱了传统非交互式程序设计语言的编译模式, 简化了计算形式, 所以有很好的工程应用背景。
作者斯托米?阿塔韦(Stormy Attaway), 在美国波士顿大学机械工程系工作, 是该系教学副主任。二十多年来一直是波士顿大学工程计算课程的课程协调人, 她本人讲授过许多不同计算机语言及软件包方面的程序设计课程, 具有丰富的教学及实践经验。
本书是美国许多大学的理工科学生的教学用书, 深受学生欢迎。全书讲解深入浅出, 围绕实际工程应用, 通过解释MATLAB强大的函数功能, 实现用MATLAB进行编程。它使工程技术人员能够全面理解和掌握如何利用MATLAB解决工程实际问题。与传统的专业程序设计概念不同, MATLAB程序设计强调的是用贴近人们日常习惯的数学书写方式快速解决实际问题, 所以它并不像专业程序设计那样突出语法规范和参数定义规则。
国内外有不少关于MATLAB方面的书, 但有特色的较少, 斯托米?阿塔韦(Stormy Attaway)撰写的这本是比较有特色的书之一。本书主要以MATLAB函数调用为主线, 采用灵活的方式介绍程序设计概念, 并能将其用于解决实际问题, 比较适合广大非计算机专业学生作为程序设计课程的教材。书中部分主要讲述的就是这些内容, 包括:MATLAB简介及MATLAB程序设计、程序控制语句类的选择和循环、MATLAB程序组织形式、字符串操作、程序设计中对加工对象数据的结构组织(单元阵列及结构)、高级文件输入/输出及高级函数等。当然, 本书也可以作为工程技术人员解决实际问题的参考书。书中第二部分内容涉及的主要就是实际应用, 包括用MATLAB绘图、解线性代数方程组、进行基本统计、集合、排序和索引、处理声音和图像, 以及高等数学中的曲线拟合、复数计算、微积分等。
全书章节安排合理, 内容规划有助于学生理解和记忆, 编写生动有趣, 书中随时采用一些问答题的方式讲述基本概念, 容易引起读者的注意;通过例题和练习题讲解关键知识点并加深学生的记忆;对比用编程方法和直接调用内部函数的快速方法, 加深理解MATLAB内部函数的作用;每章末尾总结通常易犯的错误, 提供程序设计风格指南以及本章中用到的MATLAB函数和命令。通过解决实际问题来讲解知识点的方式容易激发学生的学习兴趣。
对于非计算机专业的理工科大学生来说, 把MATLAB作为门算法语言, 绕开了冗长复杂的程序设计概念细节, 容易使学生掌握, 并能在线性代数等课程及实际中应用。所以我们认为本书的教学和使用效果比较好。
本书的翻译出版是由电子工业出版社的马岚编辑和杨博编辑组织策划的。西安电子科技大学鱼滨老师和赵元哲老师在第二版的基础上进行了翻译和校对。其中赵元哲翻译和校对了前7章, 鱼滨翻译和校对了第8章到第14章; 宋力老师参加了部分翻译工作, 研究生李孟鸽、 袁丹、 赵劼等参加了翻译和文字录入工作。原书中一些笔误的地方, 翻译时都进行了更正, 并对代码进行了验证。
希望本书的翻译出版能够为广大MATLAB的使用者提供方便, 但由于我们水平所限, 书中错误之处在所难免, 欢迎读者批评指正!
译 者2016年11月
前 言
目标
本书的目的是把MATLAB作为一种工具使用, 讲解解决基本问题所需的基本编程概念和技能。MATLAB是一款功能强大的软件, 它包含完成从数学运算到三维成像多种任务的内置函数。另外, MATLAB拥有一套完整的编程结构, 允许用户定制自己的程序规范。
介绍MATLAB的书有很多。这些书有两个基本特色:一些书除了一到两章介绍一些程序概念之外, 主要阐述MATLAB中内置函数的使用;另一些书仅仅覆盖了编程结构, 而没有涉及使MATLAB得到有效使用的许多内置函数。仅仅学习内置函数的读者能很好地使用MATLAB, 但是不能理解基本的编程概念。因而对没有学习其他入门课程或没有阅读其他关于编程概念的书的读者, 很难进一步学习C 或Java等编程语言。相反, 首先只学习编程概念(使用任何语言)的读者倾向于使用高效率的控制语句来解决问题, 并没有意识到在MATLAB中, 许多情况下并不需要这样做。
本书采取一种混合式的方法, 同时介绍编程和有效用法。学生们面临的挑战是几乎不能预测他们将来是否需要知道编程概念, 或者像MATLAB这样的软件包是否能满足他们的职业需要。因而, 对入门的学生来说, 好的方法就是同时给出编程概念和有效的内置函数。因为MATLAB非常容易使用, 应用这种混合式方法来讲授编程和解决问题是一个完美的平台。
因为编程概念在本书中是非常关键的, 所以本书的重点不是放在MATLAB的每个新版本如何节省时间的特点上。例如, 在当前的MATLAB版本中, 统计数字变量显示在工作台窗口中。在本书中没有显示任何细节, 因为这一特点是否可用取决于软件的版本, 而且本书是以解释概念为目的的。
第三版修订的内容
本书第三版的修改包括:
1. 每章结束新增了“探索其他有趣特征”部分, 列举了读者可能希望了解的相关语言结构、 函数和工具。
2. 扩大覆盖范围:
● 图像处理, 包括图像矩阵中不同数据类型的使用
● 绘图功能, 包括了那些使用对数尺的函数
● 图形用户界面
3. MATLAB的R2012b版本的使用。
4. 修订和新增“练习”问题。
5. 修订并新增了有些章末的习题, 使其更具有挑战性。
6. 一些材料的重组, 主要是:
● 将向量和矩阵单独作为一章(第2章), 包括向量和矩阵的函数和操作符, 并安排了向量化代码
● 更早给出了矩阵乘法(在第2章)
● 向量化代码放在循环章节, 为了比较数组的循环使用和向量化代码
7. 用randi代替round(rand)。
8. 用true/false代替logical(1)/logical(0)。
9. 扩大了基础数学函数的覆盖范围, 包括mod、 sqrt、 nthroot、 log、 log2和log10, 以及更多的三角函数。
10. 新增附录列出了书中用到的所有函数, 以及读者或许想要了解的工具箱。
主要特点
编程概念和内置函数并行
本书重要和独特的特点是并行地讲授MATLAB中的编程概念和内置函数的使用。本书以基本的编程概念开始, 例如变量、赋值、输入/输出、选择和循环语句。本书通常先介绍一个问题然后使用“编程概念”和“有效方法”来解决。
系统方法
本书的另一个特点是采用系统的、逐步的方法将概念贯穿于全书中。在一个MATLAB教材中提前使用注释“我们将在以后介绍”来显示内置函数或特点是很常用的做法。本书并不这样做, 在例子中需要用到的函数在之前就已经介绍过了。另外, 对基本的编程概念将仔细和系统地解释。例如, 通过循环来计算总和、条件循环中的计数和差错检测这些非常基本的概念, 在其他书中并不会介绍, 但都包含在本书中。
文件输入/输出
工程和科学中的许多应用涉及操纵大量的数据集, 这些数据集存储在外部文件中。大部分MATLAB书至少要提到save和load函数, 并且在一些例子中也会提到低层的文件输入/输出函数。因为文件输入和输出对许多应用来说是非常基础的, 所以本书将覆盖几种低层的文件输入/输出函数, 以及从电子表格文件中读数据和将数据写到电子表格文件中。在以后的章节中还将处理音频和图像文件。这些文件输入/输出的概念将逐步介绍:首先在第3章中介绍load和save, 然后在第9章中介绍低层函数, 后在第13章中介绍声音和图像。
用户自定义函数
用户自定义函数是一个非常重要的编程概念。许多时候, 函数类型、 函数调用与函数头等之间的细微差别, 容易被初学者混淆。因此本书将逐步介绍这些概念。首先, 在第3章中阐述计算和返回一个单精度值的容易理解的函数类型; 然后, 无返回值的函数和返回多个值的函数在第6章中介绍; 后, 第10章介绍高级函数的特点。
高级编程概念
除了基本的编程概念, 本书中还覆盖了一些高级编程概念, 如字符串操作、数据结构、递归、匿名函数和函数参数的变量数目。另外也会介绍排序、查找和索引。所有这些也采取了系统的方法, 例如单元数组在应用于文件输入函数和作为饼图的图例之前介绍。
解决问题的工具
除了编程概念, 解决问题的一些必要的基础数学知识也将涉及。主要包括统计函数、 求解线性代数方程组和数据拟合曲线。另外还将介绍复数和一些计算(积分和微分)的使用。阐述基础数学, 描述在MATLAB中执行这些任务的内置函数。
作图、 图像和GUI
本书首先介绍简单的二维作图(第3章), 这样作图的例子可以贯穿全书。第11章将给出更多的作图类型并阐述定制作图和在MATLAB中怎样处理图形属性, 这一章使用字符串和单元(cell)数组来定制标签。在第13章中对图像处理和理解图形用户界面(GUI)编程的基础知识进行介绍。
向量化代码
MATLAB内置操作符和函数功能的有效使用都在书中做了演示。为了强调有效使用MATLAB的重要性, 对编写向量化代码所需的概念和内置函数提前到了第2章。然后在第5章中采用一些技巧如预先分配向量和使用逻辑向量, 替代向量和矩阵中的选择语句和循环语句。同时还介绍了怎样才能使代码有效的方法。
全书布局
全书分为两部分。部分介绍编程结构, 并阐述编程与解决问题的内置函数的有效使用。第二部分讲述应用, 包括作图、图像处理和解决基础问题所需要的数学知识。前6章包括MATLAB中和编程中非常
评论
还没有评论。