发表于2024-12-23
本书的主旨是让读者熟练掌握MATLAB,在解决工程应用时,具备所需要的基本编程概念和技能。本书在函数、内容与结构、练习题、函数接口等方面较前一版有改动。全书分成两大部分:第一部分讲述用MATLAB进行程序设计及解决实际问题,包括MATLAB程序设计概念与组织、选择、循环、字符串操作、单元阵列及结构、高级文件输入/输出及高级函数等;第二部分针对实际应用,包括用MATLAB绘图、解线性代数方程组、进行基本统计、集合、排序和索引、处理声音和图像,以及高等数学中的曲线拟合、复数计算、微积分等。
鱼滨,男,博士,西安电子科技大学计算机学院教授,硕士生导师。早年为西北大学软件学院副院长,曾赴意大利作为访问学者一年,后被西电出国优秀博士计划引进。
主要研究方向为软件工程,医学影像处理(国家自然基金项目),基于Internet的软件技术,pi演算,虚拟现实,andriod视频采集等。曾获省部级奖三项,发表论文多篇。负责国家自然科学基金项目一项(2012-2015),参加国家自然科学基金重点课题和面上项目各一项,承担本科生地“软件工程”和“编译原理”课程。2001年获陕西省教学成果一等奖。
第一部分 用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 if�瞖lse语句
4.3 嵌套的if�瞖lse语句
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是MatrixLaboratory的简写,是一款由美国MathWorks公司开发的商业数学软件,是一个集科学计算、可视化及交互式程序设计的计算环境。它将数值分析、矩阵计算、科学数据可视化及非线性动态系统的建模和仿真等诸多功能,集成在一个易于使用的视窗环境中,为科学研究、工程设计及需要有效数值计算的学科领域提供了方便,在一定程度上摆脱了传统非交互式程序设计语言的编译模式,简化了计算形式,所以有很好的工程应用背景。
作者斯托米?阿塔韦(StormyAttaway),在美国波士顿大学机械工程系工作,是该系教学副主任。二十多年来一直是波士顿大学工程计算课程的课程协调人,她本人讲授过许多不同计算机语言及软件包方面的程序设计课程,具有丰富的教学及实践经验。
本书是美国许多大学的理工科学生的教学用书,深受学生欢迎。全书讲解深入浅出,围绕实际工程应用,通过解释MATLAB强大的函数功能,实现用MATLAB进行编程。它使工程技术人员能够全面理解和掌握如何利用MATLAB解决工程实际问题。与传统的专业程序设计概念不同,MATLAB程序设计强调的是用贴近人们日常习惯的数学书写方式快速解决实际问题,所以它并不像专业程序设计那样突出语法规范和参数定义规则。
国内外有不少关于MATLAB方面的书,但有特色的较少,斯托米?阿塔韦(StormyAttaway)撰写的这本是比较有特色的书之一。本书主要以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编程与工程应用(第三版) [MATLAB: A Practical Introduction to Programming an] 下载 mobi epub pdf txt 电子书 格式
MATLAB编程与工程应用(第三版) [MATLAB: A Practical Introduction to Programming an] 下载 mobi pdf epub txt 电子书 格式 2024
MATLAB编程与工程应用(第三版) [MATLAB: A Practical Introduction to Programming an] 下载 mobi epub pdf 电子书这本书用了快一个星期了,发现里面有多处印刷错误?真的是够了,就不一一指出来了
评分不错
评分书没有课后习题答案就等于废物,自认倒霉
评分还不错
评分行行行行行行行行行行行
评分这本书用了快一个星期了,发现里面有多处印刷错误?真的是够了,就不一一指出来了
评分不错
评分书没有课后习题答案就等于废物,自认倒霉
评分还行吧!
MATLAB编程与工程应用(第三版) [MATLAB: A Practical Introduction to Programming an] mobi epub pdf txt 电子书 格式下载 2024