第1章 MATLAB 入门.docx
《第1章 MATLAB 入门.docx》由会员分享,可在线阅读,更多相关《第1章 MATLAB 入门.docx(20页珍藏版)》请在冰豆网上搜索。
第1章MATLAB入门
第一章MATLAB入门
Chapterone:
IntroductiontoMATLAB
Matlab(MatrixLaboratory)是美国MathWorks公司开发的一套高性能的数值分析和计算软件,用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境,是目前最好的科学计算类软件之一。
MATLAB将矩阵运算、数值分析、图形处理、编程技术结合在一起,为用户提供了一个强有力的科学及工程问题的分析计算和程序设计工具,它还提供了专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能,是具有全部语言功能和特征的新一代软件开发平台。
MATLAB已发展成为适合众多学科,多种工作平台、功能强大的大型软件。
在欧美等国家的高校,MATLAB已成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具。
成为攻读学位的本科、硕士、博士生必须掌握的基本技能。
在设计研究单位和工业开发部门,MATLAB被广泛的应用于研究和解决各种具体问题。
在中国,MATLAB也已日益受到重视,短时间内就将盛行起来,因为无论哪个学科或工程领域都可以从MATLAB中找到合适的功能。
MATLAB简史
1983年美国Mathworks公司首次推出MATLAB(MatrixLaboratory),之后其功能不断扩充,版本不断升级,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(MATLAB2006b)版,最新版本为7.4(R2007a)版。
从现在开始,MathWorks公司将每年进行两次产品发布,时间分别在每年的3月和9月,而且,每一次发布都会包含所有的产品模块,如产品的newfeature、bugfixes和新产品模块的推出。
在R2006a中(MATLAB7.2,Simulink6.4),主要更新了10个产品模块、增加了多达350个新特性、增加了对64位Windows的支持,并新推出了.net工具箱。
TheMathWorks於07年3月1日宣布MATLAB及Simulink产品家族最新更新版本R2007a正式上市。
此次改版為TheMathWorks自2006年起实施每年兩次产品更新的标准时程。
R2007a改版新增兩个新产品、82个产品改版更新及bugfix等等。
除此之外,R2007a可支援安裝英特尔(Intel)处理器的Mac平台、WindowsVista,和64位元SunSolarisSPARC等作业系統。
一.MATLAB的重要功能和主要组成部分
一)功能:
目前MATLAB产品族的主要功能为:
-数值分析
-数值和符号计算
-工程与科学绘图
-控制系统的设计与仿真
-数字图像处理
-数字信号处理
-通讯系统设计与仿真
-财务与金融工程...
MATLAB具有用法简易、可灵活运用、程序结构强又兼具延展性的优点,
以下为其主要特色:
∙功能强的数值运算:
在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函数可使用,函数的标示自然,使得问题和解答像数学式子一般简单明了,让使用者可全力发挥在解题方面,而非浪费在电脑操作上。
∙先进的资料视觉化功能:
MATLAB的物件导向图形架构让使用者可执行视觉数据分析,并制作高品质的图形,完成科学性或工程性图文并茂的文章。
∙高阶但简单的程序环境:
做为一种直译式的程序语言,MATLAB让使用者在短时间内写完程序,所花的时间约为用FORTRAN或C的几分之一,而且不需要编译(compile)及联结(link)即能执行,同时包含了更多及更容易使用的内建功能。
∙开放及可延伸的架构:
MATLAB容许使用者接触它大多数的数学原始码,监视运算法,更改现存函数,甚至加入自己的函数使MATLAB成为使用者所须要的环境。
∙丰富的程序工具箱:
MATLAB的程序工具箱将套装前软件的优点,与一个灵活的开放但容易操作的环境融合。
这些工具箱提供了使用者在特别应用领域所需之许多函数。
现有工具箱有:
符号运算(利用MapleV的计算核心执行)、影像处理、统计分析、讯号处理、神经网路、模拟分析、控制系统、即时控制、系统确认、强建控制、弧线分析、最佳化、模糊逻辑、mu分析及合成、化学计量分析等。
1.MATLAB6.1的新功能
(1)全新的开发环境GUIDE(GUIDevelopmentEnvironment):
由早期的单一命令窗口发展为将一些常用的交互式工作界面高度的集中于操作桌面;
(2)在命令窗口增加了错误跟踪功能(errordisplaymessageandabortfunction);
(3)提供了许多新的数值处理功能(numericalTreatmentTechniques),更新了部分函数的功能和算法,增加了许多新函数;
(4)在图形窗口增加了曲线拟合、数据统计等交互工具;(CurveFitting,DataAnalyzing)
(5)引入了类与对象及函数句柄等概念;(Object,Handle)用户可以创建自己定义的类函数和函数句柄;
(6)改进了编辑/调试器的界面及功能;(Editor/Debugger)增加了行号和书签等功能;
(7)属性编辑器功能更强(PropertyDebugger),使用更方便;
(8)建立了一个与以前完全不同的图形用户界面(GUI)图形窗口,(GraphicalWindow)使用更加方便灵活;
(9)增加了虚拟现实工具箱,(VirtualRealityToolbox)使用标准的虚拟现实建模语言(VRML)技术,可以创建由MATLAB和simulink环境驱动的三维动画场景;
(10)在应用程序接口方面增加了与Java的接口(InterfaceforJava),并为二者的数据交换提供了相应的程序库。
MATLAB7的升级内容:
MATLAB7针对编程环境,代码效率、数据可视化、数学计算、文件I/O等方面进行了升级,包括:
*开发环境
1、重新设计了桌面环境,针对多文档界面应用提供了简便的管理和访问方法,允许用户自定义桌面外观,创建常用命令的快捷方式;
2、增强数组编辑器(ArrayEditor)和工作空间浏览器(WorkspaceBrowser)功能,用于数据的显示、编辑和处理;
3、在当前目录浏览器(CurrentDirectoryBrowser)工具中,增加代码效率分析、覆盖度分析等功能。
;
4、M-Lint编码分析,辅助用户完成程序性能分析,提高程序执行效率;
5,增强M文件编辑器(MEditor),支持多种格式源代码文件可视化编辑,例如C/C++,HTML,Java等。
*编程
1、支持创建嵌套函数(NestedFunction),提供更灵活的代码模块化转化;
2、匿名函数(AnonymousFunction)功能,支持在命令行或者脚本文件中创建单行函数(SingleLineFunction);
3、支持条件分支断点,可以在条件分支语句中进行程序中断调试;
4、模块化注释,支持为代码段注释。
*数学
1、支持整数算术运算;
2、支持单精度数据类型运算,包括基本算术运算、线性代数、FFT等;
3、使用更强大的计算算法包Qhull2002.1,提供更丰富的算法支持;
4、Linsolve函数用于处理线性代数方程求解;
5、ODE求解器能够处理隐性微分方程组以及多点边界问题;
*图形和3D可视化
1、新图形窗口界面;
2、直接从图形窗体生成M代码,可以完成用户自定义绘图;
3、增强图形窗体注释;
4、数据侦测工具(DataExplorationTools),提供丰富的数据观测手段;
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、WindowsXP系统下支持3GB内存访问。
●R2007a的改版內容
*在MATLAB产品家族部分的重点:
1.可於多核心和多个处理器的系統上,利用MATLAB数学函式,处理多执行绪(Multithreaded)运算;
2.新版分散式运算工具箱(DCT)具备4个运算引擎,可在同一台电脑上执行平行运算;
3.統計工具箱(StatisticsToolbox)具备新的类別資料和資料阵列;
4.定点工具箱(Fixed-PointToolbox)可加快C语言的编译速度;
5.利用控制系統工具箱(ControlSystemToolbox)对延滯的控制迴路精准建模及分析;
6.可利用系統辨识工具箱(SystemIdentificationToolbox)产生非线性模型;
7.基因演算法及直接法搜尋工具箱(GeneticAlgorithmandDirectSearchToolbox)提供模拟退火法(Simulatedannealing)。
*在Simulink产品家族部分新增的功能:
1.可支援多面向讯号,如讯号处理模块組(SignalProcessingBlockset)、嵌入式MATLAB函数模块(EmbeddedMATLABFunctionblock)、动态影片及影像处理模块組(VideoandImageProcessingBlockset),以及C程序码产生器(Real-TimeWorkshop)等;
2.嵌入式C程序码产生器(Real-TimeWorkshopEmbeddedCoder)程序码产生的效能改善;
3.Simulink定点模块組(SimulinkFixedPoint)新增新的图形化介面,用於定点数系統的分析和縮放(Scaling);
4.事件模拟模块組(SimEvents)可支援向量(Vector)及距阵(Matrix);
5.新产品Simscape物理模型模拟模块組可支援复域的物理模型模拟(MultidomainPhysicalModeling)。
*MathworksMatlabR2007a:
What'sNewinRelease2007a
R2007a,releasedonMarch1,2007,includesupdatestoMATLABandSimulink,twonewproductsreleasedsinceR2006b,andupdatesandbugfixesto82otherproducts.R2007aaddssupportfortheIntel®basedMac,WindowsVista™,and64-bitSunSolaris™SPARCplatforms.SubscriberstoMathWorksSoftwareMaintenanceServicecandownloadR2007aproductupdates.
NewcapabilitiesfortheMATLABproductfamilyinclude:
*MultithreadedcomputationinkeyMATLABmathfunctionsformulticoreandmultiprocessorsystems
*AbilitytorunparallelalgorithmsinfourMATLABsessionsonyourdesktopwithDistributedComputingToolbox
*NewcategoricalanddatasetarraysinStatisticsToolbox
*Fixed-PointToolboxaccelerationatthespeedofcompiledC
*ExactmodelingandanalysisofcontrolloopswithdelaysinControlSystemToolbox
*GenerationofnonlinearmodelswithSystemIdentificationToolbox
*SimulatedannealinginGeneticAlgorithmandDirectSearchToolbox
NewcapabilitiesfortheSimulinkproductfamilyinclude:
*MultidimensionalsignalsupportforSimulink,SignalProcessingBlockset,EmbeddedMATLABFunctionblock,VideoandImageProcessingBlockset,andReal-TimeWorkshop
*ImprovedcodeefficiencyandMISRACsupportinReal-TimeWorkshopEmbeddedCoder
*Newgraphicalinterfaceforanalyzingandscalingfixed-pointsystemsinSimulinkFixedPoint
*VectorandmatrixsupportinSimEvents
*Simscape,anewproductformultidomainphysicalmodeling
二)MATLAB的主要组成部分:
MATLAB系统由5个主要的部分构成:
(1)开发环境(developmentEnvironment):
为MATLAB用户或程序编制员提供的一套应用工具和设施。
由一组图形化用户接口工具和组件集成:
包括MATLAB桌面、命令窗口、命令历史窗口、编辑调试窗口及帮助信息、工作空间、文件和搜索路径等浏览器;
(2)MATLAB数学函数库(MathFunctionLibrary):
数学和分析功能在MATLAB工具箱中被组织成8个文件夹。
elmat初步矩阵,和矩阵操作。
elfun初步的数学函数。
求和、正弦、余弦和复数运算等
specfun特殊的数学函数。
矩阵求逆、矩阵特征值、贝塞尔函数等;
matfun矩阵函数-用数字表示的线性代数。
atafun数据分析和傅立叶变换。
polyfun插值,多项式。
funfun功能函数。
sparfun稀疏矩阵。
(3)MATLAB语言:
(MATLABLanguage)一种高级编程语言(高阶的矩阵/数组语言),包括控制流的描述、函数、数据结构、输入输出及面对对象编程;
(4)句柄图形:
(HandleGraphics)MATLAB制图系统具有2维、三维的数据可视化,图象处理,动画片制作和表示图形功能。
可以对各种图形对象进行更为细腻的修饰和控制。
允许你建造完整的图形用户界面(GUI),以及建立完整的图形界面的应用程序。
制图法功能在MATLAB工具箱中被组织成5个文件夹:
graph2d二维数图表。
graph3d三维图表。
specgraph专业化图表。
graphics制图法。
uitools图形用户界面工具。
(5)应用程序接口:
(AppliedFunctionInterface)MATLAB的应用程序接口允许用户使用C或FORTRAN语言编写程序与MATLAB连接。
MATLAB工具箱(Toolbox);(表1—2)
二.MATLAB的安装:
与一般光盘软件的安装相同,略
三.MATLAB的系统开发环境(SystemDevelopingEnvironment)
1.操作桌面(OperatingDesktop)
(1)桌面布局:
6个窗口(图示、操作演示)
*命令窗口(CommendWindow)
*工作空间窗口(Workspace)
*当前目录浏览器(CurrentDirectory)
*命令历史窗口(CommendHistory)
*启动平台(LaunchPad)6.x版
*帮助窗口(Help)
*M文件优化器(Profiler)
窗口的切换、放大与关闭。
(switching,Amplification,tun-off)
View菜单中的desktoplayout菜单中提供的6种可选布局:
*Default
*CommandWindow
*Simple
*ShortHistory
*TallHistory
*FivePanel
(2).菜单和工具栏;(Menuandtoolbar)操作桌面上有6个菜单(表1—3)和带有9个快捷按钮的工具栏组,(图示、操作演示)
(3).改变桌面设置:
(Setting)File菜单中Preference对话框中设置(图示、操作演示)
2.命令窗口:
(Commandwindow)MATLAB的主要交互窗口。
用于输入MATLAB命令、函数、数组、表达式等信息,并显示图形以外的所有计算结果。
例如从键盘输入矩阵
A=[123;456;789]按Enter键后屏幕立即显示结果
A=
123
456
789
命令窗口可作为一个多功能高级计算器,如要计算18+(5sinπ/6)/2+cosπ/6只须按MATLAB格式要求键入;
18+5*sin(pi/6)/(2+cos(pi/6)),然后按Enter键既可在窗口内显示出计算结果:
ans=
18.8723
公式中的数据可任意改动并重新计算。
(例)
还可在命令窗口输入最后一次输入命令的开头字符或字符串,然后用↑键调出该命令行。
MATLAB是标准的Windows界面,可利用菜单中的命令完成对工作窗口的操作。
其命令行功能键和快捷键与Windows的一般应用程序相似,(表1—4)(自学)
3.工作空间窗口:
(WorkspaceWindow)
用于储存各种变量和结果的空间,显示变量的名称、大小、字节数及数据类型,对变量进行观察、编辑、保存和删除。
(图示、操作演示)。
临时变量不占空间,
为了对变量的内容进行观察、编辑与修改,可以用三种方法打开内存数组编辑器。
*双击变量名;*选择该窗口工具栏上的打开图标;*鼠标指向变量名,点击鼠标右键,弹出选择菜单,然后选项操作。
(示例)
欲查看工作空间的情况,可以在命令窗口键入命令whos(显示存在工作空间全部变量的名称、大小、数据类型等信息)或命令who(只显示变量名)
4.当前目录浏览器:
(CurrentDirectory)
用于显示及设置当前工作目录,同时显示当前工作目录下的文件名、文件类型及目录的修改时间等信息。
只有在当前目录或搜索路径下的文件及函数可以被运行或调用。
(图示、操作演示)
设置当前目录可以在浏览器窗口左上角的输入栏中直接输入,或点击浏览器下拉按钮进行选择。
还可用cd命令在命令窗口设置当前目录,如:
cdc:
\mydir可将c盘上的mydir目录设为当前工作目录。
(5).命令历史窗口:
(CommandHistory)
记录已运行过的MATLAB命令历史,包括已运行过的命令、函数、表达式等信息,可进行命令历史的查找、检查等工作,也可以在该窗口中进行命令复制与重运行。
(图示、操作演示)
6.启动平台:
(LaunchPad)
帮助用户方便地打开和调用MATLAB的各种程序、函数和帮助文件。
平台列出了系统中安装的所有的MATLAB产品的目录,可以通过双击来启动相应的选项。
7.0版取消了这个窗口,事实上Help工具完全具备它的功能。
(图示、操作演示)
7.MATLAB的搜索路径:
(SearchingPath)
MATLAB定义的一系列文件路径的组合,缺省状态下包括当前路径和已安装的全部工具箱的路径。
(图示、操作演示)
当在命令窗口输入一个字符串时,MATLAB按下列顺序开始搜索:
(1)在工作空间中搜索是否有以该字符串为变量名的变量,有则返回该变量的值;
(2)搜索是否有同名的MATLAB内部函数,如果有,执行该内部函数;
(3)在当前目录中查找与该字符串同名的M文件,如果有,执行该文件;
(4)在搜索目录中查找与该字符串同名的M文件,如果有,执行该文件;
如果在搜索目录中存在多个同名函数,则只执行搜索路径中的第一个函数,其他函数不再执行。
搜索目录的设置通过选择主菜单SetPath菜单项进行。
用AddFolder…按钮可以将某一目录加入搜索路径,选择AddwithSubfolder…按钮可将选中目录的子目录也包括在搜索路径中。
8.内存数组编辑器:
(ArrayEditor)
提供对数值型或字符型二维数组的显示和编辑功能,对其他数据类型都不能编辑。
通过工作空间窗口打开所选的变量时,该编辑器启动。
(图示、操作演示)
9.帮助浏览器:
(HelpBrowser)
(1)帮助浏览器:
提供方便快捷的帮助信息获取途径和图文并茂的帮助内容,MATLAB7.0是通过勾选Desktop菜单中的Help选项打开一个独立的交互式帮助浏览器。
(2)help命令:
在命令窗口输入help命令,也是MATLAB寻找在线帮助的一种方便而快捷的方式。
(图示、操作演示)
例1.help(列出主要的帮助主题)
HELPtopics:
matlab\general-Generalpurposecommands.
matlab\ops-Operatorsandspecialcharacters.
matlab\lang-Programminglanguageconstructs.
matlab\elmat-Elementarymatricesandmatrixmanipulation.
matlab\elfun-Elementarymathfunctions.
matlab\specfun-Specializedmathfunctions.
matlab\matfun-Matrixfunctions-numericallinearalgebra.