MATLAB基础教程及常用命令和函数_第1页
MATLAB基础教程及常用命令和函数_第2页
MATLAB基础教程及常用命令和函数_第3页
MATLAB基础教程及常用命令和函数_第4页
MATLAB基础教程及常用命令和函数_第5页
已阅读5页,还剩247页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB基础教程及常用命令和函数

第一章MATLAB入门

Chapterone:IntroductiontoMATLAB

MATLAB(MatrixLaboratory)是差国MathWorks公司开发的用于概念设

计,算法开发,建模仿真,实时实现的理想的集成环境,是目前最好的科学计

算类软件。作为和MathematicalMaple并列的三大数学软件之一,其强项就

是强大的矩阵计算以及仿真能力。MATLAB提供了自己的编译器:全面兼容C++

以及Fortran两大语言。所以MATLAB是工程师、科研工作者手上最好的语言,

最好的工具和环境,已经成为广大科研人员的最值得信赖的助手和朋友。除了

具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视

化建模仿真和实时控制等功能,是具有全部语言功能和特征的新一代软件开发

平台。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形

式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言简捷得多.MATLAB

是国际公认的优秀数学应用软件之一。

目前,MATLAB已发展成为适合众多学科,多种工作平台、功能强大的大型

软件,成为了诸多领域的开发首选软件,并且,MATLAB还具有500余家第三

方合作伙伴,分布在科学计算、机械动力、化工、计算机通讯、汽车、金融等

领域,接口方式包括了联合建模、数据共享、开发流程衔接等等。在欧美等国

家的高校,MATLAB已成为线性代数、自动控制理论、数理统计、数字信号处理、

时间序列分析、动态系统仿真等高级课程的基本教学工具。成为攻读学位的本

科、硕士、博士生必须掌握的基本技能。在设计研究单位和工业开发部门,

MATLAB被广泛的应用于研究和解决各种具体问题。

MATLAB的发展历程和影响

MATLAB由MATrix和LABoratory两词的前三个字母组合而成。20

世纪七十年代后期,时任美国新墨西哥大学计算机科学系主任的CleveMoler

教授出于减轻学生编程负担的动机,为学生设计了一组调用UNPACK和

EISPACK库程序的''通俗易用〃的接口,形成了用FORTRAN编写的萌芽状态

的MATLABo

经几年的校际流传,在Little的推动下,由Little、Moler、Steve

Bangert合作,于1984年成立了MathWorks公司,并把MATLAB正式

推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值

计算能力外,还新增了数据图视功能。

MATLAB以商品形式出现后,仅短短几年,就以其良好的开放性和运行的

可靠性,使原先控制领域里的封闭式软件包(如英国的UMIST,瑞典的LUND

和SIMNON,德国的KEDDC)纷纷被淘汰,而改以MATLAB为平台加以

重建。在时间进入20世纪九十年代的时候,MATLAB已经成为国际控制界

公认的标准计算软件。

到九十年代初期,在国际上30几个数学类科技应用软件中,MATLAB在

数值计算方面独占鳌头,而Mathematica和Maple则分居符号计算软件的

前两名。Mathcad则因其使用操作十分简单,不要求用户具有精深的计算机

知识,对于任何具有一定数学知识的人,都可以十分容易地学会使用。当输入

一个数学公式、方程组、矩阵等,计算机将直接给出计算结果,而无须去考

虑中间计算过程。因MathCad也可以进行复杂的数学计算,图形显示和文档

处理,也是一种受欢迎的大众化数学工具。

MathWorks公司于1993年推出MATLAB4.0版本,从此告别DOS

版。4.x版在继承和发展其原有的数值计算和图形可视能力的同时一,出现了以

下几个重要变化:

(1)推出了SIMULINKo这是一个交互式操作的动态系统建模、仿真、分

析集成环境。它的出现使人们有可能考虑许多以前不得不做简化假设的非线性

因素、随机因素,从而大大提高了人们对非线性、随机动态系统的认知能力。

(2)开发了与外部进行直接数据交换的组件,打通了MATLAB进行实时数

据分析、处理和硬件开发的道路。

(3)推出了符号计算工具包。1993年MathWorks公司从加拿大滑铁卢

大学购得Maple的使用权,以Maple为''引擎〃开发了SymbolicMath

Toolbox1.0oMathWorks公司此举加快结束了国际上数值计算、符号计算

孰优孰劣的长期争论,促成了两种计算的互补发展新时代。

(4)构作了Notebook。MathWorks公司瞄准应用范围最广的Word,

运用DDE和OLE,实现了MATLAB与Word的无缝连接,从而为专业科

技工作者创造了融科学计算、图形可视、文字处理于一体的高水准环境。

随着时间的推移,MATLAB的功能不断扩充,版本不断升级,现今的MATLAB

拥有更丰富的数据类型和结构、更友善的面向对象、更加快速精良的图形可视、

更广博的数学和数据分析资源、更多的应用开发工具。

1995年推出了4.2版,1997年春,MATLAB5.0版问世,紧接着是5.1、

5.2,5.X版无论是界面还是内容都有长足的进展,其帮助信息采用超文本格式

和PDF格式,可以方便的浏览。至2001年6月推出6.1版,2002年6月推出

6.5版。

从2006年开始,MathWorks公司每年进行两次例行的产品发布,时间分别

在每年的3月和9月,而且,每一次发布都会包含所有的产品模块,如产品的

newfeature、bugfixes和新产品模块的推出。继7.0版、7.1版、7.3(MATLAB

2006b)版、7.4(R2007a)版、7.5(R2007b)版、7.6(R2008a)版。7.7(R2008b)

版,7.8(R2009a)版,最新版本为2009年9月4日发布的7.9版(R2009b)

MATLAB和Simulink产品家族。

从R2008a开始,MATLAB和Simulink产品家族软件在安装后需要激活才能

使用。

附件:版本发布或者更新时间

版本建造编号发布时间

MATLAB1.01984

MATALB21986

MATLAB31987

MATLAB3.51990

MATLAB41992

MATLAB4.2cR71994

MATLAB5.0R81996

MATLAB5.1R91997

MATLAB5.1.1R9.11997

MATLAB5.2RIO1998

MATLAB5.2.1R10.11998

MATLAB5.3Rll1999

MATLAB5.3.1Rll.l1999

MATLAB6.0R122000

MATLAB6.1R12.12001

MATLAB6.5R132002

MATLAB6.5.1R13SP12003

MATLAB6.5.2R13SP22003

MATLAB7R142004

MATLAB7.0.1R14SP12004

MATLAB7.0.4R14SP22005

MATLAB7.1R14SP32005

MATLAB7.2R2006a2006

MATLAB7.3R2006b2006

MATLAB7.4R2007a2007

MATLAB7.5R2007b2007

MATLAB7.6R2008a2008

MATLAB7.7R2008b2008

MATLAB7.8R2009a2009.3.6

MATLAB7.9R2009b2009.9.4

MATLAB7.10R2010a2010.3.5

MATLAB7.11R2010b2010.9.3

MATLAB7.12R2011a2011.4.8

MATLAB7.13R2011b2011.9.3

到1999年底,Mathematica也已经升到4.0版,它特别加强了以

前欠缺的大规模数据处理能力。Mathcad也赶在2000年到来之前推出了

Mathcad2000,它购买了Maple内核和库的部分使用权,打通了与

MATLAB的接口,从而把其数学计算能力提高到专业层次。但是,就影响而言,

至今仍然没有一个别的计算软件可与MATLAB匹敌。

在欧美大学里,诸如应用代数、数理统计、自动控制、数字信号处理、模

拟与数字通信、时间序列分析、动态系统仿真等课程的教科书都把MATLAB作

为内容。这几乎成了九十年代教科书与旧版书籍的区别性标志。在那里,

MATLAB是攻读学位的大学生、硕士生、博士生必须掌握的基本工具。

在国际学术界,MATLAB已经被确认为准确、可靠的科学计算标准软件。

在许多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到MATLAB的

应用。

在设计研究单位和工业部门,MATLAB被认作进行高效研究、开发的首

选软件工具。如美国NationalInstruments公司信号测量、分析软件

LabVIEW,Cadence公司信号和通信分析设计软件SPW等,或者直接建

筑在MATLAB之上,或者以MATLAB为主要支撑。又如HP公司的VXI硬

件,TM公司的DSP,Gage公司的各种硬卡、仪器等都接受MATLAB的

支持。

MATLAB-巨人肩上的工具

MATLAB被誉为''巨人肩上的工具”。由于使用Matlab编程运算与人进

行科学计算的思路和表达方式完全一致,所以不象学习其它高级语言一如

Basic、Fortran和C等那样难于掌握,用Matlab编写程序犹如在演算纸上排

列出公式与求解问题,所以又被称为演算纸式科学算法语言。一般数值分析、

矩阵运算、数字信号处理、建模和系统控制和优化等应用程序,并集应用程序

和图形于一体便于使用的集成环境中。在这个环境下,对所要求解的问题,用

户只需简单地列出数学表达式,其结果便以数值或图形方式显示出来。

MATLAB的含义是矩阵实验室(MATRIXLABORATORY),主要用于方

便矩阵的存取,其基本元素是无须定义维数的矩阵。MATLAB自问世以来,就是

以数值计算称雄。MATLAB进行数值计算的基本单位是复数数组(或称阵列),

这使的MATLAB高度''向量化"。经过十几年的完善和扩充,现已发展成为线性

代数课程的标准工具。由于它不需定义数组的维数,并给出矩阵函数、特殊矩

阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等

领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。

美国许多大学的实验室都安装有MATLAB供学习和研究之用。

MATLAB中包括了被称作工具箱(TOOLBOX)的各类应用问题的求解工

具。工具箱实际上是对MATLAB进行扩展应用的一系列MATLAB函数(称为

M文件),它可用来求解各类学科的问题,包括信号处理、图象处理、控制系统

辨识、神经网络等。随着MATLAB版本的不断升级,其所含的工具箱的功能也

越来越丰富,因此,应用范围也越来越广泛,成为涉及数值分析的各类工程师

不可不用的工具。

MATLAB5.3中包括了图形界面编辑GUI,改变了以前单一的''在指令窗

通过文本形式的指令进行各种操作”的状况。这可让使用者也可以象VB、VC、

VJ、DELPHI等那样进行一般的可视化的程序编辑。

在命令窗口(matlabcommandwindow)键入simulink,就出现

(SIMULINK)窗口。以往十分困难的系统仿真问题,用SIMULINK只需拖动

鼠标即可轻而易举地解决问题,这也是近来受到重视原因之一。

MATLAB的重要功能和主要组成部分

-)功能:目前MATLAB产品族的主要功能为:

1、数学运算功能:MATLAB的产品家族的基础

-矩阵运算和数值分析算法等

-数值和符号计算

2、2D和3D图形显示功能:可以实现相应数值可视化工作

-工程与科学绘图

-数字图像处理

3、交互式的高级编程语言:M语言编程功能,可通过编写脚本或者函数文件实

现用户自己的算法

4、工具箱函数功能:可供用户直接使用的专业工具箱函数,目前有四十多个工

具箱,含盖许多科技领域,如:

-科学计算

-控制系统的设计与仿真

-数字信号处理

-数字图象处理

-通讯系统设计与仿真

一财务与金融工程

-生物遗传工程…

5、编译功能:可通过编译器(Compiler)将MATLABM语言编写的函数文件

编译生成函数库、可执行文件COM组件等,使MATLAB能够同其他高级编程

语言(如C/C++等)进行混合应用,取长补短。

MATLAB具有用法简易、可灵活运用、程序结构强又兼具延展性的优点,

以下为其主要特色:

・功能强大的数值运算:在MATLAB环境中,有超过500种数学、统计、科

学及工程方面的函数可使用,函数的标示自然,使得问题和解答像数学式

子一般简单明了,让使用者可全力发挥在解题方面,而非浪费在电脑操作

上。

・先进的资料视觉化功能:MATLAB的物件导向图形架构让使用者可执行视

觉数据分析,并制作高品质的图形,完成科学性或工程性图文并茂的文章。

・高阶但简单的程序环境:做为一种直译式的程序语言,MATLAB让使用者

在短时间内写完程序,所花的时间约为用FORTRAN或C的几分之一,而

且不需要编译(compile)及联结(link)即能执行,同时包含了更多及更

容易使用的内建功能。

・开放及可延伸的架构:MATLAB容许使用者接触它大多数的数学原始码,

监视运算法,更改现存函数,甚至加入自己的函数使MATLAB成为使用者

所须要的环境。

・丰富的程序工具箱:MATLAB拥有多于40种的程序工具箱,这些工具箱将

套装前软件的优点,与一个灵活的开放但容易操作的环境融合,提供了使

用者在特别应用领域所需之许多函数。现有工具箱主要有:符号运算(利

用MapleV的计算核心执行)、影像处理、统计分析、讯号处理、神经

网路、模拟分析、控制系统、即时控制、系统确认、强建控制、弧线分析、

最佳化、模糊逻辑、mu分析及合成、化学计量分析等几大类别。

MATLAB7的升级内容:MATLAB7针对编程环境,代码效率、数据可

视化、数学计算、文件I/O等方面进行了升级,包括:

*开发环境

1、重新设计了桌面环境,针对多文档界面应用提供了简便的管理和访

问方法,允许用户自定义桌面外观,创建常用命令的快捷方式;

2、增强数组编辑器(ArrayEditor)和工作空间浏览器(Workspace

Browser)功能,用于数据的显示、编辑和处理;

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内存访问。

二)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维、3维的

数据可视化,图象处理,动画片制作和表示图形功能。可以对各种图

形对象进行更为细腻的修饰和控制。允许你建造完整的图形用户界面

(GUI),以及建立完整的图形界面的应用程序。制图法功能在

MATLAB工具箱中被组织成5个文件夹:

graph2d二维数图表。

graph3d三维图表。

specgraph专业化图表。

graphics制图法。

uitools图形用户界面工具。

(5)应用程序接口:(AppliedFunctionInterface)MATLAB的应用程

序接口允许用户使用C或FORTRAN语言编写程序与MATLAB连接。

MATLAB工具箱(Toolbox);(表1一2)

二.MATLAB的安装:与一般光盘软件的安装相同,略

三.MATLAB的系统开发环境(SystemDevelopingEnvironment)

1.操作桌面(OperatingDesktop)

(1)桌面布局:

不同版本的MATLAB界面设置略有不同,R2009b设有6个窗口、11

个快捷键、7个下拉菜单和一个浏览器。可以用菜单中的命令完成对工作

窗口的操作,使用方法和windows的一般应用程序相同。窗口布局(Desktop

Layout)有5种方式可供选择。窗口设置为:

*命令窗口(CommendWindow)

*工作空间窗口(Workspace)

*当前目录浏览器(CurrentDirectory)(Currentfolder7.9版)

*命令历史窗口(CommendHistory)

*启动平台(LaunchPad)6.x版

*帮助窗口(Help)

*M文件优化器(Profiler)

ProfilerforImprovingPerformance:Onewaytoimprovethe

performanceofyourM-filesisusingprofilingtools.MATLABprovidesthe

M-,agraphicaluserinterfacethatisbasedontheresultsreturnedbythe

pro.UsetheProfilertohelpyoudeterminewhereyoucanmodifyyour

codetomakeperformanceimprovements.

窗口的切换、放大与关闭。(switching,Amplification,tun-off)

6.0版Desktop菜单中的desktoplayout菜单中提供的6种可选布局:

"Default

*CommandWindow

"Simple

*ShortHistory

*TallHistory

*FivePanel

7.0版Desktop菜单中的desktoplayout菜单中提供的4种可选布局:

"Default

"CommandWindowOnly

*HistoryandCommandWindow

*A11Tabbed

Allbutcommandwindowminimized(7.9版)

(2).菜单和工具栏;(Menuandtoolbar)操作桌面上有7个菜单和带有

13个快捷按钮的工具栏组,还可以通过Preference对话框设置其它内设的

快捷键(图示、操作演示)。

(3).改变桌面设置:(Setting)在File菜单中选择Preference对话框,可

在树状结构中选择并改变桌面设置。(图示、操作演示)

2.命令窗口:(Commandwindow)MATLAB的主要交互窗口。用于输入

MATLAB命令、函数、数组、表达式等信息,并显示图形以外的所有计算

结果。数值计算结果均以短格式(short)显示。

例如从键盘输入矩阵

A=[l23;456;789]按Enter键后屏幕立即显示结果

A=

123

456

789

6.X以前版本窗口内各种字体均为黑色,6.X以后各版都采用不同的

颜色显示不同的字符种类,用户可根据自己的爱好利用file快捷键中的

properties选项自由设置。

命令窗口可作为一个多功能高级计算器,如要计算18+(5sinJi

/6)/2+cosJi/6只须按MATLAB格式要求键入;

18+5*sin(pi/6)/(2+cos(pi/6)),然后按Enter键既可在窗口内显示出计

算结果:

ans=

18.8723

可利用T键回调命令行,任意改动公式中的数据并重新计算。(例)

还可在命令窗口输入最后一次输入命令的开头字符或字符串,然后用

f键调出该命令行。

MATLAB是标准的Windows界面,可利用菜单中的命令完成对工作

窗口的操作。其命令行功能键和快捷键与Windows的一般应用程序相似,

同学可自行练习、体会。

3.工作空间窗口:(WorkspaceWindow)

用于储存各种变量和结果的空间,又称为内存浏览器,用于显示变量

的名称、大小、字节数及数据类型,对变量进行观察、编辑、保存和删除。

(图示、操作演示)。临时变量不占空间,

Matlab在此窗口中设计有专门的内存数组编辑器,实现对数组的相关

操作,为了对变量的内容进行观察、编辑与修改,可以用三种方法打开内

存数组编辑器。*双击变量名;*选择该窗口工具栏上的打开图标;*鼠标指

向变量名,点击鼠标右键,弹出选择菜单,然后选项操作。(示例)

欲查看工作空间的情况,可以在命令窗口键入命令whos(显示存在工

作空间全部变量的名称、大小、数据类型等信息)或命令who(只显示变

量名)

4.当前目录浏览器:(CurrentDirect。”(folder))

用于显示及设置当前工作目录,同时显示当前工作目录下的文件名、

文件类型及目录的修改时间等信息。只有在当前目录或搜索路径下的文件

及函数可以被运行或调用。(图示、操作演示)

把用户目录设置为当前目录有两种方法:

1、是可以在浏览器窗口左上角的输入栏中直接输入,或点击浏览器

下拉按钮进行选择。

2、可用cd命令在命令窗口设置当前目录,如:

cdc:\mydir可将c盘上的mydir目录设为当前工作目录。

5.命令历史窗口:(CommandHistory)

记录已运行过的所有的MATLAB命令历史,包括已输入和运行过的命

令、函数、表达式等信息,可进行命令历史的查找、检查等工作,也可以

在该窗口中进行命令复制与重运行,为用户下一次使用同一个命令提供方

便。通过命令历史窗口执行历史指令的方法有两种:

1、用鼠标左键双击一条指令,即可自动将其发送到命令窗口并立即

执行;

2、选中一条指令,单击鼠标右键并选择copy菜单,再在命令窗口

单击paste按钮即可。

若欲选择多条指令可利用组合操作(Ctrl+鼠标左键)逐条选择准备选

用的指令,然后将鼠标停在高亮区,单击右键,弹出对话菜单,选中

其中的“EvaluateSelection”选项,就可自动运行并将结果显示在命令

窗口中。还可用按住shift键,再用左键分别选择一个不定区间的始、

末行指令的办法选择多条命令。

6.启动平台:(LaunchPad)(6.0版)

帮助用户方便地打开和调用MATLAB的各种程序、函数和帮助文件。

平台列出了系统中安装的所有的MATLAB产品的目录,可以通过双击

来启动相应的选项。7.0版取消了这个窗口,事实上Help工具完全具备它

的功能。(图示、操作演示)

7.MATLAB的搜索路径:(SearchingPath)

MATLAB定义的一系列文件路径的组合,缺省状态下包括当前路径和

已安装的全部工具箱的路径。(图示、操作演示)

当在命令窗口输入一个字符串时,MATLAB按下列顺序开始搜索:

(1)在工作空间中搜索是否有以该字符串为变量名的变量,有则返回

该变量的值;

(2)搜索是否有同名的MATLAB内部函数,如果有,执行该内部函

数;

(3)在当前目录中查找与该字符串同名的M文件,如果有,执行该

文件;

(4)在搜索目录中查找与该字符串同名的M文件,如果有,执行该

文件;

如果在搜索目录中存在多个同名函数,则只执行搜索路径中的第一个

函数,其他函数不再执行。

搜索目录的设置通过选择主菜单SetPath菜单项进行。

用AddFolder…按钮可以将某一目录加入搜索路径,选择Addwith

Subfolder…按钮可将选中目录的子目录也包括在搜索路径中。

可以用what命令在搜索路径中查看文件,在命令窗口输入what命令

后就可以显示当前目录下的所有文件。

利用type命令可以查看任一文件的原代码,如typeshow可以将文件

show自动显示在命令窗口。

还可以利用edit命令编辑修改.m文件,如在命令窗口输入editshow,

就会自动将文件show自动在编辑器中打开,然后就可完成对该文件的编

辑修改工作。

8.内存数组编辑器:(ArrayEditor)

提供对数值型或字符型二维数组的显示和编辑功能,对其他数据类型

都不能编辑。通过工作空间窗口打开所选的变量时,该编辑器启动。(图示、

操作演示)

9.帮助浏览器:(HelpBrowser)

MATLAB为用户提供了方便快捷的帮助信息获取途径和图文并茂的

帮助内容,获得帮助信息有下述多种方式:

*帮助命令help;

*帮助窗口;

*MATLAB帮助界面;

*打印在线帮助手册;

*MathWorks公司网站。

TheMathWorks,Inc.网址:

(1)help命令:在命令窗口输入help命令,也是MATLAB寻找在线帮

助的一种方便而快捷的方式。(图示、操作演示)

例1.help(列出主要的帮助主题)

HELPtopics:

matlab\general-Generalpurposecommands.

matlab\ops-Operatorsandspecialcharacters.

matlabMang-Programminglanguageconstructs.

matlab\elmat-Elementarymatricesandmatrixmanipulation.

matlab\elfun-Elementarymathfunctions.

matlab\specfun-Specializedmathfunctions.

matlab\matfun-Matrixfunctions-numericallinearalgebra.

matlab\datafun-DataanalysisandFouriertransforms.

matlab\audio-Audiosupport.

matlab\polyfun-Interpolationandpolynomials.

matlab\funfun-FunctionfunctionsandODEsolvers.

matlab\sparfun-Sparsematrices.

matlab\graph2d-Twodimensionalgraphs.

matlab\graph3d-Threedimensionalgraphs.

matlab\specgraph-Specializedgraphs

(2)帮助浏览器:

MATLAB通过选择help可以获得各类帮助信息,通过勾选或删除勾选

Desktop菜单中的Help选项可打开或关闭窗口中独立的交互式帮助浏览

器。

例2.helpexp(列出指定主题下的函数说明)

EXPExponential.

EXP(X)istheexponentialoftheelementsofX,etotheX.

ForcomplexZ=X+i*Y,EXP(Z)=EXP(X)*(COS(Y)+i*SIN(Y)).

SeealsoLOG,LOG10,EXPM,EXPINT.

Overloadedmethods

helpsym/exp.m

helpfints/exp.m

helpdemtseries/exp.m

(3)lookfor命令:(lookforcommend)可以根据用户提供的完整或不完

整的关键词,搜索出一组与之相关的命令或函数。(图示、操作演示)

例:lookforintegral

ELLIPKECompleteellipticintegral.

EXPINTExponentialintegralfunction.

DBLQUADNumericallyevaluatedoubleintegral.

QUADNumericallyevaluateintegral,adaptiveSimpsonquadrature.

QUAD8Numericallyevaluateintegral,higherordermethod.

QUADLNumericallyevaluateintegral,adaptiveLobattoquadrature.

COSINTCosineintegralfunction.

SININTSineintegralfunction.

ASSEMAAssemblesareaintegralcontributionsinaPDEproblem.

COSINTCosineintegralfunction.

FOURIERFourierintegraltransform.

IFOURIERInverseFourierintegraltransform.

SININTSineintegralfunction.

BLKPIDCONTheoutputoftheblockisthesumofproportional,integraland

(4)模糊查询:(fuzzyInquiry)用户只须输入命令的前几个字母,然后键

入Tab键MATLAB就会列出所有以这个字母开始的命令。(图示、操作演

示)

例:在命令窗口键入plot然后按Tab键,可得各种以plot为字头的命令:

plotplotbrplotesplotmapplotperfplottr

plot3plotcharplotfaplotmatrixplotpvplotv

plot3mploteachplotfisplotmfplotscaleplotvec

plotallploteditplotfrspplotnicplotsmplotyy

plotbintreeplotepplotlrplotnyqplotsom

plotbodeploterrplotmplotpcplotstep

(5)帮助台:(doc)帮助台比帮助命令及帮助窗口提供更多的帮助信息。

键入命令helpdesk可进入帮助台,可以利用浏览器的功能浏览帮助信息。

(6)在线帮助页:(doc)命令doc后加关键字,MATLAB会自动定位到

相关页码,在线帮助页包括所有的字体、图形和图像都可以直接打印。

*演示:(Demo)交互式界面引导的内置演示程序,运行这些程序可以对照

屏幕上的显示仔细的研究实现演示的有关M文件,其独特的示范作用是书

籍难以替代的。演示方法:1、指令窗口上输入Demos指令

2、菜单栏help中选择Demos菜单

四.MATLAB的基本操作

1.简单矩阵的建立(matrixsetting)

Matrix:Akindofspecialtypeofdatastructure,mostfunctionandoperationof

MATLABwerebasedonit.Itisasetofnumbersarrangedusingarectangular

gridofrowsandcolumns.

*ScaIar:Itisjustasinglenumberanditcanbeconsideredasaspecialmatrix

withonerowandonecolumn.

*Vector:Itisaseriesofnumbersarrangedinaroworacolumn;Alsowecan

refertothevectorasaspecialmatrixwithoneroworonecolumn.Itmaybe

calledarowvectororacolumnvector.

MATLAB以矩阵为基本运算对象,标量可看作1X1的矩阵,矢量看

作nXl或IXn的矩阵。

输入方式:(InputMode)

(1)以直接列出元素的形式输入:(simplyinitializingmatricesbythe

methodtoexplicitlyliststhevalues)把矩阵元素直接排列到方括号口中,每

行内的元素用逗号或空格分开,行与行之间用分号隔开或另换行输入。

例:a=[l23;246;835]或a=[l,2,3;2,4,6;8,3,5]

大矩阵可分行输入:

a=[l23

246

835]

(2).通过语句和函数产生:(Creatinganewmatrixfromaexistingmatrix

throwMATLABlanguageorfunctions)对于已经存在的矩阵,可用函数

或表达式产生新的矩阵。例如:矩阵a和x已存在,利用y=sin(x)和

c=a+0.1*(l+a/2)命令将产生新矩阵y和c。

利用内部语句和函数可以快速产生一些特别有用的工具矩阵,如全0

阵,全1阵,单位阵,随机阵等。

(3).在m文件中创建矩阵:(CreatingamatrixwithintheMfile)通过建

立MATLAB的M文件可完成矩阵的输入,如建立B.m的文件,内容为:

B=[342;l35;643]

或B=[342

135

643]

则在命令窗口中使用B命令语句可以调用B矩阵。

(4)从外部的数据文件中装入:(ReadtheMatrixfromexterna】data行le)

利用load或fread命令可以读取MATLAB早期版本产生的矩阵,也可

读取有其他应用程序产生的数据(或矩阵)。

2.矩阵元素(Elementofmatrix:Anykindofexpressioncanbeusedasa

matrixelement)

可以用任何形式的表达式来充当矩阵元素,如:

x=[-1.3sqrt(3)(1+2+3)*4/5]

将得到矩阵:

x=

-1.30001.73214.8000

可以定义或修改矩阵中某一元素,如操作:

x=[-1.3sqrt(3)(1+2+3)*4/5]

x(5)=abs(x(l))

得一个新矩阵

x=

-1.30001.73214.800001.3000

可以用小矩阵构成大矩阵,如:

a=[l23;456;789];

c=[a;[10,ll,12]]结果为:

c=

123

456

789

101112

或a=[l23;456;789];

r=[101112];

c=[a;r]

可得同样矩阵c=

123

456

789

101112

可使用(colon)从大矩阵中抽取小矩阵,(withdrawasmallmatrixfroma

bigmatrix)下标中的(:)表示所有的行或列。如:

a=[l23;456;789];

r=[101112];

c=[a;r]

d=c(l:3,:)意为抽取一到三行的各列,结果为:

d=

123

456

789

e=c(:,l:2)意为抽取一到二列的各行,结果为:

12

45

78

1011

3.语句与变量(Statementandvariable)

MATLAB语句的常用格式:变量=表达式(;)(variable=expression(;))

或简化为:表达式(;)

表达式可以由运算符(Operator)>特殊字符(specialcharacter)、函数名

(functionname)>变量名(variablename)等组成,表达式的结果为一矩阵,

它赋给左边的变量。如省略变量名和“=”,则自动产生一个名为ans的变

量,如:

1900/81结果为:

23.45684568

并显示在屏幕上,如语句以分号结束,则结果不显示,

如:p=a*a;只完成运算,但不显示结果。

表达式较长时可利用续行符如:

s=l-l/2+l/3-l/4+l/5-l/6+l/7-...

1/8+1/9-1/10+1/11-1/12;

计算结果为:0.6532

注:续行号前不应是数字,数字后应为运算符、空格或加一个点号。

MATLAB变量:变量名必须用字母打头,之后可以是任何字母、下划线或

者数字,变量名最多不超过31个字符,31个字符后的字符将被忽略。

4.复数和复数矩阵(Complexandcomplexmatrix)

复数用特殊字符i或j表示。i=sqrt(-l),其值在工作空间显示为

O+l.OOOOi.

例:输入z=3+4i或z=3+4j结果一样。MATLAB中复数有下面的

语句生成办法:

z=a+b*i或z=r*exp(i*9)其中r为复数的模,。为复数辐角的

弧度数。

复数的两种输入方法:

(1)a=[l2;34]+i*[56;78]

(2)a=[l+5i2+6i;3+7i4+8i]

结果相同:a=

1.0000+5.0000i2.0000+6.0000i

3.0000+7.0000i4.0000+8.0000i

注:(1)当复数的虚部(image)为一个确定的数(而不是变量或矩阵)时,

可省略“*,,,如1+2叩可写成1+方,但a+b*i不能写成a+bi,[12]+[3

4]*i不能写成[12]+[34]i

(2)当复数作为矩阵元素时,复数内不能留有空格,如1+5i,

MATLAB中任何矩阵的元素内部都不能留有空格,否则会被当作两个

元素处理而出错。

(3)如在程序设计中i、J被定义为其他变量则应定义另一新的复数

单位。如ik

5.永久变量:(permanentvariable)系统本身在启动时定义的变量,驻留在

工作空间中,它们是:

ans:(storesexpressionvalue)系统默认的变量名

eps:(representsfloating-pointprecision)容差变量,定义为0到最近浮点数

的距离。在PC机上等于2-52,即精确到2.22X10-16;

pi:(representsthevalueTI)圆周率的近似值3.141565358979

Inf或inf:(representsthevalue8)正无穷大,定义为(1/0)

NaN:(representsthevalueNot-a-Number)三£数(Notanumber),Inf/Inf

或0/0运算产生,表示不定值。

i,j:虚数单位,定义i=-»2,j=」l/2

6.数和算术表达式(Numberandarithmeticexpression)

MATLAB采用10进制惯例,可以是正,可以为负,表示10的倍数

可以用符号e或E:

3-990.0019.4561.3e-34.5E21

数值的相对精度是eps,即大约保持16位有效数字。

MATLAB的算数运算符号(ArithmeticOperator):

+力口addition,-减subtraction,*乘multiplication,

\左除leftdivision,/右除rightdivision,A幕exponentiation

对于标量,两种除法运算的结果相同,对于矩阵两种除法表示两种不

同的除数矩阵和被除数矩阵的关系。

7.数据的显示格式(Thedisplayformatofnumber)

MATLAB的数据显示格式由format命令来控制,它只影响结果在屏幕

上的显示,不影响其计算与存储。MATLAB总是以双精度执行所有的运算。

数据的显示格式。

有十种数据的显示格式可供选择:

格式对应结果

命令含义4/31.2345e-6

formatshort短格式1.33330.0000

formatlong长格式1.333333333333330.000

formatshorte短格式e方式1.3333e+0001.2345e-006

formatlonge长格式e方式1.33333333333333e+0001.2345e-006

formatshortg短格式g方式1.33331.2345e-006

formatlongg长格式g方式1.333333333333331.2345e-006

formathex16进制格式3ff55555555555553eb4b6231abfd271

format++格式++

formatrat分数格式4/31/810045

formatbank银行格式1.330.00

对于长短格式,如果矩阵的最大元素比1000大或比0.001小,则输出

时将自动加入比例因子,如:

x=[123450.0009]

x二

1.0e+004*

1.23450.0000

即x=104*[1.23450.0000]』O’为比例因子

MATLAB操作桌面的file菜单中打开preferences窗口,选择命令窗口

界面,就可以方便地在cammendwindow对话框中进行格式选择。

第二章MATLAB的基本数学功能

Chaptertwo:fundamentalMathfunctionofMATLAB

一.算术运算(ArithmeticComputation)

MATLAB提供的两种运算方式:

(1)普通的数组运算方式:(Arraycomputation)在数组中对应元

素之间进行运算;

(2)矩阵运算方式:(matrixcomputations)将标量当作1X1阶矩

阵,一维数组当作一行或一列的矢量(即IXn阶或nxl阶的

矩阵),二维数组当作mxn阶矩阵,然后按照矩阵的运算规则

进行运算。

*二者输入形式和书写方法相同,差别仅在于使用不同的运算符号,

执行不同的计算过程,数组的运算是对应元素之间的运算,而矩阵运算是

根据矩阵的运算规则进行。

1.力口、减运算(additionandsubtraction)

矩阵与数组的加减运算没有区别,运算符均为“+运算

方法相同,但两个运算对象必须是同阶矩阵,否则将给出错误信息。

如下例:

a=[l23;456;789];

b=[135];

a+b

运行结果给出错误信息:

???Errorusing==>±

Matrixdimensionsmustagree.

但标量,即1X1阶矩阵可以和其他不同维数的矩阵进行加减运算,

如:a=[l23;456;789];

a+5

ans=

678

91011

121214

2.乘除运算(Multiplicationanddivision)

矩阵在进行乘除运算时与通常的运算符号相同(*,/,\),而数组

在进行乘除运算时要在通常的符号前加如:和(或

(1)矩阵乘法:(Matrixmultiplication)

条件:两矩阵中前一矩阵的列数与后一矩阵的行数相同,如

x=[l52;384];

y=[56;78;2130];

x*y

ans=

82106

155202

也可以实现两个相同维数矢量的内积(点乘,dotproduct),如:

a=[-l02r%(输入行矢量转置为列矢量,等同于a=[-l;0;2])

b=[-2-1

a'*b

b5*a

a=-1

0

2

b二

-2

-1

1

ans=4

ans=4

MATLAB计算点乘(dotproduct)和叉乘(crossproduct)有专门的命令,

用dot(a,b)计算矢量a和b的点乘,用cross(a,b)计算叉乘。

例:a=[-l02]

b=[-2-11]

c=dot(a,b)

d=cross(a,b)

a=

-102

b=

-2-11

c=

4

d=

2-31

DOTVectordotproduct.

C=DOT(A,B)returnsthescalarproductofthevectorsAandB.A

andBmustbevectorsofthesamelength.WhenAandBareboth

columnvectors,DOT(A,B)isthesameasA'*B.

CROSSVectorcrossproduct.

C=CROSS(A,B)returnsthecrossproductofthevectorsAandB.

Thatis,C=AxB.AandBmustbe3elementvec

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论