版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章 MATLAB程序设计基础1 MATLAB开发环境 MATLAB语言的变量 运算符 语句 MATLAB中的M文件等。 2主要内容 MATLAB开发环境的主界面,主要包括: 主菜单 命令窗口(Command Window) 工作空间窗口(Workspace) 命令历史窗口(Command History) 当前路径窗口(Current Directory)等32.1 MATLAB的工作界面1、命令窗口的功能、命令窗口的功能 命令窗口是用户与命令窗口是用户与MATLAB编译器进行通信的工作环编译器进行通信的工作环境,采用交互式设计方式。境,采用交互式设计方式。 主要功能是:提供命令输入的平台
2、,用户可以通过主要功能是:提供命令输入的平台,用户可以通过命令窗口中直接输入命令或数学表达式进行计算;命令窗口中直接输入命令或数学表达式进行计算;显示命令执行的结果,系统自动将反馈信息或结果显示命令执行的结果,系统自动将反馈信息或结果显示在命令窗口中。显示在命令窗口中。42.1.1 命令窗口 在命令窗口中,在命令窗口中,“”为提示符为提示符,表示,表示MATLAB编编译器正等待用户输入命令。所有译器正等待用户输入命令。所有MATLAB命令、命令、函数、程序都要在这个窗口下运行。函数、程序都要在这个窗口下运行。 创建一个变量创建一个变量,并赋值,并赋值4.5: x=4.5 x= 4.5000 5
3、2.1.1 命令窗口 计算函数值:计算函数值: sin(pi*x) ans= 1 其中,其中,ans 是是answer的缩写,的缩写,MATLAB中的默认中的默认结果变量,当没有指定结果变量时,就默认使结果变量,当没有指定结果变量时,就默认使用用ans。62.1.1 命令窗口注意:若在表达式后面跟分号注意:若在表达式后面跟分号“;”, MATLAB系统只完成该命令要求的计算任务,系统只完成该命令要求的计算任务,将不显示结果将不显示结果 作用:可以免除了系统资源对中间结果进行作用:可以免除了系统资源对中间结果进行十进制和二进制之间的转换,使程序运行速十进制和二进制之间的转换,使程序运行速度成倍甚
4、至成百倍的提高。度成倍甚至成百倍的提高。72.1.1 命令窗口 为了简化命令的输入,在为了简化命令的输入,在MATLAB中,最近中,最近使用过的几条命令都存储在内存中,因此可使用过的几条命令都存储在内存中,因此可以调出先前的命令。以调出先前的命令。 MATLAB提供了一些命令行功能键,来实现提供了一些命令行功能键,来实现这一功能。这一功能。 82.1.1 命令窗口9表2-1 常用的命令行功能键键键功能功能键键功能功能重调前一行重调前一行End移动到行尾移动到行尾重调下一行重调下一行ESC清除一行清除一行左移一个字符左移一个字符Backspace删除光标左侧一个字符删除光标左侧一个字符右移一个字
5、符右移一个字符PageUp向前翻页向前翻页Ctrl+左移一个字左移一个字PageDown向后翻页向后翻页Ctrl+ 右移一个字右移一个字Ctrl+Home光标移到命令窗口首光标移到命令窗口首Home移动到行首移动到行首Ctrl+End光标移到命令窗口尾光标移到命令窗口尾 例如可以使用方向键调出已经输入过的命令。假设将例如可以使用方向键调出已经输入过的命令。假设将函数函数sin错写为错写为sn,而键入了如下命令:,而键入了如下命令: sn(3/pi) ? Undefined function or variable sn. 这时你不用重新键入整行命令,而只需按这时你不用重新键入整行命令,而只需按
6、“”键,就键,就会再显示刚才键入的命令行,进行更正,接着接回车会再显示刚才键入的命令行,进行更正,接着接回车即可正常运行即可正常运行 特别地,还可以只键入少量几个字母,使用特别地,还可以只键入少量几个字母,使用“”即可即可调出最后一条以这些字母开头的命令。调出最后一条以这些字母开头的命令。102.1.1 命令窗口2、数值的显示格式、数值的显示格式 MATLAB以双精度浮点数来执行运算。以双精度浮点数来执行运算。 显示数值结果时,如果是整数,显示整数;如果显示数值结果时,如果是整数,显示整数;如果是实数,默认显示小数点后四位有效数字。是实数,默认显示小数点后四位有效数字。 用户可以在提示符下键入
7、相应的用户可以在提示符下键入相应的format命令来指命令来指定改变数值的显示格式,但不影响计算与存储。定改变数值的显示格式,但不影响计算与存储。 也可以通过也可以通过File菜单中的菜单中的Preference菜单项来改变菜单项来改变数值的显示格式。数值的显示格式。112.1.1 命令窗口如: pians = 3.1416 format long pians = 3.141592653589793 format short e pians = 3.1416e+000122.1.1 命令窗口13表2-2 数值的显示格式MATLAB命令pi注释注释format short3.1416小数点后小数
8、点后4位有效数字位有效数字format long3.141592653589793小数点后小数点后15位有效数字位有效数字format short e3.1416e+000小数点后小数点后4位有效数字位有效数字+指数指数format long e3.141592653589793e+000小数点后小数点后15位有效数字位有效数字+指数指数format short g3.1416短紧缩格式短紧缩格式format long g3.14159265358979长紧缩格式长紧缩格式format hex400921fb54442d1816进制进制format +正(正(+)、负()、负(-)或)或0(0
9、)format rat355/133分数格式分数格式format bank3.14银行格式银行格式 工作空间窗口是工作空间窗口是MATLAB的变量管理中心,存储的变量管理中心,存储着命令窗口输入的命令和创建的所有变量值。着命令窗口输入的命令和创建的所有变量值。 可以显示变量的名称、值、尺寸和类别等,并用可以显示变量的名称、值、尺寸和类别等,并用不同的图标表示不同类型的变量。不同的图标表示不同类型的变量。 142.1.2 工作空间窗口 每次启动每次启动MATLAB,都会自动建立一个工作区,都会自动建立一个工作区 运行运行MATLAB的程序或命令时,产生的所有变量被加的程序或命令时,产生的所有变量
10、被加入到工作区,除非用特殊的命令删除某变量,否则入到工作区,除非用特殊的命令删除某变量,否则该变量在关闭该变量在关闭MATLAB之前一直保存在工作区,工作之前一直保存在工作区,工作区在区在MATLAB运行期间一直存在,关闭运行期间一直存在,关闭MATLAB后,后,工作区自动消除。工作区自动消除。152.1.2 工作空间窗口 MATLAB提供了一些命令随时查看工作区中的变量名及提供了一些命令随时查看工作区中的变量名及变量的值变量的值 who或或whos:显示当前工作区中的所有变量。:显示当前工作区中的所有变量。who只显只显示变量名,示变量名,whos给出变量的给出变量的 大小、数据类型等信息。
11、大小、数据类型等信息。 class(变量名变量名) 显示工作空间中指定变量的数据类型。显示工作空间中指定变量的数据类型。 size(变量名):显示当前工作区中指定变量的尺寸。(变量名):显示当前工作区中指定变量的尺寸。 length(变量名变量名):显显示当前工作区中指定变量的长度。:显显示当前工作区中指定变量的长度。162.1.2 工作空间窗口 disp(变量名变量名):显示当前工作区中指定变量。:显示当前工作区中指定变量。 clear:清除工作区中的所有变量:清除工作区中的所有变量 clear(变量名变量名):清除指定的工作区变量:清除指定的工作区变量172.1.2 工作空间窗口 历史命令
12、历史命令 (Command History)窗口记录了所窗口记录了所有执行过的命令及执行时间,用户可以用鼠标有执行过的命令及执行时间,用户可以用鼠标双击在该窗口中的某一历史命令来重新执行该双击在该窗口中的某一历史命令来重新执行该命令,也可以用鼠标右击某一历史命令,利用命令,也可以用鼠标右击某一历史命令,利用弹出的上下文菜单,进行复制、删除、执行命弹出的上下文菜单,进行复制、删除、执行命令令182.1.3 命令历史窗口u当前文件夹(Current Folder)窗口显示了MATLAB在对文件操作(保存、打开等)时默认的工作目录,显示的文件信息包括文件名称、文件类型、修改日期、内容描述等。u该窗口
13、相当于是一个资源管理器。在当前目录窗口中的某一文件上单击鼠标右键,会弹出上下文菜单,可通过此菜单实现对文件的打开、运行、重命名、复制、删除等操作192.1.4当前文件夹窗口在在MATLAB命令窗口中输入命令窗口中输入example后按回车键,后按回车键,MATLAB按下列顺序开始搜索:中有一条搜索路径,搜索时按照按下列顺序开始搜索:中有一条搜索路径,搜索时按照规定的顺序进行。规定的顺序进行。(1)检查)检查example是不是工作区中的变量,如果是,返是不是工作区中的变量,如果是,返回该变量值;否则转入(回该变量值;否则转入(2)。)。 (2)检查)检查example 是不是内部函数,如果是,
14、执行该内是不是内部函数,如果是,执行该内部函数;否则转入(部函数;否则转入(3)。)。202.2 搜索路径(3)检查在当前目录中是否存在名为)检查在当前目录中是否存在名为example的的M文件,文件,如果有,执行该文件;否则转入(如果有,执行该文件;否则转入(4)。)。(4)在搜索路径中查找是否存在名为)在搜索路径中查找是否存在名为example的的M文件,文件,如果有,执行该文件;否则给出出错信息。如果有,执行该文件;否则给出出错信息。 如果在搜索目录中存在多个同名函数,则只执行搜索路如果在搜索目录中存在多个同名函数,则只执行搜索路径中的第一个函数,其它函数不再执行。径中的第一个函数,其它
15、函数不再执行。212.2 搜索路径 可以通过在命令窗口中输入可以通过在命令窗口中输入path命令查看当前搜命令查看当前搜索路径。用户还可以使用索路径。用户还可以使用path命令临时添加新的命令临时添加新的搜索路径。搜索路径。 如:如:path(D:mypath, path);); 还可以通过还可以通过“File”菜单下的菜单下的“Set Path”项,打开路项,打开路径测览器,把该目录永久地保存在径测览器,把该目录永久地保存在MATLAB的搜索的搜索路径上。路径上。222.2 搜索路径MATLAB 有以下几种方法获得帮助:有以下几种方法获得帮助: 帮助命令帮助命令 帮助窗口帮助窗口 在线帮助页
16、或直接链接到在线帮助页或直接链接到MathWorks公司公司(对对于已联网的用户于已联网的用户)。232.3 帮助系统1、帮助命令、帮助命令 help 和和lookfor(1)help 命令用法是:命令用法是: help :显示:显示help 主题一览表。主题一览表。 help 函数名:显示相应函数的有关帮助信息。函数名:显示相应函数的有关帮助信息。 help 帮助主题帮助主题 :获取指定主题的帮助信息。:获取指定主题的帮助信息。例例2-1 显示函数sin的帮助信息help sin242.3帮助系统(2)lookfor 虽然虽然help可以随时提供帮助,但必须知道准确的函数可以随时提供帮助,但
17、必须知道准确的函数名称。当不能确定函数名称时,名称。当不能确定函数名称时,help就无能为力了。就无能为力了。 lookfor命令,命令, 它可提供通过完整或部分的关键词,它可提供通过完整或部分的关键词,搜索出一组与之相关的命令。一般情况下,该命令仅搜索出一组与之相关的命令。一般情况下,该命令仅搜索各个文件帮助文本的第一行。搜索各个文件帮助文本的第一行。lookfor si252.3帮助系统2、帮助窗口、帮助窗口 在在MATLAB命令窗口中有二种方法进入帮助窗口:命令窗口中有二种方法进入帮助窗口:(1)单击菜单条上的问号按钮。)单击菜单条上的问号按钮。(2)选取帮助菜单里的)选取帮助菜单里的“
18、 Help”项。项。262.3 帮助系统2.4.1 数据与数据类型2.4.2 数据文件2.4.3 运算符运算符2.4.4 基本数学函数2.4.5 M文件2.4.6 程序控制语句272.4 MATLAB语言基础1. 常量常量282.4.1 数据与数据类型常量名常量值常量名常量值i , j虚数单位,定义为realmin最小的正浮点数,2-1022pi圆周率realmax最大的浮点数,21023eps浮点数的相对误差intmax 最大正整数,2147483647NaN/nan表示不定值,即0/0intmin 最小负整数,-2147483648Inf/inf无穷大 常量是指在计算过程中不变的量,如常量
19、是指在计算过程中不变的量,如123,3.14159,1.3e-8, China,true,都是一些常量。都是一些常量。除此之外,除此之外,MATLAB中有一些预定义的常量中有一些预定义的常量2.变量变量 变量是用于存储数据的内存空间变量是用于存储数据的内存空间. MATLAB不需要对所使用的变量进行事先声明,也不需不需要对所使用的变量进行事先声明,也不需要指定变量的类型,它会自动根据所赋予变量的值或对要指定变量的类型,它会自动根据所赋予变量的值或对变量所进行的操作来确定变量的类型。变量所进行的操作来确定变量的类型。 变量命名必须遵循如下规则:变量命名必须遵循如下规则: 变量名区分大小写字母,因
20、此变量名区分大小写字母,因此a与与A是两个不同的变量;是两个不同的变量; 变量名以字母开头,变量名中可以包含字母、数字和下变量名以字母开头,变量名中可以包含字母、数字和下划线,但不能使用标点;划线,但不能使用标点; 变量名最多包含变量名最多包含63个字符,之后的字符将被忽略;个字符,之后的字符将被忽略;292.4.1 数据与数据类型注注1 1:任何的变量均被视为一个矩阵(数组),单一的任何的变量均被视为一个矩阵(数组),单一的数被看作数被看作11矩阵。矩阵。注注2: 2: 在赋值过程中,如果变量已存在,在赋值过程中,如果变量已存在,MATLAB将使用将使用新值代替旧值,并以新的变量类型代替旧的
21、变量类型。新值代替旧值,并以新的变量类型代替旧的变量类型。302.4.1 数据与数据类型3. 数据类型数据类型 为了适应多种运算的需要,MATLAB提供了多种数据类型,这些数据类型最大的特点是每一种类型都以数组为基础,从数组中派生出来312.4.1 数据与数据类型(1) 逻辑型(BOOLEAN):表示“真”、“假”的数据,“真”、“假”可以用true或flase表示,但输出时用1和0来表示。例如,定义变量f并赋值为真:f=true f= 1322.4.1 数据与数据类型 332.4.1 数据与数据类型 整数型:又分为整数型:又分为4个有符号的和个有符号的和4个无符号的整数。个无符号的整数。 i
22、nt8: 占占1Byte,数据范围,数据范围-128127 int16: 占占2Byte,数据范围,数据范围-3276832767 int32: 占占4 Byte,数据范围,数据范围-231 231-1 int64: 占占8Byte,数据范围,数据范围-263 263-1 uint8: 占占1Byte,数据范围,数据范围0255 uint16:占占2Byte,数据范围,数据范围065535 uint32:占占4 Byte,数据范围,数据范围0232 -1 uint64:占占8Byte,数据范围,数据范围0264 -1342.4.1 数据与数据类型2.4.1 数据与数据类型35注:注:在在MAT
23、LAB中可以使用复数,一个复数实际上是由两部中可以使用复数,一个复数实际上是由两部分组成:实部和虚部。复数的数据类型是由实部和虚部分组成:实部和虚部。复数的数据类型是由实部和虚部的类型决定的,设的类型决定的,设c=a+biu若若a和和b都为都为single型,则型,则c为为single型;型;u若若a和和b中有一个整型,则另一个要么是同类型的整中有一个整型,则另一个要么是同类型的整型,要么是型,要么是double,则,则c是同类型的整型;是同类型的整型;生成一个复数有两种方法:生成一个复数有两种方法:c=1+2i 或或 c=complex(1,2)362.4.1 数据与数据类型(3) 字符和字
24、符串字符和字符串(TEXT):这种数据就是我们通常所说的文本,在MATLAB中每个字符占2个字节,不管是字符还是字符串都用单引号括来。如: c1=A c2=China;(4) 结构体结构体(STRUCT):是指由不同数据类型的数据组成的一个数据集合,其中的每个元素称为一个数据域,数据域的数据类型和大小可以是任意的。每个数据域通过数据域的名字来进行访问。如把一个学生的信息存储到一个结构体变量student中: =Li Ming; student.num=201408010100; student.age=20;(5) 单元数组单元数组(CELL ARRAY):是由不同数据
25、类型的数据组成的一个数据集合,其中每个元素称为一个单元,单元的数据类型和大小可以是任意的,每个单元通过下标来进行访问。myCell = 1, 2, 3, text, rand(3,4), 11; 22; 33访问单元数组中的单元有两种方法访问单元数组中的单元有两种方法:u用圆括号(),其结果是单元的集合,也就是就说结果还是一个单元数组。如读取myCell中的第4个单元:x1=myCell(4)u用大括号,其结果是单元的内容,如: x2=myCell4372.4.1 数据与数据类型(6) 函数句柄函数句柄(Function Handle):是在MATLAB中用来提供间接调用函数的数据类型。u函数
26、句柄可以转递给其他函数,也可以存储,利用函数句柄在函数的正常范围之外调用该函数。u创建函数句柄用符号加函数名,如定义一变量保存sin的函数句柄:h=sin;h(pi/6);382.4.1 数据与数据类型392.4.1 数据与数据类型4. 数据类型的转换数据类型的转换(1) 数值数据之间的转换 B = single(A) 将A的数据类型转换为单精度实数。 如:x=single(123); 则变量x为单精度实数类型。 Bdouble(A) 将A的数据类型转换为双精度实数。 Bint8(A) 将A的数据类型转换为8位有符号整数。 如:i=int8(123); 则变量i为8位整数类型。402.4.1
27、数据与数据类型(2) 字符串转换为数值字符串转换为数值d = base2dec(string, base) 把base进制表示的数值字符串string转换为十进制数。如:n=base2dec(213,8); n的值为139d=bin2dec(string) 把二进制表示的数值字符串转换为十进制数d = hex2dec(hex_value) 把十六进制表示的数值字符串转换为十进制数d = str2double(string) 把字符串转换为双精度实数,字符串中可以包含数字、一个逗号(千位分隔符)、一个小数点、一个+或-号(在最左边)、一个字母e表示10的幂、一个字母i表示虚数单位。2.4.1 数
28、据与数据类型41(3) 数值转换为字符串数值转换为字符串S = char(X) 把非负整数X转换为ASCII码为X的字符。如:c=char(65); c的值为A。str = dec2base(d, base) 把非负整数d转换为base进制数的字符串,2base36。str = dec2bin(d) 把非负整数d转换为二进制数的字符串。str = dec2hex(d) 把非负整数d转换为十六进制数的字符串。str = int2str(N) 把整数N转换为字符串。str = num2str(A) 把数值A转换为字符串,若A是浮点数,转换后的字符串依赖于A的数据范围。1. 数据文件的类型数据文件的
29、类型MATLAB使用的数据文件大致有如下几种:MATLAB标准数据文件:扩展名为.mat。文本文件:扩展名可以为任意,常见的是.txt。电子表格文件:扩展名为.xls或.xlsx。图像文件:扩展名为.bmp,.jpg,.tif,.gif等。声音文件:扩展名为.wav等。(1) 视频文件:扩展名为.mov,.mpg,.mp4,.avi等。422.4.2数据文件数据文件2. 数据的导入与导出数据的导入与导出 数据的导入是将以文件形式保存的数据从外存装入内存的工作空间中,以便进行数据处理;数据导出是将工作空间中的数据从内存保存到外存的文件中,以便长期保存。 数据导入的最简单方法是使用“File”菜单
30、中的“Import Data”命令。432.4.2数据文件数据文件(1) MATLAB标准数据文件和文本文件数据的导入与导出save(filename):所有变量以二进制格式存入名为filename.mat文件,若省略filename则默认文件名为matlab.mat。save(filename,variables):将当前工作空间中variabler所列的变量存入filename.mat文件,variables 有多个变量时用逗号分隔。save(filename,-ascii):将当前工作空间中的变量以8位文本格式存入filename.mat文件。save(filename,-append)
31、:添加数据到已有filename.mat文件中,若filename为二进制文件则用工作空间中新的值替换文件中已有的变量的值,若为文本文件则将数据添加到文件末尾。442.4.2数据文件数据文件load(filename):把数据文件filename.mat的数据装入内存的工作空间中。若省略filenamem则把当前文件夹中的数据文件matlab.mat(缺省的文件名)的数据装入内存。 load(filename, varibles):把数据文件filename.mat中varibles所列的变量装入内存中。load(filename, -ascii):把数据文件filename的内容读入内存,这
32、是一个ASCII码文件,系统自动将文件名(filename)定义为变量名。 注意:注意:上述两个函数也可以使用命令形式调用:452.4.2数据文件数据文件例2-4 定义三个变量a=1,b=2,c=3,全部存入文件mydata中,再把b、c存入另一个文件中;清空工作空间后,检查工作空间,再调入变量a,再检查工作空间。 a=1;b=2; c=3; save mydata save mydata1 b c clear %清空工作空间 whos %检查工作空间,已没有任何变量 load mydata a whos 462.4.2数据文件数据文件(2) 电子表格文件数据的导入与导出电子表格文件数据的导入
33、与导出num,txt,raw = xlsread(filename,sheet,range)其中,filename是电子表格的文件名,sheet是工作表的名称或编号,range是工作表中单元格的范围。从工作表中读取的数值数据存入数值数组num中,读取的文本数据存入单元数组txt中,文本和数值数据存入单元数组raw中。xlswrite(filename,A,sheet,range)其中,A是一个数值或文本数组,其它同xlswrite函数。472.4.2数据文件数据文件(3) 图像文件数据的导入与导出图像文件数据的导入与导出A= imread(filename, fmt)其中,filename是图
34、像文件名,fmt是图像文件格式(文件的扩展名),读取的数据存入变量A中。imwrite(A,filename,fmt)其中,A是图像数据,其他参数与imread函数中的相同。注注:imshow函数的作用是显示图像482.4.2数据文件数据文件(4) 声音文件(声音文件(.wav)数据的导入与导出)数据的导入与导出y, Fs, nbits, opts = wavread(filename)该函数可返回4个值,声音采样的数据存入变量y中,声音采样的频率存入Fs中,单位是Hz,每个采样数据所占用的字节数存入nbits中,声音文件中的其他信息存入opts中,不同的声音文件其信息是不同的。wavwrit
35、e(y,Fs,filename)注:注:函数sound的作用是播放声音。492.4.2数据文件数据文件2.4.2数据文件数据文件50(5) 视频文件数据的导入与导出视频文件数据的导入与导出MATLAB提供了2个函数VideoReader的VideoWriter来实现视频文件的导入与导出,详细使用方法本书不再陈述,请读者查阅有关书籍。1、算术运算符、算术运算符 MATLAB的算术运算可以分为两类:数组运算和矩阵运算。 数组运算是对应元素之间的运算,运算符有:+(加)、-(减)、.*(乘)、./(右除)、.(左除)、+(正)、-(负)、.(乘方) 。 矩阵运算是按照矩阵的运算规则进行,运算符有:
36、*(矩阵乘)、/(矩阵右除)、(矩阵左除)、.(转置)、(共轭转置)、(矩阵乘方) 注:注:上述运算符的运算量可以是标量、向量或矩阵。注:不同类型的运算量512.4.3 运算符2、关系运算符、关系运算符 MATLAB提供了提供了6种关系运算符,用于比较两个同维种关系运算符,用于比较两个同维矩阵的对应位置元素,结果为同维的矩阵的对应位置元素,结果为同维的0-1矩阵,矩阵,1表示表示比较结果为真,比较结果为真,0表示比较结果为假。表示比较结果为假。 其中一个操作为标量时,表示该标量与矩阵的每个元其中一个操作为标量时,表示该标量与矩阵的每个元素进行关系运算,结果为与操作数矩阵同维的素进行关系运算,结
37、果为与操作数矩阵同维的0-1矩阵。矩阵。 小于小于 大于大于 = 大于等于大于等于 = 等于等于 = 不等于不等于522.4.3 运算符3、逻辑运算符、逻辑运算符 MATLAB提供了提供了3种逻辑运算符,即与种逻辑运算符,即与 &(AND),或,或| (OR),非非 (NOT),它们的定义如下:,它们的定义如下: A&B 对同阶矩阵中的对应元素进行逻辑对同阶矩阵中的对应元素进行逻辑&运算,结果是运算,结果是0-1矩阵。矩阵。 A&B 对同阶矩阵中的对应元素进行逻辑对同阶矩阵中的对应元素进行逻辑|运算,结果是运算,结果是0-1矩阵。矩阵。 A 对单个矩阵或标量进行
38、取反运算,结果是对单个矩阵或标量进行取反运算,结果是0-1矩阵。矩阵。532.4.3 运算符4、特殊操作符、特殊操作符(1)冒号操作符)冒号操作符“:” 冒号冒号“:”可以可以 生成向量生成向量 i:j 如果如果ij,则则x为空向量。为空向量。 i:k:j 如果如果k0且且ij或或kj,则生成行向量,则生成行向量 i,i+k,i+2k,i+3k,m,m与与j的差的绝对值小于等于的差的绝对值小于等于k的的绝绝 对值。如果对值。如果k0且且ij或或k0且且i j,则,则x为空向量。为空向量。542.4.3 运算符 MATLAB中还提供了一个创建向量的函数中还提供了一个创建向量的函数linspace
39、,调用格式如下:调用格式如下: V=linspace(a,b,n) 表示创建一个行向量表示创建一个行向量V,V是一个是一个包含包含n个元素的等差数列,它的第一个元素是个元素的等差数列,它的第一个元素是a,最后,最后一个元素是一个元素是b。不指定。不指定n时时 ,n的值默认是的值默认是100,n2时时 返回返回b。 此函数和冒号创建等差数列不同的是,此函数和冒号创建等差数列不同的是,i:k:j创建的创建的数组中,数组中,j可能取不到。可能取不到。552.4.3 运算符 类似类似Matlab中还有创建等比数列的函数中还有创建等比数列的函数logspace,调用格式如下:调用格式如下: V=logs
40、pace(a,b,n) 表示创建一个行向量表示创建一个行向量V,V是一个是一个包含包含n个元素的等比数列,它的第一个元素是个元素的等比数列,它的第一个元素是10a,最后一个元素是最后一个元素是10b。不指定。不指定n时时 ,n的值默认是的值默认是50,n2时,返回时,返回10b。562.2.2 运算符 (2)百分号百分号“%” 百分号百分号“%”在编程时引导注释行。该操作符后的内容被作在编程时引导注释行。该操作符后的内容被作为注释内容,程序执行时被忽略。为注释内容,程序执行时被忽略。 (3) 换行连接符换行连接符“” 如果一个命令语句非常长,一行容纳不下,可以分几行来写。在行末加上换行连接符“
41、”再回车即可在下一行接着写该语句。注意:注意:如果换行连接符前面是数字,直接使用换行连接符会出错,有两种解决方法: 再加一个点,即四个点“.”; 先空一格 然后再输入换行连接符。572.2.2 运算符2.2.2 运算符5. 运算符的优先级运算符的优先级当一个代数式子中有多个运算符时,要根据运算符的优先级来决定运算顺序,优先当一个代数式子中有多个运算符时,要根据运算符的优先级来决定运算顺序,优先级相同的运算符按自左向右的顺序进行计算,下面按优先级由高到低的顺序列出:级相同的运算符按自左向右的顺序进行计算,下面按优先级由高到低的顺序列出:(1)圆括号圆括号 ()(2)转置转置 (.), 乘方乘方
42、(.), 共轭转置共轭转置 (), 矩阵乘方矩阵乘方 ()(3)正正 (+), 负负 (-), 逻辑非逻辑非 ()(4)乘乘 (.*), 右除右除 (./), 左除左除 (.), 矩阵乘矩阵乘 (*), 矩阵右除矩阵右除 (/), 矩阵左除矩阵左除 ()(5)加加 (+), 减减 (-)(6)冒号冒号 (:)(7)小于小于 (), 小于等于小于等于 (), 大于等于大于等于 (=), 相等相等 (=), 不相等不相等 (=)(8)逻辑与逻辑与 (&)(9)逻辑或逻辑或 (|)(10)短路逻辑与短路逻辑与 (&)(11)短路逻辑或短路逻辑或 (|)581. 三角函数三角函数 我们
43、以正弦函数sin与双曲正弦函数sinh为例说明常用三角函数用法。调用格式如下:Y = sin(X) 计算参量X(可以是向量、矩阵,元素可以是复数)中每一个角度分量的正弦值Y,所有分量的角度单位为弧度。Y = sinh(X) 计算参量X的双曲正弦值Y注意:注意:sin(pi)并不是零,浮点数的计算是有误差的。592.4.4 基本数学函数基本数学函数函数说明函数说明sin、sinh正弦函数与双曲正弦函数asin、asinh反正弦函数与反双曲正弦函数cos、cosh余弦函数与双曲余弦函数acos、acosh反余弦函数与反双曲余弦函数tan、tanh正切函数与双曲正切函数atan、atanh反正切函数
44、与反双曲正切函数cot、coth余切函数与双曲余切函数acot、acoth反余切函数与反双曲余切函数sec、sech正割函数与双曲正割函数asec、asech反正割函数与反双曲正割函数csc、csch余割函数与双曲余割函数acsc、acsch反余割函数与反双曲余割函数。 atan2四象限的反正切函数2. 取整和求余函数取整和求余函数602.4.4 基本数学函数基本数学函数函数说明函数说明fix(A)朝零方向取整rem(X,Y)无符号求余函数round(A)朝最近的方向取整mod(X,Y)带符号求余函数ceil(A)朝正无穷大方向取整floor(A)朝负无穷大方向取整3. 其它常用函数其它常用函
45、数612.4.4 基本数学函数基本数学函数函数功能函数功能exp(X)以e为底数的指数函数abs(X)数值的绝对值与复数的幅值log(X)自然对数,以e为底数的对数imag(X)复数的虚数部分log10(X)常用对数,以10为底数的对数real(X)复数的实数部分log2(X)以2为底数的对数angle(X)复数的相角pow2(X)2的指数sqrt(X)求平方根 M文件是由文件是由MATLAB命令或函数构成的文本文件,以命令或函数构成的文本文件,以m为为扩展名,故称为扩展名,故称为M文件。在文件。在M文件的语句中可以引用另外文件的语句中可以引用另外的的M文件,也可以递归地调用自身。文件,也可以
46、递归地调用自身。M文件有两种形式,文件有两种形式,即命令文件即命令文件(Script)和函数文件和函数文件(Function)。 (a)命令文件是命令和函数的组合,执行命令文件不需)命令文件是命令和函数的组合,执行命令文件不需要输入参数,也没有输出参数,要输入参数,也没有输出参数, MATLAB自动按顺序执行命令文件中的命令,命令文自动按顺序执行命令文件中的命令,命令文件的变量保存在工作空间中。件的变量保存在工作空间中。622.4.5 M文件 (b)函数文件是以)函数文件是以function语句为引导的语句为引导的M文件,文件,可以接受输入参数和返回输出参数。可以接受输入参数和返回输出参数。
47、在缺省情况下,函数文件的内部变量是临时的局在缺省情况下,函数文件的内部变量是临时的局部变量,函数运行结束后,这些局部变量被释部变量,函数运行结束后,这些局部变量被释放,不再占用内存空间。用户可以根据自己的放,不再占用内存空间。用户可以根据自己的需要编制函数文件以扩充已有的需要编制函数文件以扩充已有的MATLAB功能。功能。632.4.5 M文件(1)M文件的建立文件的建立 M文件可以用任何文本编辑器生成,这里我们介绍如何在程序文件可以用任何文本编辑器生成,这里我们介绍如何在程序编辑器中建立编辑器中建立M文件,步骤如下:文件,步骤如下: 打开M文件编辑器(MATLAB Editor):选择Fil
48、eNew Script 或FileNew Function.或单击New Script按钮; 输入程序:在“ Editor”窗口输入MATLAB程序; 保存程序:选择File Save,出现一个对话框,在文件名框中键入一个文件名(如 example.m),单击“保存”按钮一个M文件便保存在磁盘上了,便于修改、调用、运行和今后访问。注:M文件的命名规则和变量的命名规则相同,不同的是函数M文件名在Unix平台上是对大小写敏感的,但是在Windows平台上是不分大小写的,习惯上对M文件名只使用小写字母。642.4.5 M文件 (2)命令文件)命令文件 命令文件没有输入输出参数,也不返回输出参数,只是
49、命令文件没有输入输出参数,也不返回输出参数,只是一些命令行的组合,是最简单的一些命令行的组合,是最简单的M文件。命令文件适用文件。命令文件适用于自动执行系列于自动执行系列MATLAB命令和函数,避免在命令窗口重命令和函数,避免在命令窗口重复输入。对于复杂计算,采用命令文件最为合适。复输入。对于复杂计算,采用命令文件最为合适。 命令文件的构成比较简单,只是一串按用户意图排列而命令文件的构成比较简单,只是一串按用户意图排列而成的成的MATLAB指令集合。指令集合。652.4.5 M文件 命令命令 M文件中的命令可以访问文件中的命令可以访问 MATLAB工作区中的所有变量,工作区中的所有变量,命令文
50、件运行后命令文件运行后 ,所产生的所有变量都驻留在,所产生的所有变量都驻留在 MATLAB工作工作空间(空间(workspace)中,只要用户不使用清除指令()中,只要用户不使用清除指令(clear),), MATLAB指令窗不关闭,这些变量将一直保存在基本工作空指令窗不关闭,这些变量将一直保存在基本工作空间中。间中。 例例2-9利用MATLAB的M文件编辑器,建立一个命令M文件。 文件名文件名example.m x4;y6;z2; itemsxyz662.4.5 M文件 命令文件的运行命令文件的运行 首先将首先将M文件所处目录加入文件所处目录加入MATLAB的搜索路径,或将的搜索路径,或将M
51、文件文件所处目录设为当前路径;然后再命令窗口中直接输入文件名,所处目录设为当前路径;然后再命令窗口中直接输入文件名,注意不要加后缀注意不要加后缀.m。 运行运行example.m的语句为:的语句为: example items= 12 输出结果为输出结果为items=12。672.4.5 M文件 (3 3)函数)函数M M文件文件 函数文件函数文件是以是以functionfunction语句为引导的语句为引导的M M文件,可以接受输文件,可以接受输入参数和返回输出参数入参数和返回输出参数. . 它们能够像库函数一样被别的它们能够像库函数一样被别的M M文件方便地调用,从而可文件方便地调用,从而
52、可扩展扩展MATLABMATLAB的功能。如果对于一类特殊的问题,建立起的功能。如果对于一类特殊的问题,建立起许多函数文件,就能形成工具箱。许多函数文件,就能形成工具箱。 函数文件可以用来传递参数或变量,并且函数文件函数文件可以用来传递参数或变量,并且函数文件中定义的变量都是局部变量,当函数文件运行结束中定义的变量都是局部变量,当函数文件运行结束时,这些变量被清除。时,这些变量被清除。682.4.5 M文件 函数函数M M文件的格式如下:文件的格式如下: 函数定义行函数定义行 函数文件的第一行用关键字函数文件的第一行用关键字“function”function”把把M M文件定义为函数,并指定
53、函数名,文件定义为函数,并指定函数名,函数名应与函数名应与M M文件相文件相同同,同时也定义了函数的输入输出参数,同时也定义了函数的输入输出参数, H1H1行行 H1行是帮助文本的第一行,它紧跟在定义行之后,行是帮助文本的第一行,它紧跟在定义行之后,以以“”开始,该行通常包含的是大写的函数名以及这个开始,该行通常包含的是大写的函数名以及这个函数功能的简要描述,当在函数功能的简要描述,当在MATLAB的命令窗口中使用的命令窗口中使用lookfor命令查找相关的函数时,将只显示命令查找相关的函数时,将只显示H1行。行。 692.4.5 M文件 帮助文本帮助文本 帮助文本是帮助文本是H1H1行与函数
54、体之间的帮助内容,行与函数体之间的帮助内容,也是以也是以“”开始,用于详细介绍函数的功能和用法以及开始,用于详细介绍函数的功能和用法以及其他说明。其他说明。 函数体函数体 函数体是函数的主体部分,函数体中包括该函函数体是函数的主体部分,函数体中包括该函数的全部程序代码,在函数体中可以包括流程控制、输数的全部程序代码,在函数体中可以包括流程控制、输入输出、计算、赋值、注释、图形功能以及对其他函数入输出、计算、赋值、注释、图形功能以及对其他函数和命令文件的调用。和命令文件的调用。 702.4.5 M文件 注释注释 除了函数文件开始部分的帮助文本外,可以除了函数文件开始部分的帮助文本外,可以在函数文
55、件的任何位置添加注释语句,注释语句可在函数文件的任何位置添加注释语句,注释语句可以在一行的开始,也可以跟在一条可执行语句的后以在一行的开始,也可以跟在一条可执行语句的后面面( (同一行中同一行中) ),不管在什么地方,注释语句必须以,不管在什么地方,注释语句必须以“”开始,开始,MATLABMATLAB在执行在执行M M文件时将每一行中文件时将每一行中“”后面的内容全部作为注释,不予以执行。后面的内容全部作为注释,不予以执行。 712.4.5 M文件 函数函数M文件的形式为:文件的形式为: functionfunction输出变量列表输出变量列表=函数名(输入变量列表)函数名(输入变量列表)
56、% H1% H1行行 % % 帮助文本帮助文本 函数体语句函数体语句 %注释注释 函数函数M文件的运行和命令文件的运行和命令M文件不同,大致分两步:文件不同,大致分两步: 给输入变量赋值;给输入变量赋值;1) 调用函数调用函数M文件。文件。 722.4.5 M文件 例例2-10 2-10 输出变量只有一个的函数输出变量只有一个的函数M文件文件fun.m: function f=fun(x) %输出变量只有一个时,输出变量可以不用输出变量只有一个时,输出变量可以不用括起来。括起来。 f=100*x; 一旦该函数文件建立,在一旦该函数文件建立,在MATLAB的命令窗口或别的的命令窗口或别的M 文件
57、里,就可用文件里,就可用下列命令调用:下列命令调用: x23; ffun(x) f= 2300732.4.5 M文件 例例2-11 2-11 输出变量多于一个的函数输出变量多于一个的函数M文件文件fun2.m functionF,G=fun2(x) F=2*x; G=3*x; 可用下列命令调用,可用下列命令调用, x1=4; F1,G1=fun2(x1) F1 = 8 G1 = 12742.4.5 M文件 注意:输出变量如果多于注意:输出变量如果多于1个,则应该用方括个,则应该用方括号括起来,变量之间应该用逗号隔开;当函号括起来,变量之间应该用逗号隔开;当函数无输出参数时,输出参数项空缺或者用
58、空数无输出参数时,输出参数项空缺或者用空的中括号表示如的中括号表示如function results(x)或或function=results(x)752.4.5 M文件 4. 局部变量和全局变量局部变量和全局变量 在函数文件中定义的变量,其它函数和在MATLAB工作空间中是不能访问的,这些变量称为局部变量。如果要实现某些变量在几个函数和工作空间中可以共享,可以把它们定义成全局变量。全局变量用关键字global声明,习惯上将全局变量名用大写字母表示。 如: global A B %定义全局变量A、B。762.4.5 M文件 MATLAB中除了按正常顺序执行程序中的命令和函中除了按正常顺序执行程序中的命令和函数以外,还提供了数以外,还提供了8种控制程序流程的语句,这些语种控制程序流程的语句,这些语句包括句包括for、while、if、switch、try、continue、break、return等。等。772.4.6 程序控制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年征兵体检心理测试题目及答案
- 2026年地产网申测试题及答案
- 2026年测试7岁孩子智力测试题及答案
- 2026年人教版九下历史测试题及答案
- 2026年孩子孤独测试题及答案
- 2026年噪声监测测试题及答案
- 2025-2026学年语言秋天活动教案
- 2026年广告托管智慧城市建设合同
- 2026年工程维护营销推广协议
- 2026年医药研发经销协议
- 初三道德与法治中考复习:开放性设问之倡议书、标语与活动方案专项突破教案
- 2025年合肥高新区社区工作者招聘考试试卷真题
- 中国胃肠间质瘤诊疗指南(2025版)
- 2026福建漳州水仙药业股份有限公司招聘14人考试备考题库及答案解析
- 2026河南开封工程职业学院招聘57人笔试备考试题及答案解析
- 2026年安徽省检察机关招聘书记员考试真题
- 2025年荣耀AI隐私安全白皮书
- 2026届山东省聊城市临清市重点达标名校中考押题生物预测卷含解析
- 2026年高考(湖南卷)化学试题及答案
- 2025 地中海气候的特点和成因课件
- 围手术期营养支持指南
评论
0/150
提交评论