第一章 MATLAB基础.docx
- 文档编号:10956301
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:44
- 大小:126.74KB
第一章 MATLAB基础.docx
《第一章 MATLAB基础.docx》由会员分享,可在线阅读,更多相关《第一章 MATLAB基础.docx(44页珍藏版)》请在冰点文库上搜索。
第一章MATLAB基础
第一章MATLAB基础
1.1MATLAB概述
1.1.1MALTAB简介
Matlab是“MatrixLaboratory”的缩写,意为“矩阵实验室”,主要适用于矩阵运算及控制和信息处理领域的分析设计。
它使用方便,输入简便,运算高效、内容丰富、容易由用户自行扩展。
现已成为美国和其它发展中国家大学教学和科研中不可缺少的工具。
Matlab是一个交互式的系统,它的基本运算单元是不需指定维数的矩阵,按照IEEE的数值计算标准(能正确处理无穷数Inf(Infinity)、无定义数NaN(not-a-number)及其运算)进行计算.系统提供了大量的矩阵及其它运算函数,可以方便地进行一些很复杂的计算,而且运算效率极高.Matlab命令和数学中的符号、公式非常接近,可读性强,容易掌握,还可利用它所提供的编程语言进行编程完成特定的工作。
Matlab自1984年推出以来,版本不断升级,1992年4.x版,1997年5.0版,1999年5.3版,2000年6.0版,2004年7.0版,从2006年起,MathWorks公司每年发布两次以年份命名的MATLAB版本,如R2006a(MATLAB7.2)、R2006b(MATLAB7.3)、R2007a(MATLAB7.4)、R2007b(MATLAB7.5)、R2008a(MATLAB7.6)、R2008b(MATLAB7.7)、R2009a(MATLAB7.8)、R2009b(MATLAB7.9)等。
历经几十年的发展和竞争,现已成为国际最优秀的科技应用软件之一。
1.1.2MATLAB的特点
1.功能强大
MATLAB具有数值计算和符号计算功能,以及简单易用的绘图功能,MATLAB提供了各种工具箱,用于求各类(各学科)应用问题,另外,还提供了仿真工具。
2.语言简单
Matlab语言是一种解释执行的语言(在没被专门的工具编译之前),它灵活、方便,其调试程序手段丰富,调试速度快,需要学习时间少。
Matlab语言与其它语言相比,较好地解决了编辑、编译、连接和执行问题,融为一体。
它能在同一画面上进行灵活操作快速排除输入程序中的书写错误、语法错误以至语意错误,从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中它是一种比VB还要简单的语言。
3.扩充能力强
Matlab语言有丰富的库函数,在进行复杂的数学运算时可以直接调用,而且Matlab的库函数同用户文件在形成上一样,所以用户文件也可作为Matlab的库函数来调用。
用户可以根据自己的需要方便地建立和扩充新的库函数,以便提高Matlab使用效率和扩充它的功能。
另外,为了充分利用Fortran、C等语言的资源,包括用户已编好的Fortran,C语言程序,混合编程,方便地调用有关的Fortran,C语言的子程序。
4.语句简单,内涵丰富
Mat1ab语言中最基本最重要的成分是函数,其一般形式为[a,b,c,…]=fun(d,e,f,…),即一个函数由函数名fun,输入变量d,e,f,……和输出变量a,b,c……组成,对同一函数名fun,不同数目的输入变量(包括无输入变量)及不同数目的输出变量,代表着不同的含义(有点像面向对象中的多态性)。
这不仅使Matlab的库函数功能更丰富,而大大减少了需要的磁盘空间,使得Matlab编写的M文件简单、短小而高效。
1.1.3MATLAB的主要功能
1.数值计算和符号计算功能
MATLAB以矩阵作为数据操作的基本单位,还提供了十分丰富的数值计算函数。
MATLAB和著名的符号计算语言Maple与MuPAD(从MATLAB2008b开始使用MuPAD)相结合,使得MATLAB具有符号计算功能。
2.绘图功能
MATLAB提供了两个层次的绘图操作:
一种是对图形句柄进行的低层绘图操作,另一种是建立在低层绘图操作之上的高层绘图操作。
3.编程语言
MATLAB具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。
4.MATLAB工具箱
MATLAB包含两部分内容:
基本部分和各种可选的工具箱。
MATLAB工具箱分为两大类:
功能性工具箱和学科性工具箱。
除基本部分外,Matlab还根据各专门领域中的特殊需要提供了许多可选的工具箱,如应用于自动控制领域的ControlSystem工具箱和神经网络中NeuralNetwork工具箱等.
1.2Matlab的集成环境
1.2.1启动与退出MATLAB集成环境
安装MATLAB7.X系统,需运行系统自带的安装程序setup.exe,可以按照安装提示依次操作。
与一般的Windows程序一样,启动MATLAB系统有3种常见方法:
(1)使用Windows“开始”菜单。
(2)运行MATLAB系统启动程序matlab.exe。
(3)双击桌面的MATLAB图标。
启动MATLAB后,将进入MATLAB7.x集成环境。
MATLAB7.x集成环境包括MATLAB主窗口、命令窗口(CommandWindow)、工作空间窗口(Workspace)、命令历史窗口(CommandHistory)、当前目录窗口(CurrentDirectory)和启动平台窗口(LaunchPad)。
当MATLAB安装完毕并首次启动时,展现在屏幕上的界面为MATLAB的默认界面,如下图1.1所示。
图11.1(7.5版)
要退出MATLAB系统,也有3种常见方法:
(1)在MATLAB主窗口File菜单中选择ExitMATLAB命令。
(2)在MATLAB命令窗口输入Exit或Quit命令。
(3)单击MATLAB主窗口的“关闭”按钮。
1.2.2主窗口
MATLAB主窗口是MATLAB的主要工作界面。
主窗口除了嵌入一些子窗口外,还主要包括菜单栏和工具栏。
1.菜单栏
MATLAB的菜单栏包括7个菜单项,其中File菜单实现有关文件的操作,Edit菜单用于命令窗口的编辑操作,Debug菜单用于程序调试,Parallel菜单用于设置并行计算的运行环境,Desktop菜单用于设置MATLAB集成环境的显示方式,Window菜单用于关闭所有打开的编辑器窗口或选择活动窗口,Help菜单用于提供帮助信息。
2.工具栏
MATLAB的工具栏提供了一些命令按钮(包括新建文件、打开文件、剪切、复制和粘贴等常用图标)和一个当前路径列表框。
这些命令按钮有对应的菜单命令,但比菜单命令使用起来更快捷、方便。
1.2.3命令窗口(CommandWindow)
命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。
MATLAB命令窗口中的“>>”为命令提示符,表示MATLAB正在处于准备状态。
在命令提示符后键入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。
一般来说,一个命令行输入一条命令,命令行以回车结束。
但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。
例如
p=15,m=35
p=15;m=35
如果一个命令行很长,一个物理行之内写不下,可以在第一个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。
3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。
在MATLAB里,有很多的控制键和方向键可用于命令行的编辑。
1.2.4工作空间窗口
工作空间是MATLAB用于存储各种变量和结果的内存空间。
在该窗口中显示工作空间中所有变量的名称、大小、字节数和变量类型说明,可对变量进行观察、编辑、保存和删除。
1.2.5当前目录窗口和搜索路径
1.当前目录窗口
当前目录是指MATLAB运行文件时的工作目录,只有在当前目录或搜索路径下的文件、函数可以被运行或调用。
在当前目录窗口中可以显示或改变当前目录,还可以显示当前目录下的文件并提供搜索功能。
将用户目录设置成当前目录也可使用cd命令。
例如,将用户目录c:
\mydir设置为当前目录,可在命令窗口输入命令:
cdc:
\mydir
2.MATLAB的搜索路径
当用户在MATLAB命令窗口输入一条命令后,MATLAB按照一定次序寻找相关的文件。
基本的搜索过程是:
(1)检查该命令是不是一个变量。
(2)检查该命令是不是一个内部函数。
(3)检查该命令是否当前目录下的M文件。
(4)检查该命令是否MATLAB搜索路径中其他目录下的M文件。
用户可以将自己的工作目录列入MATLAB搜索路径,从而将用户目录纳入MATLAB系统统一管理。
设置搜索路径的方法有:
(1)用path命令设置搜索路径。
例如,将用户目录c:
\mydir加到搜索路径下,可在命令窗口输入命令:
path(path,’c:
\mydir’)
(2)用对话框设置搜索路径。
在MATLAB的File菜单中选SetPath命令或在命令窗口执行pathtool命令,将出现搜索路径设置对话框。
通过AddFolder或AddwithSubfolder命令按钮将指定路径添加到搜索路径列表中。
在修改完搜索路径后,则需要保存搜索路径。
1.2.6命令历史记录窗口
命令历史窗口可以内嵌在MATLAB主窗口的右下部,也可以浮动在主窗口上。
在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。
而且,通过双击命令可进行历史命令的再运行。
如果要清除这些历史记录,可以选择Edit菜单中的ClearCommandHistory命令。
1.2.7启动平台窗口和Start按钮
MATLAB7.x的启动平台窗口可以帮助用户方便地打开和调用MATLAB的各种程序、函数和帮助文件。
MATLAB7.x主窗口左下角还有一个Start按钮,单击该按钮会弹出一个菜单,选择其中的命令可以执行MATLAB产品的各种工具,并且可以查阅MATLAB包含的各种资源。
1.3数据与变量
1.3.1表达式
Matlab的表述语句、变量的类型说明由Matlab系统解释和判断,Matlab语句通常形式为:
(1)变量=表达式
或者使用其简单形式:
(2)表达式
其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。
显示在屏幕上,同时保存在变量中以留用.如果变量名和“=”省略,则具有ans名(意思指回答)的变量将自动建立.
例1-1:
设球的半经为r=2,求球的体积
解:
在命令窗口输入以下代码:
>>r=2
r=
2
>>V=4/3*pi*r^3%pi为系统内置常量,乘方用^表示
V=
33.5103
需注意的问题有以下几点:
●语句结束键入回车键,若语句的最后一个字符是分号,即“;”,则表明不输出当前命令的结果.
●如果表达式很长,一行放不下,可以键入“…”(三个点,但前面必须有个空格,目的是避免将形如“数2…”理解为“数2.”与“..”的连接,从而导致错误),然后回车.
Matlab变量字母区分大小写,如A和a不是同一个变量,函数名一般使用小写字母,如inv(A)不能写成INV(A),否则系统认为未定义函数.
例1-2(续):
>>r=2;V=4/3*pi*r^3
V=
33.5103%用分号时,r的结果不显示
>>r=2,V=4/3*pi…%用三个“…”表示续行
*r^3%因为是接上一行,前面没有提示符>>
r=
2
V=
33.5103
若需要修改已执行过的命令行,可以在命令历史窗口中找到该命令行复制,再粘贴至命令窗口修改,也可直接使用↑、↓键调出已执行的命令进行修改。
例如,现将半经改为9,那么使用上述方法得:
>>r=9;%更新r值
>>V=4/3*pi*r^3%使用↑键直接调出.
V=
3.0536e+003
1.3.2数据显示格式
MATLAB用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表示方法。
MATLAB默认的数据显示格式为短格式(short),当结果为整数时,就作为整数显示,当结果是实数时,则以小数点后4位的长度显示;若结果的数据的有效数字超出一定范围,则使用科学记数法显示;在一般情况下,MATLAB内部每一个数据元素都是用双精度数来表示和存储的。
数据输出时用户可以用format命令设置或改变数据输出格式。
format命令的格式为:
format格式符
其中格式符决定数据的输出格式
表1-1format命令的格式
Format命令
命令的含义
Format
缺省输出格式与short相同
Formatshort
5位定点格式(四位小数)
Formatlong
15位定点格式
Formatshorte
5位浮点格式
Formatlonge
15位浮点格式
Formatshortg
最佳5位定点格式或浮点格式
Formathex
十六进制格式
Format+
用+、-符号和空格表示正、负数和零元素
Formatlongg
最佳15位定点格式或浮点格式
Formatbank
用于美元和美分(金融)的固定格式,即小数点后两位
Formatrat
用有理分式表示
Formatcompact
压缩额外的空行
Formatloose
显示变量之间插入空行
例如:
x=[4/31.2345e-6]
在不同的输出格式下的结果为:
短格式1.33330.0000
短格式e方式1.3333e+0001.234e-006
长格式1.3333333333333330.000001234500000
长格式e方式1.333333333333333e-0001.23450000000000e-006
有理数格式4/31/810045
16进制格式3ff55555555555553eb4b6231abfd271
+格式++
注:
Matlab系统的数字显示格式可以由Option菜单中的NumericalFormat菜单改变,format命令只影响数据输出格式,而不影响数据的计算和存储。
1.3.3复数
在Matlab中输入复数,可以同实数一样,直接输入和计算。
>>Z=3+4i%注意:
在4与i之间不要留有任何空间!
输入复数矩阵有两个方便的方法,如:
>>A=[12;34]+i*[56;78]
>>A=[1+5i2+6i;3+7i4+8i]
两式具有相等的结果.但当复数作为矩阵的元素输入时,不要留有任何空间,如1+5i,如在“+”号左右留有空格,就会被认为是两个分开的数.
>>a=1+2i;b=5-4i;c=a/3b
c=
-0.0732+0.3415i
思考:
a=1+2*i与a=1+2i结果会一样吗?
1.3.4系统预定义变量
Matlab有一些预定义变量(如下表所示,大小写均可),MALTAB启动时就已赋值,可以直接使用。
如前面使用过的圆周率,用pi表示圆周率(π=3.1415)的近似值,用i,j表示虚数单位。
表1-2系统预定义变量
变量名
说明
ans
最近一次的答案
pi
3.14159235358579
Inf
∞值,无穷大(Infinity)
NaN
无法定义一个数目(Notanumber)
i或j
复数中的虚数单位i=j=
Nargin
函数输入参数个数
nargout
函数输出参数个数
realmax
最大浮点实数
realmin
最小浮点实数
flops
浮点运算次数
eps
MATLAB定义的正的极小值=2.2204e-16
特殊变量ans是系统本身一个特殊变量名,若运算结果没有赋于任何变量,系统将其赋予ans。
预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。
预定义变量在工作空间窗口中观察不到,如果预定义变量被用户重新赋值,则原来的功能暂不能使用,当这些用户变量被清除(clear)后或MATLAB被重新启动后,这些功能又得以恢复。
例如:
>>x=1+2i;
>>y=3-sqrt(17);
>>z=(cos(abs(x+y))-sin(78*pi/180))/(x+abs(y))
输出结果是:
z=
-0.3488+0.3286i
1.3.5用户变量
Matlab变量名总以字母开头,由字母、数字或下划线组成,区分大小写,但最多不能超过63个字符,否则系统只承认前63个字符.
Matlab变量字母区分大小写,如A和a不是同一个变量,函数名一般使用小写字母,如inv(A)不能写成INV(A),否则系统认为未定义函数.
又如A,A1,A_b,sum1等都是合法的,而1a,a-b,a*b等都是不合法的变量名。
在CommandWindow中使用的变量一旦被赋值,就会携带这个值存在于工作空间(Workspace),直到被清除(Clear)或被赋予新的变量。
clear命令用于删除MATLAB工作空间中的变量。
who和whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清单。
who命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。
例如:
>>A=5+4i;b=5-4i;B_1=2;A*b;
>>whos
NameSizeBytesClass
A1x116doublearray(complex)
B_11x18doublearray
V1x18doublearray
ans1x18doublearray
b1x116doublearray(complex)
r1x18doublearray
Grandtotalis6elementsusing64bytes
>>A%查询变量A的值
5.0000+4.0000i
>>clearA
>>A
?
?
?
Undefinedfunctionorvariable'A'.
%再查询变量A的值,已经不存在了。
>>clear%清除Workspace窗口中所有变量
>>whos%Workspace窗口中已经没有任何变量
清除Workspace中所有变量也可以使用菜单Eidt:
ClearWorkspace实现。
注意菜单Eidt:
ClearWorkspace与菜单Eidt:
ClearCommandWindow的区别。
后者虽然擦干净了指令窗口显示,但并不清除变量,变量连同它的值仍然存在,可继续使用。
1.3.6数据文件
当清除变量或退出MATLAB时,这些变量不复存在,利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久地保留下来,扩展名是.mat。
MAT文件的生成和装入由save和load命令来完成。
常用格式为:
save文件名[变量名表][-append][-ascii]
load文件名[变量名表][-ascii]
其中,文件名可以带路径,但不需带扩展名.mat,命令隐含一定对.mat文件进行操作。
变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分隔。
当变量名表省略时,保存或装入全部变量。
-ascii选项使文件以ASCII格式处理,省略该选项时文件将以二进制格式处理。
save命令中的-append选项控制将变量追加到MAT文件中。
例如:
>>clear;a=1;b=2;c=a*b;d=a+c;
在文件File菜单下的SaveWworkspaceas命令存入数据文件,取名为abc.mat;
>>clear%现在可以看到Workspace窗口中已经清空
现在再将数据装载一工作空间,方法是:
选择File菜单下的Importdata命令,找到保存好的数据文件,打开。
以看到Workspace窗口中又有了变量a,b,c,d,双击鼠标可以看到其数据值。
上述过程也可以通过工作空间(Workspace)窗口中的工具栏来实现。
Mat是二进制数据文件,用普通软件是不能读取的。
MATLAB命令save和load提供了写与读ASCII码数据文件的选项(详见save和load的帮助)。
例如:
>>clear;a=1;b=2;c=a*b;d=a+c;
>>savemydata.txt–ascii–double;
%将数据用双精度存入ASCII码方式文本文件mydata.txt中
>>clear%此时Workspace已经清空
>>loadmydata.txt
这时发现工作空间(Workspace)有了一个变量mydata(它是一个4*1数组),打开,发现该变量里就是原来a,b,c,d的值。
与mat文件不同的是,文本文件只保存数据,而不保存变量。
MATLAB还允许使用C语言读写指令fprintf,fsacnf,fopen,fread等来传递格式化数据文件,其使用格式与C语言基本一致。
详细可参考有关的MATLAB教科书。
1.4运算符
MATLAB运算符分为算术运算符、关系运算符与逻辑运算符3类,下面分别进行介绍。
1.4.1算术运算符
算术运算符是构成运算的最基本的操作命令,可以在MATLAB的命令窗口中直接运行,如表1-3所示。
表1-3算术运算符
运算符
功能
+
加法运算。
两个数相加或两个同阶矩阵相加;如果一个矩阵和一个数字相加,这个数字自动扩展为与矩阵同维的一个矩阵。
-
减法运算,两个数相减或两个同阶矩阵相减;
*
乘法运算。
两个数相乘或两个同阶矩阵相乘;
/
除法运算(也称右除运算)。
两个数相除或两个可除矩阵相除(a/b表示a÷b,A/B表示A乘以B的逆,即AB-1);,详见第四章。
^
乘幂运算,数的方幂或一个方阵的多少次方
\
左除运算。
两个数相除,或两个可除矩阵相除(a\b表示b÷a,A\B表示A-1B),详见第四章。
.*
点乘运算。
两个同阶矩阵对应元素相乘
.^
点乘幂运算。
一个矩阵中各个元素的多少次方
./
点除运算。
两个同阶矩阵对应元素相除
.\
点左除运算。
两个同阶矩阵对应元素左除
例1-3:
>>clear;A=[1-1;02];B=[01;1-1];
>>A+B
ans=
10
11
>>A+100
ans=
10199
100102
>>100*A
ans=
100-100
0200
>>A.*B%注意不是A*B
ans=
0-1
0-2
>>A.\B,A./B%设A=(aij),B=(bij),则A.\B为bij÷aij,A./B为aij÷bij
ans=
0-1.0000
Inf-0.5000
ans=
Inf-1
0-2
>>A.^2
ans=
11
04
>>2.^A
ans=
2.00000.5000
1.00004.0000
1.4.2关系运算符
MATLAB提供了6种关系运算符:
<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于)。
它们的含义不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。
关系运算符的运算法则为:
(1)当两个比较量是标量时,直接比较两
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第一章 MATLAB基础 MATLAB 基础
![提示](https://static.bingdoc.com/images/bang_tan.gif)