MATLAB.docx
- 文档编号:8195662
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:16
- 大小:247.32KB
MATLAB.docx
《MATLAB.docx》由会员分享,可在线阅读,更多相关《MATLAB.docx(16页珍藏版)》请在冰豆网上搜索。
MATLAB
第二部分MATLAB软件包上机指导
MATLAB是矩阵实验室(MatrixLaboratory)的缩写。
首创者是在数值线性代数领域颇有影响的CleveMoler博士,他在讲授线生代数课程时,深感高等语言编程的诸多不便之处,于是萌生了开发新的软件平台,即为MATHLAB(MATrixLABoratory,矩阵实验室),用FORTRAN语言编写而成。
现今的MATLAB已全部采用C语言编写,它既是一种编程环境,又是一种程序设计语言。
在MATLAB中,以复矩阵作为基本编程单元,无须定义即可采用,且可随时改变尺寸。
在MATLAB中,表达式的书写像在稿纸中演算一样。
提供20多个工具箱函数。
易扩展性是最重要的特征之一,友好的界面、易记的命令和简便的操作。
可将C、FORTRAN语言编写的程序移植进来。
一、MATLAB的启动
启动“MATLAB”软件包:
执行“开始程序MATLAB6.x
MATLAB6.x”后,出现下图所示界面:
图1
这个界面是系统在缺省情形下给出的,左侧的四个卡片可成对切换.
读者可以根据需要设置自己喜欢的界面,这可由上图第一行菜单栏中视图(View)的下拉菜单(如下图)中选项进行设置.
练习一:
图2
(1)反复选或不选上面下拉菜单中的一项或多项,观察图1所示界面的变化情况.调乱之
后,可由上图回到系统缺省状态.
(2)点击图1菜单栏中其它项及相应的下拉菜单,观察结果.
提示:
当确定某种界面后,正常存盘退出,这一界面即可作为下次启动后的界面.
二、MATLAB的工作环境
1.命令窗口(CommandWindow)
“CommandWindow”是用来与MATLAB交互的主窗口,在此窗口中输入指令,系统
自动地反馈信息。
例1计算2+3.
算法:
(1)如果需要直接结果,则在“CommandWindow”接着提示符号“>>”之后键入算式:
“1+2”,然后回车,MATLAB将计算的结果默认以ans显示。
>>2+3
ans=
6
(2)如果要将结果赋给某个变量,如x,则MATLAB将计算的结果以x显示.
>>x=2+3
x=
6
(3)如果在上述的例子结尾加上;,则计算结果不会显示在指令视窗上,要得知计算值只须键入该变数值即可
>>x=2+3;
>>x
x=
6
以下的例子,显示MATLAB对使用变数的弹性:
>>apple=5
apples=
5
>>orange=10
orange=
10
>>total_cost=apple*2+orange*4
total_cost=
50
如果因一个指令很长或其它原因,需要跨行输入,则要使用“”作连续符号,按回
车键转到下一行继续输入指令.其中“”表示紧接下一行输入的也是指令的一部分.如下面的指令:
>>1+2+
3+
5
提示:
各符号间可以加上空格,以增强加指令的可读性.注意,一个指令最多可以
包括44096个字符.
清除命令显示的内容可以用命令clc,它清除Commandwindow中的所有命令,而将“>>”显示在窗口的第一行,这使得命令的输入显得好看.但是此命令并不清除工作空间.
可用format命令来控制数值显示的格式,或打开File菜单的Preferences选项,选择如下图所求示的CommandWindow操作标签,可以在Numericformat选择框选择所需的数值显示格式.下面的表1列出了数值显示的格式及其范例.
图3
表1数值显示格式及其范例
显示格式
范例1(7/6)
范例2(1.23334422e-5)
short
1.1667
0.0000
shorte
1.1667e+000
1.2333e-005
shorte
1.1667
1.2333e-005
long
1.166********667
0.00001233344220
longe
1.166666666666667e+00
1.23344220000000e-005
longg
1.166********667
1.23334422e-005
bank
1.17
0.00
rat
7/6
3/243241
hex
3ff2aaaaaaaaaaab
3ee9dd7763803b29
上述显示格式都可以在命令窗口直接输入,如formatlonge.另外命令formatloose与formatcompact用于控制显示的数值之间是否换行。
提示:
当需反复使用或修改一些相似命令时,可通过键盘上的“↑”或“↓”
键调出曾用过的命令,相当Doskey功能。
例2显示圆周率.
算法:
>>x=pi%圆周率在MATLAB下用“pi”表示.
x=
3.1416
>>formatshort
x=
3.1416
>>formatshorte
x=
3.1416e+000
>>formatshortg
x=
3.1416
>>formatlong
x=
3.14159265358979
>>formatlonge
x=
3.141592653589793e+000
>>formatlongg
x=
3.14159265358979
>>formatbank
x=
3.14
>>formatrat
x=
355/113
>>formathex
x=
400921fb54442d18
除了上述格式之外,缺省显示为隔行显示(即formatloose格式),采用
>>formatcompact%紧凑格式,可改成逐行显示
练习二:
分别对r=2,3计算圆面积A=π*r*r的值A1、A2,并用不同格式显示结果。
2.启动平台
当用户需要进行特定的工作时,需要启动某个工具箱的应用程序,可以在LaunchPad(启动平台)中实现,当用户使用鼠标单击LaunchPad窗口左上角按钮后,启动平台就最大化,如下图所示.此时用户就可以很方便地从事自己的工作,比如启动ControlSystemToolbox(控制系统工具箱)的Demos,用户可以使用鼠标双击该项目即可.
图4
通过启动平台,用户可以打开各个工具箱的帮助、Demos和其他相关的文章或应用程序,这是一个非常好的工具,也是MATLAB6.x的重要特点.
3.工作空间(Workspace)
当用户使用鼠标单击Workspace窗口左上角按钮后,工作空间就最大化.如在例1中出现的变量显示在Workspace窗口为下图中所示.
图5
在保存工作空间时可以指定一些参数,控制保存文件的格式,各参数作用如下表所示。
表2保存工作空间的参数
参数
作用
-mat
使用二进制MAT文件格式,系统默认格式
-ascii
使用8位ASCII格式
-ascii-double
使用16位ASCII格式
-ascii-double-tabs
使用制表符分隔数组元素
-append
向已经存在的MAT文件中添加数据
一些大些的程序,需将工作空间保存起来,以便以后使用。
为此,只要用File下SaveWorkspaceAs存储即可,系统默认的文件名后缀为“.mat”,称为MAT文件。
也可在命令窗口用“save工作空间名”保存.如运算例1后执行:
savevar1
保存的工作空间文件,可以使用load加载。
如前面存过的var1,可如下加载:
loadvar1
如果当前工作空间与加载的工作空间具有相同的变量,则后加载的变量自动覆盖与原工作空间中同名的变量。
如果保存MAT文件使用了其他扩展名,如“ex1.w”(或“ex1.dat”等),加载时则要使用参数“-mat”指定其为MAT格式的文件,并且一定要加上文件的扩展名。
例如:
loadex1.w-mat(或loadex1.dat_mat等)
使用工作空间的菜单File下的open选项,也可以加载工作空间。
将变量var1,var2,var3存在工作空间名myfile下,也可使用:
savemyfilevar1var2var3
列出当前工作空间中的所有变量,可用:
Whos
工作空间中的所有变量可经在命令窗口输入“clear”进行清除。
如果仅清除工作空间中的某些变量,则需在clear后面注明变量名.
练习三:
采用系统缺省界面,在命令窗口逐个执行下列各命令,观察工空间的变化:
(1)x=3,y=4,clc,clear,x=3,y=4,z=5,savevar,clearz,loadvar,clear
(2)x=3,y=4,clc,clear,x=3,y=4,z=5,savevar1xyz,clear,loadvar1
4.命令历史纪录和当前路径窗口
命令历史(CommandHistory)纪录窗口主要显示已执行过的命令.当前路径窗口主要显示的是当前工作在什么路径下进行,包括文件的保存等均是在当前路径下实现的。
用户也可以执行File下的SetPath命令设置当前路径。
二、M文件的编辑调试环境
MATLAB的程序文件和脚本文件通常保存为后缀为“.m”的文件,常称为M文件。
当然,编辑M文件也可以用其它的文本编辑器。
要启动MATLAB的M文件编辑器和调试器,可在命令窗口中输入Edit命令,也可以选择File下New/M-file选项,或者单击新建图标按钮。
如例1的运算也可调用编辑器和调试器进行,如下图。
图6
当编辑完毕后,若将其保存在当前工作目录下(如d:
\matlab_lx)名为Ex1(系统自动添加后缀“.m”),则可在MATLAB的命令窗口输入“Ex1”(或“ex1”——文件名不区分大小写)并回车,然后再输入“total_cost”并回车,可得与例1同样的结果。
利用M文件可以将大程序先编辑好,然后执行,且有助于程序的保存。
当然也可将编辑的内容用粘贴的方式粘贴在命令空间,回车后,效果一样。
M文件的编辑过程与其它Windows编辑程序类似,只对下列几点作特别说明:
(1)可直接转到指定的行,这可从Edit菜单中选择GoToLine并输入新对话框中行数;
(2)可直接计算M文件中表达式的值,结果显示在命令窗口中,这可通过选择表达式,然后在View菜单中选择EvaluateSelection命令来实现;
(3)可自动缩排,这可先选择文本块,然后在View中选AutoIndentSelection;
(4)可按要求设置自动缩排的格式。
在View中选Options,出现对话框。
三、MATLABR的路径搜索
MATLAB采用路径搜索的方法来查找组织在文件系统中的M文件,常用的命令文件组织在MATLAB文件夹中,其他M文件组织在各种工具箱目录中。
当在命令窗口中键入一个字符串foo时,MATLAB则按以下的顺序开始搜索:
(1)把foo作为一个变量进行搜索,在当前工作空间中查找变量foo.
(2)把foo作为一个内置函数进行搜索,查找内置函数foo并执行。
(3)查找当前目录中的M文件foo.m
(4)查找当前搜索路径中的M文件foo.m.
此搜索的顺序只是一般情况下的顺序,而实际上的搜索规则还要考虑到私有函数、子函数和面向对象的函数的范围限制,因此会更加复杂。
但此简单的搜索顺序,对普通的M文件是非常准确的。
如果在搜索路径中存在同名函数,则仅可发现搜索路径中的第一个函数,而其他同名的函数不被执行。
搜索路径保存在Matlab安装目录下toolbox\local\pathdef.m文件中,用户可利用普通的编辑器,直接修改。
也可利用MATLAB所提供的path,addpath和rmpath函数进行修改。
MATLAB还专门提供从File莱单选择SetPath(设置路径)命令,选择后得下图
图7
在此窗口可很方便地加入(Add)和删去(Remove)子目录,也可在左边目录区中通过拖拉方式改变搜索路径。
修改后,按Refresh按钮使修改的路径在本次任务中起作用,按SaveSett可使修改结果在以后启动时生效。
另外,what命令可显示出搜索路径上的文件名,如:
what%给出工作窗口上方“CurrentDirectory”(当前)目录下的文件名。
whatmatlab/design%显示matlab\design目录中的文件各。
要显示指定文件(如value.m)的内容,可采用type命令:
typevalue
要对文件Value.m进行编辑,可输入:
editValue
这时出现编辑窗口(也可通过菜单上“文件”—新建进行,编辑完毕用菜单栏“File”下“Save”保存。
四、在线帮助——Help
MATLAB提供了强大的帮助系统,帮助内容丰富,获取帮助的形式多样,MATLAB的帮助菜单选项的内容包括:
(l)ProductFamilyHelp用于调用整个产品的帮助;
(2)MATLABHelp用于调用MATLAB的帮助窗口。
(3)UsingtheDesktop显示MATLAB的界面使用帮助
(4)UsingtheCommandWindow显示命令窗口使用帮助
(5)Domes示例与演示,执行该命令则提供各种例子及其图形演示
(6)AboutMATLAB显示MATLAB的启动界面及版本信息
在MATLAB的使用过程中,由于其强大的功能的背后是由系统函数支持着,因此,常会遇到两个困难:
(1)对应要解决的问题,应该使用的函数命令。
解决这个问题的方法是去查包含更多函数的手册或书上的附表;
(2)要使用的函数的命令格式。
解决这个困难是非常容易的,只要使用MATLAB的友好的帮助系统就可以了,用户可以选择以下方法之一得到帮助:
>>help函数名%获取指定函数的帮助信息
>>doc函数名%获得关于指定的函数的简单提示信息,及与此函数相关的函数
>>lookfor关键字%提供类似于搜索引擎的功能
%可在命令窗口中显示所有具有“关键字”的M文件名称
例如:
>>helpsqrt
SQRTSquareroot.
SQRT(X)isthesquarerootoftheelementsofX.Complex
resultsareproducedifXisnotpositive.
SeealsoSQRTM.
Overloadedmethods
helpsym/sqrt.m
>>docsqrt%
>>lookforsquare%在命令窗口中显示所有具有关键字square的M文件名称
SQRTSquareroot.
LSCOVLeastsquareswithknowncovariance.
LSQNONNEGLinearleastsquareswithnonnegativityconstraints.
NNLSNon-negativeleast-squares.
SQRTMMatrixsquareroot.
CGSConjugateGradientsSquaredMethod
SPAUGMENTFormleastsquaresaugmentedsystem.
FIFTEENAslidingpuzzleoffifteensquaresandsixteenslots.
APRECONBandedpreconditionerfunctionforleast-squaresproblems.
CONLSConstrainedlinearleastsquares.
CURVEFITSolvesnon-linearleastsquaresproblems.
FSOLVESolvesnonlinearequationsbyaleastsquaresmethod.
LEASTSQSolvesnon-linearleastsquaresproblems.
LSQCURVEFITSolvesnon-linearleastsquaresproblems.
LSQLINConstrainedlinearleastsquares.
LSQNONLINSolvesnon-linearleastsquaresproblems.
CONSTLAYLayouttheconstellationforsquareQASK.
QASKDECODemapamessagefromaQASKsquaresignalconstellation.
QASKENCOMapamessagetoaQASKsquaresignalconstellation.
EXTENDLOCUSExtendsasymptotesifcurrentgain(redsquare)
DSPBLKFIRLSMaskdynamicdialogfunctionforleast-squaresFIRfilterblock
DSPBLKFIRLS2Maskdynamicdialogfunctionforleast-squaresFIRfilterblock
ADAPTLMSLeastmeansquared(LMS)FIRadaptivefilter.
ADAPTNLMSNormalizedleastmeansquared(LMS)FIRadaptivefilter.
ADAPTRLSRecursiveleast-squares(RLS)FIRadaptivefilter.
xdiag.m:
%Extractsthediagonalofa(notnecessarilysquare)matrix
REALSQRTRealsquareroot.
PLSRDetermineimpulseresponsecoefficientsviaPartialLeastSquares.
MOT563_SQRTSquareroot.
MOT566_SQRTSquareroot.
DMSEMeansquarederrorperformancederivativesfunction.
DMSEREGMeansquarederrorw/regperformancederivativefunction.
DSSESumsquarederrorperformancederivativefunction.
MSEMeansquarederrorperformancefunction.
MSEREGMeansquarederrorwithregularizationperformancefunction.
SSESumsquarederrorperformancefunction.
SUMSQRSumsquaredelementsofamatrix.
PLOTERRPlotnetworksum-squarederrorvsepochs.
SQUAREB1Boundaryconditiondata
SQUAREB2Boundaryconditiondata
SQUAREB3Boundaryconditiondata
SQUAREB4Boundaryconditiondata
SQUAREB5Boundaryconditiondata
SQUAREGGivesgeometrydataforthesquaregPDEmodel
BALMRSquare-rootbalancedtruncation(unstableplant).
BALSQSquare-rootbalancedtruncation(stableplant).
ylwk.m:
%YWALKRecursivefilterdesignusingaleast-squaresmethod.
FIRCLSLinear-phaseFIRfilterdesignbyconstrainedleast-squares.
FIRCLS1Low&highpassFIRfilterdesignbyconstrainedleast-squares.
FIRLSLinear-phaseFIRfilterdesignusingleast-squareserrorminimization.
INVFREQSAnalogfilterleastsquaresfittofrequencyresponsedata.
INVFREQZDiscretefilterleastsquaresfittofrequencyresponsedata.
SQUARESquarewavegeneration.
YULEWALKRecursivefilterdesignusingaleast-squaresmethod.
fdfirlsFirls-LeastSquaresModuleforfiltdes.
SPAP2Leastsquaressplineapproximation.
CHI2CDFChi-squarecumulativedistributionfunction.
CHI2INVInverseofthechi-squarecumulativedistributionfunction(cdf).
CHI2PDFChi-squareprobabilitydensityfunction(pdf).
CHI2RNDRandommatricesfromchi-squaredistribution.
CHI2STATMeanandvarianceforthechi-squaredistribution.
LSLINEAddleast-squaresfitlinetoscatterplot.
NCX2CDFNoncentralchi-squarecumulativedistributionfunction(cdf).
NCX2INVInverseofthenoncentralchi-squarecdf.
NCX2PDFNoncentralchi-squareprobabilitydensityfunction(pdf).
NCX2RNDRandommatricesfromthenoncentralchi-squaredistribution.
NCX2STATMeanandva
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB