第一章 MATLAB 入门
Chapter one: Introduction to MATLAB
Matlab(Matrix Laboratory)是美国 MathWorks公司开发的一套高性能的数值分析和计算软件,用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境,是目前最好的科学计算类软件之一。
MATLAB将矩阵运算、数值分析、图形处理、编程技术结合在一起,为用户提供了一个强有力的科学及工程问题的分析计算和程序设计工具,它还提供了专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能,是具有全部语言功能和特征的新一代软件开发平台。
MATLAB 已发展成为适合众多学科,多种工作平台、功能强大的大型软件。在欧美等国家的高校,MATLAB已成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具。成为攻读学位的本科、硕士、博士生必须掌握的基本技能。在设计研究单位和工业开发部门,MATLAB被广泛的应用于研究和解决各种具体问题。在中国,MATLAB也已日益受到重视,短时间内就将盛行起来,因为无论哪个学科或工程领域都可以从MATLAB中找到合适的功能。 MATLAB 简史
1983年美国Mathworks公司首次推出MATLAB (Matrix Laboratory),之后其功能不断扩充,版本不断升级,1993年推出4.0版,95年4.2版,97年5.0版,99年5.3版,5.X版无论是界面还是内容都有长足的进展,其帮助信息采用超文本格式和PDF格式,可以方便的浏览。至2001年6月推出6.1版,2002年6月推出6.5版,继而推出6.5.1版、7.0版、7.1版、7.3(MATLAB 2006b)版,最新版本为7.4(R2007a)版。
从现在开始,MathWorks公司将每年进行两次产品发布,时间分别在每年的3月和9月,而且,每一次发布都会包含所有的产品模块,如产品的new feature、bug fixes和新产品模块的推出。
在R2006a中(MATLAB 7.2,Simulink 6.4),主要更新了10个产品模块、增加了多 达350个新特性、增加了对64位Windows的支持,并新推出了.net工具箱。
The MathWorks於07年3月1日宣布MATLAB及Simulink产品家族最新更新版本R2007a正式上市。此次改版為The MathWorks 自2006年起实施每年兩次产品更新的标准时程。R2007a改版新增兩个新产品、82个产品改版更新及bug fix等等。除此之外,R2007a可支援安裝英特尔(Intel)处理器的Mac平台、Windows Vista,和64位元Sun Solaris SPARC等作业系統。
一. MATLAB的重要功能和主要组成部分
一)功能:目前 MATLAB 产品族的主要功能为: - 数值分析
- 数值和符号计算 - 工程与科学绘图
- 控制系统的设计与仿真 - 数字图像处理 - 数字信号处理
- 通讯系统设计与仿真 - 财务与金融工程...
MATLAB具有用法简易、可灵活运用、程序结构强又兼具延展性的优点, 以下为其主要特色:
?
功能强的数值运算:在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函数可使用,函数的标示自然,使得问题和解答像数学式子一般简单明了,让使用者可全力发挥在解题方面,而非浪费在电脑操作上。 先进的资料视觉化功能: MATLAB的物件导向图形架构让使用者可执行视觉数据分析,并制作高品质的图形,完成科学性或工程性图文并茂的文章。 高阶但简单的程序环境: 做为一种直译式的程序语言,MATLAB让使用者在短时间内写完程序,所花的时间约为用 FORTRAN 或 C 的几分之一,而且不需要编译(compile)及联结 (link) 即能执行,同时包含了更多及更容易使用的内建功能。
开放及可延伸的架构: MATLAB容许使用者接触它大多数的数学原始码,监视运算法,更改现存函数,甚至加入自己的函数使 MATLAB成为使用者所须要的环境。
?
?
?
?
丰富的程序工具箱:MATLAB的程序工具箱将套装前软件的优点,与一个灵活的开放但容易操作的环境融合。这些工具箱提供了使用者在特别应用领域所需之许多函数。现有工具箱有:符号运算(利用Maple V的计算核心执行 )、影像处理、统计分析、讯号处理、神经网路、模拟分析、控制系统、即时控制、系统确认、强建控制、弧线分析、最佳化、模糊逻辑、mu分析及合成、化学计量分析等。
1. MATLAB6.1 的新功能
(1) 全新的开发环境GUIDE(GUI Development Environment):由早
期的单一命令窗口发展为将一些常用的交互式工作界面高度的集中于操作桌面;
(2) 在命令窗口增加了错误跟踪功能(error display message and
abort function);
(3) 提供了许多新的数值处理功能(numerical Treatment
Techniques),更新了部分函数的功能和算法,增加了许多新函数; (4) 在图形窗口增加了曲线拟合、数据统计等交互工具;(Curve
Fitting, Data Analyzing )
(5) 引入了类与对象及函数句柄等概念;(Object,Handle) 用户可以
创建自己定义的类函数和函数句柄;
(6) 改进了编辑/调试器的界面及功能; (Editor/Debugger)增加了行号
和书签等功能;
(7) 属性编辑器功能更强(Property Debugger),使用更方便;
(8) 建立了一个与以前完全不同的图形用户界面(GUI)图形窗口,
(Graphical Window)使用更加方便灵活;
(9) 增加了虚拟现实工具箱,(Virtual Reality Toolbox)使用标准的虚
拟现实建模语言(VRML)技术,可以创建由MATLAB和simulink环境驱动的三维动画场景;
(10) 在应用程序接口方面增加了与Java的接口(Interface for Java),
并为二者的数据交换提供了相应的程序库。
MATLAB 7的升级内容:MATLAB 7针对编程环境,代码效率、数据可视化、数学计算、文件I/O等方面进行了升级,包括: *开发环境
1、重新设计了桌面环境,针对多文档界面应用提供了简便的管理和访问方法,允许用户自定义桌面外观,创建常用命令的快捷方式;
2、 增强数组编辑器(Array Editor)和工作空间浏览器(Workspace Browser)功能,用于数据的显示、编辑和处理;
3、在当前目录浏览器(Current Directory Browser)工具中,增加代码效率分析、覆盖度分析等功能。; 4、M-Lint编码分析,辅助用户完成程序性能分析,提高程序执行效率; 5,增强M文件编辑器(M Editor), 支持多种格式源代码文件可视化编辑,例如C/C++, HTML,Java 等。 * 编程 1、支持创建嵌套函数(Nested Function),提供更灵活的代码模块化转化; 2、匿名函数(Anonymous Function)功能,支持在命令行或者脚本文件中创建单行函数(Single Line Function);
3、支持条件分支断点,可以在条件分支语句中进行程序中断调试; 4、模块化注释,支持为代码段注释。 * 数学
1、支持整数算术运算;
2、支持单精度数据类型运算,包括基本算术运算、线性代数、FFT等; 3、使用更强大的计算算法包Qhull 2002.1,提供更丰富的算法支持; 4、Linsolve函数用于处理线性代数方程求解;
5、ODE求解器能够处理隐性微分方程组以及多点边界问题; * 图形和3D可视化 1、新图形窗口界面;
2、直接从图形窗体生成M代码,可以完成用户自定义绘图; 3、增强图形窗体注释;
4、数据侦测工具(Data Exploration Tools),提供丰富的数据观测手段; 5、自定义图形对象,提供丰富的图形显示功能; 6、GUIDE新增对用户界面和ActiveX控件支持;
7、增强句柄图形对象支持完整地TeX和LaTeX字符集; * 文件I/O和外部接口
1、新增文件I/O函数,支持读取任意格式文本数据文件,并且支持写
入Excel和HDF5格式数据文件;
2、具有压缩功能的 MAT文件格式,支持快速数据文件I/O能力; 3、javaaddpath函数,无需重新启动MATLAB就可完成Java类的加载、删除等功能;
4、支持COM、服务器事件以及VBS; 5、支持SOAP,使用网络服务;
6、FTP对象,直接访问FTP服务器;
7、支持Unicode编码格式,增强MAT文件字符集; * 性能与系统平台支持
1、JIT加速器支持所有数值数据类型;
2、Windows XP系统下支持3GB内存访问。 ? R2007a的改版內容
* 在MATLAB产品家族部分的重点:
1. 可於多核心和多个处理器的系統上,利用MATLAB数学函式,处理多
执行绪(Multithreaded)运算; 2. 新版分散式运算工具箱(DCT)具备4个运算引擎,可在同一台电脑上
执行平行运算; 3. 統計工具箱(Statistics Toolbox)具备新的类別資料和資料阵列; 4. 定点工具箱(Fixed-Point Toolbox)可加快C语言的编译速度; 5. 利用控制系統工具箱(Control System Toolbox)对延滯的控制迴路
精准建模及分析; 6. 可利用系統辨识工具箱(System Identification Toolbox)产生非线
性模型; 7. 基因演算法及直接法搜尋工具箱(Genetic Algorithm and Direct
Search Toolbox)提供模拟退火法(Simulated annealing)。 * 在Simulink产品家族部分新增的功能: