MATLAB 7.0是MATLAB的最新版本,2004年6月份正式推出。与上一版本6.5版相比,这一版本在图形、编译器、工具箱等方面有一些变化。本套书主要针对更新比较大的这几部分进行介绍。上册介绍了MATLAB 7.0的开发环境、数组矩阵、数值计算、M文件、GUI设计、编译、接口,以及图形部分的基本内容。图形部分包括二维、三维绘图工具的应用和二维、三维图形程序开发的主要方法和思路。
第1章MATLAB7.0简介
1.1MATLAB的特点
1.1.1MATLAB的基本特点
1.1.2MATLAB7.0的新特点
1.2MATLAB桌面简介
1.2.1启动按钮
1.2.2命令窗口
1.2.3命令历史窗口
1.2.4T作空间窗口
1.2.5当前目录浏览器
1.3MATLAB的帮助系统
1.3.1帮助浏览器
1.3.2help函数和doc函数
第2章数组和矩阵
2.1表达式
2.1.1变量
2.1.2数值表示
2.1.3运算符
2.1.4函数
2.2构造数组
2.2.1用增量法构造数组
2.2.2用linspace函数构造数组
2.3构造矩阵
2.3.1简单的创建方法
2.3.2构造特殊矩阵
2.3.3聚合矩阵
2.3.4组合不同类型的数据
2.4获取矩阵的元素
2.4.1获取单个元素
2.4.2线性索引
2.4.3获取多个元素
2.5获取与矩阵有关的信息
2.6缩放和重塑矩阵
2.6.1放大矩阵
2.6.2重塑矩阵
2.7导入数据
2.7.1导入文本数据
2.7.2导入MAT文件数据
2.7.3使用ImportWizard工具
2.8矩阵的代数运算
2.9矩阵的逻辑运算
第3章数值计算
3.1方程求解
3.1.1求解线性方程组
3.1.2乔累斯基、LU和QR分解
3.1.3特征值
3.2多项式
3.2.1多项式求根
3.2.2多项式评价
3.2.3卷积和去卷积
3.2.4多项式求导
3.2.5多项式曲线拟合
3.3插值
3.3.1一维插值
3.3.2维插值
3.3.3插值和多维数组
3.4数据分析和统计
3.4.1面向列的数据集合
3.4.2基本数据分析函数
3.4.3方差和相关系数
3.4.4有限差分
3.4.5数据预处理
3.4.6回归分析
3.4.7曲线拟合
第4章M文件设计
4.1M文件编辑器
4.2脚本式M文件和函数式M文件
4.3流控制
4.4函数变量
4.4.1检查输入变量的个数
4.4.2传递变量
4.4.3解包varargin中的内容
4.4.4打包varargout
4.4.5变量列表中的varargin和varargout
4.4.6返回输出变量
4.5子函数和私有函数
4.6编程技巧
4.6.1函数句柄
4.6.2函数的函数
4.6.3向量化
4.6.4预分配内存空间
4.7面向对象编程
第5章图形用户界面(GU,)设计
5.1GUIDE简介
5.1.1启动GUIDE””
5.1.2输出编辑器
5.1.3GUIDE模板
5.1.4运行GUI
5.1.5GUIFIG文件和M文件
5.2创建GUI
5.2.1设计GUI
5.2.2完成GUI
5.2.3设置GUI组件的属性
5.2.4GUI编程
5.2.5保存和运行GUI
第6章编译和接口
6.1MATLAB编译器4.0
6.1.1MATLAB编译器4.0的新特点
6.1.2MATLAB编译器的使用
6.1.3编译独立应用程序
6.2MATLAB与VisualBasic接口
6.2.1COM生成器1.1
6.2.2用COM生成器生成组件
6.2.3在VisualBasic中使用组件
6.2.4使用COM生成器时可能遇到的问题
第7章二维图形绘制
7.1线形图、条形图和面积图
7.2饼图
7.3误差条图
7.4散点图
7.5直方图
7.6对数坐标图和半对数坐标图
7.7多轴图
7.8极坐标图
7.9等值线图
7.10向量图
7.11帕累托图
7.12火柴杆图
7.13彗星图
7.14罗盘图
7.15羽列图
7.16阶梯图
7.17玫瑰花图
7.18函数的图形
7.19动画
7.19.1以电影方式创建动画
7.19.2以重绘方式创建动画
第8章交互绘图与编辑
8.1绘图工具
8.1.1图形窗口的工具条
、8.1.2绘图工具——交互绘图
8.1.3使用绘图工具
8.1.4用工作空间中的变量绘图
8.1.5指定数据源
8.1.6编辑图形
8.1.7使用图形编辑模式
8.1.8保存结果
8.2数据查看工具
8.2.1数据光标——交互显示数据的值
8.2.2维和三维图形的缩放
8.2.3平移图形
8.2.4三维视图的交互旋转
8.2.5分析图形数据
8.3标注图形
8.3.1如何标注图形
8.3.2对齐工具——对齐和分布对象
8.33添加标题
8.3.4添加坐标系标签
8.3.5添加文本标注
8.3.6添加箭头和直线
第9章句柄图形对象
9.1面向对象的思维方式
9.2句柄图形对象的组织
9.2.1句柄图形对象的层次结构
9.2.2句柄图形对象的类型
9.3图形窗Figure对象
9.3.1用于绘图的图形窗口
9.3.2Figure对象用做GUI
9.3.3Root对象——Figure对象的父对象
9.4核心图形对象
9.4.1核心图形对象简介
9.4.2创建核心图形对象
9.4.3父对象
9.4.4高级函数和低级函数
9.4.5简化的调用语法
9.5绘图对象
9.5.1创建绘图对象
9.5.2编程识别绘图对象
9.5.3链接图形和变量
9.5.4保存与MATLAB以前版本相兼容的图形
9.6Annotation对象
9.7组对象
9.7.1创建组对象
9.7.2变换对象
9.8对象的属性
9.8.1设置和查询属性值
9.8.2默认属性
9.8.3示例——设置默认线型
9.9句柄操作
9.9.1获取对象句柄
9.9.2当前图形、坐标轴和对象
9.9.3用属性值查找对象——findobi函数
9.9.4复制对象
9.9.5删除对象
9.10句柄图形的视图控制
9.10.1指定图形输出的目标区域
9.10.2设置图形窗口和坐标系
9.10.3测试持续绘图(Hold)状态
9.10.4防止FigureAxes对象成为绘图目标区域
9.10.5关闭请求函数
9.11把句柄保存到M文件
9.12可包含其他对象的对象
9.13句柄图形对象的回调
9.13.1图形对象的回调属性
9.13.2函数句柄回调
9.14Figure对象
9.14.1在面板上锚定图形窗口
9.14.2与窗口锚定有关的属性
9.14.3确定图形窗口的位置和大小
9.15坐标系属性
9.15.1标签和外观属性
9.15.2坐标系的位置和大小
9.15.3在同一图形窗口中显示多个坐标系
9.15.4单个坐标轴的控制
9.15.5使用多个x轴和y轴
第10章定制二维图形
10.1基本图形元素
10.1.1直线段、多义线和曲线——Line对象
10.1.2矩形、圆角矩形、椭圆、圆及对应的区域图形——Rectangle对象
10.1.3多边形——Patch对象
10.1.4文本——Text对象
10.2定制二维图形
第11章三维模型的建立
11.1线形模型的建立
11.1.1参数曲线
11.1.2样条曲线
11.1.3用给定数据绘图
11.1.4三维等值线图
11,1.5三维向量图
11.2曲面模型的建立
11.2.1函数表示的曲面
11.2.2~--次曲面
11.2.3样条曲面
11.2.4用给定数据绘图
t12.5非均匀采样数据的曲面图
11.2.6表面图绘制的数据格式问题
11.3多边形对象模型
11.3.1patch函数
11.3.2用patch函数创建面片
11.4消隐控制
第12章三维模型的着色
12.1网格图、刻面图和曲面图的着色
12.1.1主要的着色技术
12.1.2颜色查找表
12.1.3索引着色表面——直接映射和比例化映射
12.1.4示例——表面曲率向颜色映射
12.1.5真彩色表面
12.1.6纹理映射
12.2多边形模型的着色
12.2.1面片只有一个小面的情况
12.2.2面片有多个小面的情况
12.2.3控制面片着色的属性
12.2.4面片边的着色
第13章光照与材质
13.1Light对象
13.2光照命令
13.3给场景添加光照
13.4影响光照效果的属性
13.5光照算法
13.6图形对象的反射特性——材质
13.6.1镜面反射和漫反射
13.6.2环境光
13.6.3镜面反射指数
13.6.4镜面反射光的颜色
13.6.5背面光照
13.6.6material函数
13.6.7一个例子
第14章透明性
14.1使对象透明
14.1.1alpha值
14.1.2与透明性相关的属性
14.2指定一个单独的透明度值
14.3将数据映射给透明度
14.3.1alpha数据数组的大小
14.3.2将alpha数据映射至,Jalpha查找表
14.3.3示例——将数据映射到颜色或透明度
14.4选择一个alpha查找表
第15章交互操作
15.1视点和相机
15.1.1用方位角和仰角设置视点
15.1.2交互工具——相机
15.2用相机工具条进行场景空间变换
15.2.1相机工具条
15.2.2交换主轴
15.2.3盘旋
15.2.4平移
15.2.5缩放
15.2.6滚动
15.2.7漫游
15.3用与相机有关的函数实现场景空间变换
15.3.1与相机有关的函数
15.3.2示例1——平移图像
15.3.3示例2——穿越场景
15.3.4低级相机属性
15.4投影
15.4.t正交投影和透视投影
15.4.2投影类型和相机位置
15.4.3坐标轴方向上的显示比率
第16章MATLAB提供的科学计算可视化工具
16.1剖面图
16.1.1slice函数
16.1.2切片等值线图
16.1.3切片流线图
16.2表现流动特征
16.2.1流线图
16.2.2流锥图
16.2.3流沙图
16.2.4流带图
16.2.5流管图
16.2.6卷曲图
16.3等值面
16.4等帽盖
16.5减少面片上小面的个数
16.6减少体数据集中元素的个数
16.7缩小面片中的小面
16.8子体积
16.9体包围盒
16.10计算几何问题
16.10.1散点数据的三角化和插值
16.10.2高维散点集的剖分和插值
参考文献
近年宋,MATLAB以其强大的矩阵计算和图形可视化功能逐渐为国人所知。很多学校已经开设这方面的课程,很多学生已经开始使用该软件完成论文设计。科学计算软件的使用,极大地提高科研人员的工作效率,可以更快、更准确地完成计算方案的设计,可以在必要的时候用图形图像表示计算结果和描述运行机制。
本书基于MATLAB 7.0版本,分上、下两册介绍该软件的使用。相对于以前诸版本,7.0版本在图形和编译器方面有比较明显的变化,部分工具箱也有一些变化。本书的主要内容可以概括为两个部分,一部分系统介绍MATLAB的基础和核心功能,即MATLAB总包的功能;另一部分系统介绍新版本变化最大的图形图像功能。上册主要介绍MATLAB总包的应用,下册主要介绍几个图形图像方面的工具箱。
第1一第16章为上册的主要内容,系统地介绍MATLAB 7,0的基本特点、运行环境、数组、矩阵、数值计算、M文件、图形用户界面设计、编译、接口,以及二维、三维图形功能。第1~第5章为比较基础的内容,适合于初学者入门;第6章介绍最新的编译器4.0和COM生成器1.1。编译器4.0可以接受对象数据类型,这在以前是不行的。利用COM生成器可以将MATLAB的M文件和MEX文件打包成COM组件,这些组件又可以用于支持COM机制的应用程序,如VC,VB等,从而可以实现无缝集成。
MATLAB 7.0的最大亮点就在于添加了图形的交互创建和编辑功能。这里所说的交互,指的是鼠标交互,即主要通过鼠标的单击和拖拉操作完成图形的绘制和编辑。交互功能的添加,提高了绘图效率和绘图准确性。与此相对应,作为MATLAB图形图像和界面基础的句柄图形对象也有了很大的改变。这种改变,体现在对象抽象和对象组织上。
具体来说,图形部分的内容包括二维图形绘制、图形的交互创建和编辑、二维图形的定制、三维模型和场景的创建和变换,以及MATLAB提供的一系列科学计算可视化工具等。二维部分,MATLAB可以绘制条形图、等值线图、向量图等几十种图形,利用图形对象创建函数,还可以实现图形定制;三维部分,可以创建三维网格图、曲面图、流线图、剖面图、等值面图等多种图形。三维程序的开发,是一件富有挑战性但又其乐无穷的事情。在这方面,MATLAB实际上提供了一个比较高的平台。本书分表面模型和多边形模型两种情况,全面介绍三维模型的创建、着色、光照、材质、透明性、纹理映射和交互操作。
第17~第42章为下册的主要内容,主要介绍MATLAB的图像处理、虚拟现实和地图制作工具箱。
第17一第30章介绍图像处理工具箱,内容包括图像合成、空间变换、邻域和块处理、线性滤波和滤波器设计、基于区域的处理、变换域处理、数学形态学、图像分析、图像增强、图像配准和图像恢复等。
第31~第35章介绍虚拟现实工具箱,内容包括虚拟场景的创建、浏览和交互。
第36一第42章介绍地图制作工具箱,例如,地理空间数据、地理空间几何和地图投影等基础知识和实现方法,还介绍如何利用地图制作工具箱绘制和定制二维、三维地图。
目前,虚拟现实在科研方面迅速地向很多专业领域渗透,是当前计算机图形学研究的三大热点之一。传统的实现方法是使用OpenGL,DirectX3D等API和VRML,VEGA等语言,需要使用者具有较多的知识储备。而MATLAB的虚拟现实工具箱提供专门的VRML编辑器和虚拟场景查看器,可以在不懂VRML语言的情况下实现虚拟场景的创建和浏览,并且这个虚拟场景还可以与MATLAB交互,因而是可控的。对于广大专业工程技术研究人员来说,这无疑是一个福音。
在“数字化地球”的时代,电子地图的制作是热点。MATLAB的地图制作工具箱提供了制作电子地图的一种途径。该工具箱的功能强大,可以绘制三维地图。
在编写过程中,作者力求全书思路清晰,结构合理,叙述流畅,术语地道,实例丰富,并诚挚地希望能收到抛砖引玉的效果。如果你看了书以后很有想法,我们可以交流;如果很有收获,甚至做出一个很好的三维系统,我们愿意分享你的快乐!
本书适合于对MATLAB感兴趣的大学生、研究生、教师和科研技术人员阅读。
写作过程中得到了很多读者朋友和网友的热心支持,表示感谢!另外,还要感谢黄国明、刘波、王卫、刘玉珊等给予的帮助!
由于水平有限,书中缺点和错误之处在所难免,谨请读者朋友批评指正!