MATLAB第一章.docx
《MATLAB第一章.docx》由会员分享,可在线阅读,更多相关《MATLAB第一章.docx(18页珍藏版)》请在冰豆网上搜索。
![MATLAB第一章.docx](https://file1.bdocx.com/fileroot1/2023-1/12/4444df57-15d4-494d-9545-8f61d0667dfc/4444df57-15d4-494d-9545-8f61d0667dfc1.gif)
MATLAB第一章
目录
第一章MATLAB入门1
1.1MATLAB的优点1
1.易用性1
2.平台独立性1
3.预定义函数1
4.机制独立的画图1
5.用户图形界面2
6.MATLAB编译器2
1.2MATLAB的缺点2
1.3MATLAB的开发环境2
1.3.1MATLAB桌面2
1.3.2命令窗口(TheCommandWindow)2
1.3.3历史命令窗口(TheHistoryCommandWindow)4
1.3.4启动平台(thelaunchpad)4
1.3.5图像窗口(FigureWindows)5
1.3.6MATLAB工作区5
1.3.7MATLAB帮助7
1.3.8一些重要的命令8
1.4把MATLAB当作便笺薄来使用10
测试1.110
1.5总结11
1.5.1MATLAB总结11
1.6练习11
1.111
1.211
1.311
1.411
1.512
1.612
1.712
1.812
第一章MATLAB入门
MATLAB(矩阵实验室的简称)是一种专业的计算机程序,用于工程科学的矩阵数学运算。
但在以后的几年内,它逐渐发展为一种极其灵活的计算体系,用于解决各种重要的技术问题。
Matlab程序执行MATLAB语言,并提供了一个极其广泛的预定义函数库,这样就使得技术工作变得简单高效。
本书将介绍matlab语言,并向大家展示如何运用它去解决经典的技术问题。
MATLAB是一个庞大的程序,拥有难以置信的各种丰富的函数;即使基本版本的MATLAB语言拥有的函数也比其他的工程编程语言要丰富的多。
基本的MATLAB语言已经拥有了超过1000多个函数,而它的工具包带有更多的函数,由此扩展了它在许多专业领域的能力。
本书无意将MATLAB的所有函数介绍给大家,而是让大家掌握编写调试和优化程序的基本功,还有一些重要函数的子集。
所以从大量可利用的函数中筛选出你所需要的函数就显得尤为重要。
1.1MATLAB的优点
MATLAB语言相对于传统的科技编程语言有诸多的优点。
主要包括:
1.易用性
MATLAB是种解释型语言,就像各种版本的BASIC。
和BASIC一样,它简单易用程序可用作便笺簿求打在命令行处表达式的值,也可执行预先写好的大型程序。
在MATLAB集成开发环境下,程序可以方便的编写,修改和调试。
这是因为这种语言极易使用,对于教育应用和快速建立新程序的原型,它是一个理想的工具。
许多的编程工具使得MATLAB十分简单易用。
这些工具包括:
一个集成的编译/调试器,在线文件手册,工作台和扩展范例。
2.平台独立性
MATLAB支持许多的操作系统,提供了大量的平台独立的措施。
在本书编写的时侯,windows98/2000/NT和许多版本的UNIX系统都支持它。
在一个平台上编写的程序,在其它平台上一样可以正常运行,在一个平台上编写的数据文件在其它平台上一样可以编译。
因此用户可以根据需要把MATLAB编写的程序移植到新平台。
3.预定义函数
MATLAB带有一个极大的预定义函数库,它提供了许多已测试和打包过的基本工程问题的函数。
例如,假设你正在编写一个程序,这个程序要求你必须计算与输入有关的统计量。
在许多的语言中,你需要写出你所编数组的下标和执行计算所需要的函数,这些函数包括其数学意义,中值,标准误差等。
像这样成百上千的函数已经在MATLAB中编写好,所以让编程变得更加简单。
除了植入MATLAB基本语言中的大量函数,还有许多专用工具箱,以帮助用户解决在具体领域的复杂问题。
例如,用户可以购买标准的工具箱以解决在信号处理,控制系统,通信,图象处理,神经网络和其他许多领域的问题。
4.机制独立的画图
与其他语言不同,MATLAB有许多的画图和图象处理命令。
当MATLAB运行时,这些标绘图和图片将会出现在这台电脑的图象输出设备中。
此功能使得MATLAB成为一个形象化技术数据的卓越工具。
5.用户图形界面
MATLAB允许程序员为他们的程序建立一个交互式的用户图形界面。
利用MATLAB的这种功能,程序员可以设计出相对于无经验的用户可以操作的复杂的数据分析程序。
6.MATLAB编译器
MATLAB的灵活性和平台独立性是通过将MATLAB代码编译成设备独立的P代码,然后在运行时解释P代码来实现的。
这种方法与微软的VB相类似。
不幸的是,由于MATLAB是解释性语言,而不是编译型语言,产生的程序执行速度慢。
当我们遇到执行速度慢的程序时,我们将会指出其这一特性。
1.2MATLAB的缺点
MATLAB有两个基本的缺点。
第一,它是解释型语言,其执行速度要比编译型语言慢得多。
这个问题可以通过合理
的MATLAB结构得到缓解,也可以在发行广泛使用前编译出MATLAB程序。
第二,他的费用较高。
一个完全版MATLAB编译器的大小是一个C语言或Fortan语言编译器的5到10倍。
但MATLAB能够节省大量的时间在科技编程方面,故MATLAB在商业编程过程中是节省成本的。
尽管如此,相对于大多数考虑购买的人还是很昂贵的。
幸运的是,它有一个价格便宜的学生专用版本,对学生来说它是学习MATLAB语言的一个重要工具。
学生版的MATLAB和完全版的MATLAB是基本一致的。
1.3MATLAB的开发环境
1.3.1MATLAB桌面
任何一个MATLAB程序的基本组成单元是数组。
数组是一组数据值的集合,这些数据被编上行号和列号,拥有唯一的名称。
数组中的单个数据是可以通过带有小括号的数组名访问,括号内有这个数据的行标和列标,中间用逗号隔开。
标量也被MATLAB当作数组,只不过只有一行和一列。
在第二章我们将学习如何创建和操作MATLAB数组。
当MATLAB运行时,有多种类型的窗口,有的用于接收命令,有的用于显示信息。
三个重要的窗口有命令窗口;图像窗口;编辑/调试窗口;它们的作用分别为输入命令;显示图形;充许使用者创建和修改MATLAB程序。
在本节课中我们将会看到这三个窗口的例子。
当MATLAB程序启动时,一个叫做MATLAB桌面的窗口出现了。
默认的MATLAB桌面结构如图1.1所示。
在MATLAB集成开发环境下,它集成了管理文件、变量和应用程序的许多编程工具。
在MATLAB桌面上可以得到和访问的窗口主要有:
●命令窗口(TheCommandWindow)
●命令历史窗口(TheCommandHistoryWindow)
●启动平台(LaunchPad)
●编辑调试窗口(TheEdit/DebugWindow)
●工作台窗口和数组编辑器(WorkspaceBrowserandArrayEditor)
●帮助空间窗口(HelpBrowser)
●当前路径窗口(CurrentDirectoryBrowser)
我们将在本章的最后一节讨论这些工具的函数。
1.3.2命令窗口(TheCommandWindow)
MATLAB桌面的右边是命令窗口。
在命令窗口中,用户可以在命令行提示符(>>)后输入一系列的命令,这些命令的执行也是在这个窗口中实现的。
举一个简单的例子,假设你要计算一个半径为2.5m的圆的面积。
在命令窗口中的操作如下:
>>area=pi*2.5^2
area=
19.6350
当回车键敲下的一瞬间,结果被计算了出来,并被存储到一个叫area的变量中(其实是一个1×1的数组)。
这个变量的数值将显示在命令窗口(TheCommandWindows),如图1.2所示,而且这个变量能进行进一步的计算。
(注意π是MATLAB预先定义好的变量,所以pi不需要预先声明。
)
如果一个语句在一行内书写太长了,可能要另起一行接着写,在这种情况下我们需要在第一行末打上半个省略号(...),再开始第二行的书写。
举例如下,下面这两语句是等价的。
x1=1+1/2+1/3+1/4+1/5+1/6;
And
x1=1+1/2+1/3+1/4...
+1/5+1/6;
将一系列命令写入一个文件,在命令窗口(TheCommandWindows)输入此文件的文件名,然后MATLAB就开始执行这个文件,而不是用直接在命令窗口(TheCommandWindows)键入的方法,这样的文件叫做脚本文件(Scriptfiles),由于脚本文件(Scriptfiles)的扩展名为“.m”,所以这它也叫做M文件。
1.3.3历史命令窗口(TheHistoryCommandWindow)
历史命令窗口(TheHistoryCommandWindow)用于记录用户在命令窗口(TheCommandWindows),其顺序是按逆序排列的。
即最早的命令在排在最下面,最后的命令排在最上面。
这些命令会一直存在下去,直到它被人为删除。
双击这些命令可使它再次执行。
在历史命令窗口(TheCommandWindows)删除一个或多个命令,可以先选择,然后单击右键,这时就有一个弹出菜单出现,选择DeleteSection。
任务就完成了。
1.3.4启动平台(thelaunchpad)
启动平台是一个特殊的工具,为MATLAB和其工具箱提供帮助、demos、其他相关文件和应用程序等参考资料。
这些信息是产品附带的,所有的参考资料都在每个产品或工具箱后面
列出。
不同的人拥有不同的产品,所以这个内容随个人安装的不同而不同。
Figure1.4显示的是只带有基本MATLAB产品的参考资料的启动平台。
双击其中一个条目,你将会得到MATLAB的帮助,运行MATLAB的示例,访问这个程序所支持的标准工具,或访问MATLAB在互联网上的网站。
编辑调试器
编辑调试器一般用于创建M文件,或者修改已存在的M文件。
当你打开或修改一个M文件,编辑调试器会自动被调用。
创建一个M文件的方法:
一、在菜单按“File/New/M-file”创建;
二、单击图标
。
打开一个已存在的M文件也有两个方法:
一、按路径“File/Open”打开;
二、单击图标
。
编程调试器是个重要的程序的文档编辑器,MATLAB语言的一些特性会被不同的顔色表现出来。
M文件中的评论用绿色表示,变量和数字用黑色来表示,字符变量用红色表示,语言的关键字用蓝色表示。
如图1.5显示了一个包含有M文件的简单的编辑窗口。
这个文件是为了计算半径已知的圆的面积并输出结果。
%thism-filecalculatestheareaofacircle,
%anddisplaytheresult
radius=2.5;
area=pi*2.5^2;
string=['theareaofthecircleis',num2str(area)];
disp(string);
当M文件保存完后,在命令窗口(TheCommandWindows)中输入这个M文件的名字,它就可以被执行了。
图1.5的输出结果为
>>test
Theareaofthecircleis19.635
这个编辑器同样是个调试器,我们将会在第二章介绍它在调试方面的应用。
1.3.5图像窗口(FigureWindows)
图像窗口主要是用于显示MATLAB图像。
它所显示的图像可以是数据的二维或三维坐标图,图片,或用户图形接口。
下面是一个简单的脚本文件(Scriptfiles)用于计算函数sinx并打印出图象。
%thismfilecalculatesandplotsthe
%functionsin(x)for0<=x<=6.
x=0:
0.1:
6;
y=sin(x);
plot(x,y);
如果此文件以sin_x.m为文件名保存,那么你可以在命令窗口(TheCommandWindows)输入此文件名就可以执行文件了。
当脚本文件(Scriptfiles)被编译后,MATLAB将会找开一个图象窗口,并在窗口打印出函数sinx的图象。
1.3.6MATLAB工作区
像z=10这样的语句创建了一个变量z,把10存储在其内,它保存在计算机的一
段内存中,就是我们所常说的工作区。
当一个专门的命令,M文件或函数运行时,工作区是MATLAB所需要的所有变量和数组的集合。
所有在命令窗口(TheCommandWindows)中执行的命令,和所有在命令窗口(TheCommandWindows)执行的脚本文件(Scriptfiles)都会被分配一个普通的分配空间,所以它们能共享变量。
MATLAB函数的拥有独立的工作区,这是函数区别于脚本文件(Scriptfiles)的一个重要特征。
在后面的介绍我们将会看到的。
用whos命令将会产生一个在当前工作区内的所有变量和数组状况表。
就以M文件calc_area和sin_x为说明,当两文件执行后,这个工作区所包含的变量有:
>>whos
NameSizeBytesClass
area1x18doublearray
radius1x18doublearray
string1x3264chararray
x1x61488doublearray
y1x61488doublearray
Grandtotalis156elementsusing1056bytes
脚本文件(Scriptfiles)calc_area创造了变量area,radius和string,sin_x创造了变量x和y。
请注意所有的变量在同一工作区,所以两个脚本文件(Scriptfiles)按顺序执行,第二个脚本文件(Scriptfiles)可以利用第一个脚本文件(Scriptfiles)所创建的变量。
每一个变量和数组的内容可以通过在命令窗口(TheCommandWindows)中输入对应名字得到显示。
例如string的内容如下:
>>string
string=
theareaofthecircleis19.635
可用clear命令删除在本工作区的变量,格式如下
clearvar1,var2...
var1,var2是要删除变量的变量名。
clearvariables命令或clear命令用于清除当前工作区中的所有变量。
工作空间窗口(Theworkspacebrowser)
当前工作区的内容也可以通过基于GUI的工作空间窗口检测到。
工作空间窗口默认出现
在MATLAB桌面的左上角,它提供了和whos命令可得到的相同的信息,并当工作区内的内容发生改变时,其内的信息也会随之更新。
工作空间窗口(Theworkspacebrowser)允许用户改变工作区内的任何一个变量的内容。
典型的工作空间窗口(Theworkspacebrowser)如图1.7.你能看到它显示的信息和whos命令得到的信息是一样的。
双击这个窗口任一变量便产生了一个数组编辑器,这个编辑器允许用户修改保存在变量中的信息。
一个或多个变量可在工作空间内删除,先选择它们,然后按Delete键或右击选择Delete
选项。
1.3.7MATLAB帮助
你有三种方法可以得到MATLAB的帮助。
最好的方法是使用帮助空间窗口(helpbrowser)。
你可以单击MATLAB桌面工具栏上的图标
,也可以在命令窗口(TheCommand
Windows)中输入helpdesk或helpwin来启动帮助空间窗口(helpbrowser)。
你可以通过浏
览MATLAB参考证书或搜索特殊命令的细节得到帮助。
帮助空间窗口如图1.9所示。
另外还有两种运用命令行的原始形式得到帮助。
第一种方法是在MATLAB命令窗口(TheCommandWindows)中输入help或help和所需要的函数的名字。
如果你在命令窗口(TheCommandWindows)中只输入help,MATLAB将会显示一连串的函数。
如果有一个专门的函数名或工具箱的名字包含在内,那么help将会提供这个函数或工具箱。
第二种方法是通过lookfor命令得到帮助。
lookfor命令与help命令不同,help命令要求与函数名精确匹配,而lookfor只要求与每个函数中的总结信息有匹配。
Lookfor命令
比help命令运行起来慢得多,但它提高了得到有用信息的机会。
举个例子,假设你想找到一个求矩阵的逆阵(inverseofmatrix)的函数。
但是MATLAB中没有叫inverse的函数,这时help命令就不起作用了,只能用lookfor命令,得到以下结果:
>>lookforinverse
INVHILBInverseHilbertmatrix.
IPERMUTEInversepermutearraydimensions.
ACOSInversecosine.
ACOSDInversecosine,resultindegrees.
ACOSHInversehyperboliccosine.
ACOTInversecotangent.
ACOTDInversecotangent,resultindegrees.
ACOTHInversehyperboliccotangent.
ACSCInversecosecant.
ACSCDInversecosecant,resultindegrees.
ACSCHInversehyperboliccosecant.
ASECInversesecant.
ASECDInversesecant,resultindegrees.
ASECHInversehyperbolicsecant.
ASINInversesine.
ASINDInversesine,resultindegrees.
ASINHInversehyperbolicsine.
ATANInversetangent.
ATAN2Fourquadrantinversetangent.
ATANDInversetangent,resultindegrees.
ATANHInversehyperbolictangent.
ERFCINVInversecomplementaryerrorfunction.
ERFINVInverseerrorfunction.
INVMatrixinverse.
PINVPseudoinverse.
IFFTInversediscreteFouriertransform.
IFFT2Two-dimensionalinversediscreteFouriertransform.
IFFTNN-dimensionalinversediscreteFouriertransform.
IFFTSHIFTInverseFFTshift.
inverter.m:
%%InversesofMatrices
DRAMADAHMatrixofzerosandoneswithlargedeterminantorinverse.
INVHESSInverseofanupperHessenbergmatrix.
通过这个列表我们可以看到我所需的函数的名字为inv.
1.3.8一些重要的命令
如果你是个MATLAB新手,一些示例可能有助你理解它的功能。
在命令窗口(TheCommandWindows)中输入demo或在启动平台中选择“demos”来运行MATLAB内建的示例。
在任何时侯你都可以用clc命令清空命令窗口(TheCommandWindows)中的内容,可以用clf清空当前图象窗口中的内容。
在工作空间窗口(Theworkspacebrowser)中变量可用clear命令清除。
正如我们看到的,工作空间窗口(Theworkspacebrowser)中的变量在独立的命令和M文件间执行时,可能会出现第一个问题中的变量存留在工作区而影响到第二个问题的解决。
为了避免这种情况的发生,在新的计算开始之前,应当有clear命令清空工作区。
//另一个重要的命令是abort命令。
如果一个M文件运行时间过长,里面可能含有无限循环,而没有结束。
在这种情况下,可在命令窗口内输入control-c(简写为^c)。
输入这个命
令方法是光标在命令窗口内,按住控制键然后按c。
当MATLAB删除了^c,说明这个程序已经停止并回到命令行提示符状态。
省略号(!
)是另一个重要的特殊字符。
它的特殊作用是给计算机操作系统发送一个命令。
在省略号后的字符会发送给计算机并且执行,如果在计算机的命令行提示符中输入字符是一样的。
这种特性使系统命令更容易植入MATLAB程序中。
最后,你能用diary命令记录下在MATLAB中运行过程中每个线程所做的事。
命令的格式如下:
diaryfilename
当这个命令被执行后,所有在命令窗口(TheCommandWindows)中的输入和输出将会被记录在diary文件中。
这是一个非常重要的工具,当MATLAB发生错误而中断时,利用它你可以重建重要的事件。
diaryoff命令中止写入diary文件,diaryon命令重新开始写入。
MATLAB搜索路径(theMATLABsearchpath)
MATLAB用MATLAB搜索条寻找M文件。
在你的文件系统中,MATLAB的M文件是以目录的形式被组织。
如果用户在MATLAB提示符后输入一个名字,那么MATLAB在解释器将按以下顺序寻找这个名字:
它先查看这个名字是否是个变量名。
如果它是一个变量,MATLAB将会显示出这个变量的值。
然后检查看它是否是内建函数或命令。
如果是,则执行对应的函数或命令。
检查是不是在当前目录下的一个M文件。
如果是,则执行对应的函数或命令。
检查是不是在MATLAB搜索路径的所有目录下的一个M文件。
如果是,则执行对应的函数或命令。
注意:
如果首先检测到的是变量名,且这个变量名与MATLAB的某一个函数或命令同名,那么这个函数或命令将变得无法访问。
这是初学者易犯的错误之一。
常见编程错误
如果变量名与MATLAB中的函数或命令重名,那么这个函数或命令将不能被访问。
还有,如果有多个函数或命令重名,那么MATLAB将会执行在搜索路径中找到的第一个,其他的将不会被执行。
对于初学者,这也是一个常见的问题,往往将M文件的名字与MATLAB内建函数或命令重名,从而导致函数或命令的不能访问。
常见编程错误
不要创建和MATLAB内建函数或命令同名的M文件。
MATLAB还包括一个特殊的命令——which命令,它能帮助我们找到正在执行的文件版本和它的路径。
在检查文件名冲突方面它是非常有用的。
这个命令的格式是
whichfilename
filename代表你所要加载的函数名。
举个例子,你要加载的函数是cross.m:
>>whichcross
D:
\MATLAB7\toolbox\matlab\specfun\cross.m
我们可以运用启动平台中的路径工具(thepathtool)随时检查和修改这个路径,或者在命令窗口(TheCommandWindows)中输入editpath命令。
路径工具(thepathtool)如图1.10所示。
它允许使用者添加,删除路径和改变在目录中的顺序