第一二章 MATLAB 入门.docx
《第一二章 MATLAB 入门.docx》由会员分享,可在线阅读,更多相关《第一二章 MATLAB 入门.docx(34页珍藏版)》请在冰豆网上搜索。
第一二章MATLAB入门
第一章MATLAB入门
Chapterone:
IntroductiontoMATLAB
一.MATLAB6的主要组成部分和重要功能
MATLAB(MatrixLaboratory)为美国Mathworks公司1982年首次推出的一套高性能的数值分析和计算软件,其功能不断扩充,版本不断升级,至2001年6月推出6.1版,2002年6月推出最新版本6.5版。
继而推出6.5.1版。
它将矩阵运算、数值分析、图形处理、编程技术结合在一起,为用户提供了一个强有力的科学及工程问题的分析计算和程序设计工具,是具有全部语言功能和特征的新一代软件开发平台。
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),并为二者的数据交换提供了相应的程序库。
2.MATLAB的主要组成部分:
(1)开发环境(developmentEnvironment):
一组图形化用户接口工具和组件的集成:
MATLAB桌面、命令窗口、命令历史窗口、编辑调试窗口及帮助信息、工作空间、文件和搜索路径等浏览器;
(2)MATLAB数学函数库:
(MathFunctionLibrary)基本函数:
求和、正弦、余弦和复数运算等;特殊函数:
矩阵求逆、矩阵特征值、贝塞尔函数和快速付里叶变换等;
(3)MATLAB语言:
(MATLABLanguage)一种高级编程语言,包括控制流的描述、函数、数据结构、输入输出及面对对象编程;
(4)句柄图形:
(HandleGraphics)可以对各种图形对象进行更为细腻的修饰和控制,建立完整的图形界面的应用程序。
(5)应用程序接口:
(AppliedFunctionInterface)MATLAB的应用程序接口允许用户使用C或FORTRAN语言编写程序与MATLAB连接。
MATLAB工具箱(Toolbox);(表1—2)
二.MATLAB的安装:
与一般光盘软件的安装相同,略
三.MATLAB的系统开发环境(SystemDevelopingEnvironment)
1.操作桌面(OperatingDesktop)
(1)桌面布局:
5个窗口(图示、操作演示)
*命令窗口(CommendWindow)
*工作空间窗口(Workspace)
*当前目录浏览器(CurrentDirectory)
*命令历史窗口(CommendHistory)
*启动平台(LaunchPad)
窗口的切换、放大与关闭。
(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
公式中的数据可任意改动并重新计算。
(例)
还可在命令窗口输入最后一次输入命令的开头字符或字符串,然后用↑键调出该命令行。
其他的命令行功能键和快捷键。
与Windowsword相似,(表1—4)(自学)
3.工作空间窗口:
(WorspaceWindow)
用于储存各种变量和结果的空间,显示变量的名称、大小、字节数及数据类型,对变量进行观察、编辑、保存和删除。
(图示、操作演示)。
临时变量不占空间,
为了对变量的内容进行观察、编辑与修改,可以用三种方法打开内存数组编辑器。
*双击变量名;*选择该窗口工具栏上的打开图标;*鼠标指向变量名,点击鼠标右键,弹出选择菜单,然后选项操作。
(示例)
欲查看工作空间的情况,可以在命令窗口键入命令whos(显示存在工作空间全部变量的名称、大小、数据类型等信息)或命令who(只显示变量名)
4.当前目录浏览器:
(CurrentDirectory)
用于显示及设置当前工作目录,同时显示当前工作目录下的文件名、文件类型及目录的修改时间等信息。
只有在当前目录或搜索路径下的文件及函数可以被运行或调用。
(图示、操作演示)
设置当前目录可以在浏览器窗口左上角的输入栏中直接输入,或点击浏览器下拉按钮进行选择。
还可用cd命令在命令窗口设置当前目录,如:
cdc:
\mydir可将c盘上的mydir目录设为当前工作目录。
(5).命令历史窗口:
(CommandHistory)
记录已运行过的MATLAB命令历史,包括已运行过的命令、函数、表达式等信息,可进行命令历史的查找、检查等工作,也可以在该窗口中进行命令复制与重运行。
(图示、操作演示)
6.启动平台:
(LaunchPad)
帮助用户方便地打开和调用MATLAB的各种程序、函数和帮助文件。
平台列出了系统中安装的所有的MATLAB产品的目录,可以通过双击来启动响应的选项。
(图示、操作演示)
7.MATLAB的搜索路径:
(SearchingPath)
MATLAB定义的一系列文件路径的组合,缺省状态下包括当前路径和已安装的全部工具箱的路径。
(图示、操作演示)
搜索目录的设置通过选择主菜单SetPath菜单项进行。
用AddFolder…按钮可以将某一目录加入搜索路径,选择AddwithSubfolder…按钮可将选中目录的子目录也包括在搜索路径中。
8.内存数组编辑器:
(ArrayEditor)
提供对数值型或字符型二维数组的显示和编辑功能,对其他数据类型都不能编辑。
(图示、操作演示)
9.帮助浏览器:
(HelpBrowser)
(1)帮助浏览器:
提供方便快捷的帮助信息获取途径和图文并茂的帮助内容,
(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.
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.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键,可得各种以为字头的命令:
plotplotbrplotesplotmapplotperfplottr
plot3plotcharplotfaplotmatrixplotpvplotv
plot3mploteachplotfisplotmfplotscaleplotvecplotallploteditplotfrspplotnicplotsmplotyyplotbintreeplotepplotlrplotnyqplotsom
plotbodeploterrplotmplotpcplotstep
四.MATLAB的基本操作
1.简单矩阵的建立(matrixsetting)
Matrix:
Akindofspecialtypeofdatastructure,mostfunctionandoperationofMATLABwerebasedonit.Itisasetofnumbersarrangedusingarectangulargridofrowsandcolumns.
*Scalar:
Itisjustasinglenumberanditcanbeconsideredasaspecialmatrixwithonerowandonecolumn.
*Vector:
Itisaseriesofnumbersarrangedinaroworacolumn;Alsowecanrefertothevectorasaspecialmatrixwithoneroworonecolumn.Itmaybecalledarowvectororacolumnvector.
MATLAB以矩阵为基本运算对象,标量可看作1×1的矩阵,矢量看作n×1或1×n的矩阵。
输入方式:
(InputMode)
(1)以直接列出元素的形式输入:
(simplyinitializingmatricesbythemethodtoexplicitlyliststhevalues)把矩阵元素直接排列到方括号[]中,每行内的元素用逗号或空格分开,行与行之间用分号隔开。
例:
a=[123;246;835]或a=[1,2,3;2,4,6;8,3,5]
大矩阵可分行输入:
a=[123
246
835]
(2).通过语句和函数产生:
(CreatinganewmatrixfromaexistingmatrixthrowMATLABlanguageorfunctions)对于已经存在的矩阵,可用函数或表达式产生新的矩阵。
例如:
矩阵a和x已存在,利用y=sin(x)和c=a+0.1*(1+a/2)命令将产生新矩阵y和c。
利用内部语句和函数可以快速产生一些特别有用的工具矩阵,如全0阵,全1阵,单位阵,随机阵等。
(3).在m文件中创建矩阵:
(CreatingamatrixwithintheMfile)通过建立MATLAB的M文件可完成矩阵的输入,如建立B.m的文件,内容为:
B=[342;135;643]
或B=[342
135
643]
则在命令窗口中使用B命令语句可以调用B矩阵。
(4)从外部的数据文件中装入:
(ReadtheMatrixfromexternaldatafile)利用load或fread命令可以读取MATLAB早期版本产生的矩阵,也可读取有其他应用程序产生的数据(或矩阵)。
2.矩阵元素(Elementofmatrix:
Anykindofexpressioncanbeusedasamatrixelement)
可以用任何形式的表达式来充当矩阵元素,如:
x=[-1.3sqrt(3)(1+2+3)*4/5]
将得到矩阵:
x=
-1.30001.73214.8000
可以定义或修改矩阵中某一元素,如操作:
x(5)=abs(x
(1))得一个新矩阵
x=
-1.30001.73214.800001.3000
可以用小矩阵构成大矩阵,如:
a=[123;456;789];
c=[a;[10,11,12]]结果为:
c=
123
456
789
101112
或r=[101112];
c=[a;r]
可得同样矩阵c=
123
456
789
101112
可使用”:
”(colon)从大矩阵中抽取小矩阵,(withdrawasmallmatrixfromabigmatrix)如:
d=c(1:
3,:
)意为抽取一到三行的各列,结果为:
d=
123
456
789
e=c(:
1:
2)意为抽取一到二列的各行,结果为:
12
45
78
1011
3.语句与变量(Statementandvariable)
MATLAB语句的常用格式:
变量=表达式(;)(variable=expression(;))或简化为:
表达式(;)
表达式可以由运算符(Operator)、特殊字符(specialcharacter)、函数名(functionname)、变量名(variablename)等组成,表达式的结果为一矩阵,它赋给左边的变量。
如省略变量名和“=”,则自动产生一个名为ans的变量,如:
1900/81结果为:
ans=
23.45684568
并显示在屏幕上,如语句以分号结束,则结果不显示,如:
p=a*a;
只完成运算,但不显示结果。
表达式较长时可利用续行符“...”,如:
s=1-1/2+1/3-1/4+1/5-1/6+1/7-…
1/8+1/9-1/10+1/11-1/12;
计算结果为:
0.6532
注:
续行号前不应是数字,数字后应为运算符、空格或加一个点号。
4.复数和复数矩阵(Complexandcomplexmatrix)
复数用特殊字符i或j表示。
i=sqrt(-1),其值在工作空间显示为0+1.0000i.
例:
输入z=3+4i或z=3+4j结果一样。
MATLAB中复数有下面的语句生成办法:
z=a+b*i或z=r*exp(i*θ)其中r为复数的模,θ为复数辐角的弧度数。
复数的两种输入方法:
(1)a=[12;34]+i*[56;78]
(2)a=[1+5i2+6i;3+7i4+8i]
结果相同:
a=
1.0000+5.0000i2.0000+6.0000i
3.0000+7.0000i4.0000+8.0000i
注:
(1)当复数的虚部(image)为一个确定的数(而不是变量或矩阵)时,可省略“*”,如1+2*i可写成1+2i,但a+b*i不能写成a+bi,[12]+[34]*i不能写成[12]+[34]i
(2)当复数作为矩阵元素时,复数内不能留有空格,如1+5i,MATLAB中任何矩阵的元素内部都不能留有空格,否则会被当作两个元素处理而出错。
(3)如在程序设计中i、j被定义为其他变量则应定义另一新的复数单位。
如i1。
5.永久变量:
(permanentvariable)系统本身在启动时定义的变量,驻留在工作空间中,它们是:
ans:
(storesexpressionvalue)系统默认的变量名
eps:
(representsfloating-pointprecision)容差变量,定义为0到最近浮点数的距离。
在PC机上等于2-52,即精确到2.22×10-16;
pi:
(representsthevalueπ)圆周率的近似值3.141565358979
Inf或inf:
(representsthevalue∞)正无穷大,定义为(1/0)
NaN:
(representsthevalueNot-a-Number)非数(Notanumber),Inf/Inf或0/0运算产生,表示不定值。
i,j:
虚数单位,定义i=-11/2,j=-11/2
6.数和算术表达式(Numberandarithmeticexpression)
MATLAB采用10进制惯例,表示10的幂次用符号e或E:
3-990.0019.4561.3e-34.5E21
数值的相对精度是eps,即大约保持16位有效数字。
MATLAB的算数运算符号(ArithmeticOperator):
+加addition,-减subtraction,*乘multiplication,
\左除leftdivision,/右除rightdivision,^幂exponentiation
对于标量,两种除法运算的结果相同,对于矩阵两种除法表示两种不同的除数矩阵和被除数矩阵的关系。
7.数据的显示格式(Thedisplayformatofnumber)
MATLAB的数据显示格式由format命令来控制,他只影响结果在屏幕上的显示,不影响其计算与存储。
MATLAB总是以双精度执行所有的运算。
数据的显示格式(表1—6)
有十中数据的显示格式可供选择:
格式
对应结果
命令
含义
4/31.2345e-6
formatshort
formatlong
formatshorte
formatlonge
formatshortg
formatlongg
formathex
format+
formatrat
formatbank
短格式
长格式
短格式e方式
长格式e方式
短格式g方式
长格式g方式
16进制格式
+格式
分数格式
银行格式
1.3333
1.33333333333333
1.3333e+000
1.33333333333333e+000
1.3333
1.33333333333333
3ff5555555555555
+
4/3
1.33
0.0000
0.00000123450000