《第2章MATLAB基础.ppt》由会员分享,可在线阅读,更多相关《第2章MATLAB基础.ppt(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第2 2章章 MATLABMATLAB基础基础本章将介绍本章将介绍MATLAB的一些基础知识,包括基本的数据类型、的一些基础知识,包括基本的数据类型、运算符和特殊的符号等,以及运算符和特殊的符号等,以及MATLAB中日期和时间的中日期和时间的表示方法、计时函数的应用。本章的知识是表示方法、计时函数的应用。本章的知识是MATLAB编编程的基础,需要用户多操作,熟练掌握。程的基础,需要用户多操作,熟练掌握。2.1 2.1 数据类型数据类型在在MATLAB中有中有15种基本的数据类型,分别是种基本的数据类型,分别是8种整型数据、种整型数据、单精度浮点型、双精度浮点型、逻辑型、字符串型、单元单精度浮
2、点型、双精度浮点型、逻辑型、字符串型、单元数组、结构体类型和函数句柄。这数组、结构体类型和函数句柄。这15种基本数据类型,种基本数据类型,如表如表2.1所示。所示。2.1.1 2.1.1 数值类型数值类型在在MATLAB中,数值类型分为整数和浮点数,整数分为有符中,数值类型分为整数和浮点数,整数分为有符号整数和无符号整数,浮点数分为单精度浮点数和双精度号整数和无符号整数,浮点数分为单精度浮点数和双精度浮点数。下面介绍整数、浮点数和复数,以及数值的显示浮点数。下面介绍整数、浮点数和复数,以及数值的显示格式等。格式等。整数整数在在MATLAB中共有中共有8种整数类型,其中种整数类型,其中4种为有符
3、号型,种为有符号型,4种种为无符号型。默认的数值类型为双精度浮点型,一般通过为无符号型。默认的数值类型为双精度浮点型,一般通过整型函数将浮点型数据转换为整型数据。整型函数将浮点型数据转换为整型数据。整数整数在在MATLAB中,还有很多的取整函数,可以采用不同的方法中,还有很多的取整函数,可以采用不同的方法将小数转换为整数。将小数转换为整数。浮点数浮点数在在MATLABMATLAB中,浮点数包括单精度浮点数(中,浮点数包括单精度浮点数(singlesingle)和双精度)和双精度浮点数(浮点数(doubledouble)。其中双精度浮点数是)。其中双精度浮点数是MATLABMATLAB中默认的中
4、默认的数据类型。数据类型。在在MATLABMATLAB中,双精度浮点采用中,双精度浮点采用8 8个字节,即个字节,即6464位来表示,其位来表示,其中第中第6363位表示符号,位表示符号,0 0为正,为正,1 1为负,第为负,第52-6252-62位表示指数位表示指数部分,第部分,第0-510-51位表示小数部分。位表示小数部分。在在MATLABMATLAB中,单精度浮点数采用中,单精度浮点数采用4 4个字节,即个字节,即3232位来表示,位来表示,其中第其中第3131位为符号位,位为符号位,0 0为正,为正,1 1为负,第为负,第23-3023-30位为指数位为指数部分,部分,0-220-2
5、2位为小数部分。单精度浮点数比双精度浮点数位为小数部分。单精度浮点数比双精度浮点数能够表示的数值范围和数值精度都小。能够表示的数值范围和数值精度都小。复数复数复数是对实数的扩展,包含实部和虚部两部分,虚部的单位复数是对实数的扩展,包含实部和虚部两部分,虚部的单位是是-1-1的平方根。在的平方根。在MATLABMATLAB中,采用中,采用i i或或j j表示虚部的单位。表示虚部的单位。可以采用赋值语句直接产生复数,也可以采用函数可以采用赋值语句直接产生复数,也可以采用函数complexcomplex()()来产生复数。来产生复数。数据显示格式数据显示格式在在MATLAB中,可以采用函数中,可以采
6、用函数format()确定数值类型的显示确定数值类型的显示格式。改变数值的显示格式后,会一直有效,直到再次利格式。改变数值的显示格式后,会一直有效,直到再次利用函数用函数format()进行修改。进行修改。2.1.2 2.1.2 逻辑类型逻辑类型MATLAB中的运算包括数值计算、关系计算和逻辑计算。关中的运算包括数值计算、关系计算和逻辑计算。关系计算和逻辑计算的结果为逻辑类型。逻辑类型数据只有系计算和逻辑计算的结果为逻辑类型。逻辑类型数据只有逻辑真和逻辑假。逻辑真和逻辑假。MATLAB中用中用1代表逻辑真,用函数代表逻辑真,用函数true表示;用表示;用0代表逻辑假,用函数代表逻辑假,用函数f
7、alse表示。逻辑真和表示。逻辑真和逻辑假都占用逻辑假都占用1个字节的存储空间。个字节的存储空间。此外,可以采用函数此外,可以采用函数logical()将数值型转换为逻辑型,任何将数值型转换为逻辑型,任何非非0数值转换为逻辑真(即数值转换为逻辑真(即1);数值);数值0转换为逻辑假(即转换为逻辑假(即0)。)。2.1.3 2.1.3 字符和字符串字符和字符串在在MATLAB中,字符型数据类型用中,字符型数据类型用char表示。字符和字符串表示。字符和字符串不进行区分,将单个字符看成是的字符串,都用单引号不进行区分,将单个字符看成是的字符串,都用单引号()括起来。字符串中的每个字符占用)括起来。
8、字符串中的每个字符占用2个字节的存储个字节的存储空间。空间。在本书的第在本书的第4章专门介绍章专门介绍MATLAB中的字符串和字符串处理中的字符串和字符串处理函数,包括字符串的比较、查找和替换等等。函数,包括字符串的比较、查找和替换等等。2.1.4 2.1.4 函数句柄函数句柄在在MATLAB中,通过函数句柄来间接调用函数,函数句柄的中,通过函数句柄来间接调用函数,函数句柄的数据类型为数据类型为function_handle。函数句柄可以通过符号。函数句柄可以通过符号后面跟函数命令来创建,例如程序后面跟函数命令来创建,例如程序fhandle=cos,创建,创建了函数了函数cos()的函数句柄,
9、以后就可以通过函数句柄的函数句柄,以后就可以通过函数句柄fhandle来间接调用函数来间接调用函数cos()。2.1.6 2.1.6 单元数组类型单元数组类型单元数组是一种比较特殊的数据类型,每个元素都以单元的单元数组是一种比较特殊的数据类型,每个元素都以单元的形式存在。在形式存在。在MATLAB中,采用大括号()建立单中,采用大括号()建立单元数组,也可以采用函数元数组,也可以采用函数cell()来建立单元数组。在获取来建立单元数组。在获取单元数组的元素时,也采用大括号表示下标。单元数组的元素时,也采用大括号表示下标。1函数函数cell()2函数函数celldisp()3函数函数cellpl
10、ot()4函数函数iscell()和函数和函数num2cell()5函数函数cell2struct()2.1.6 2.1.6 结构体类型结构体类型结构体是按照成员变量名组织起来的不同数据类型数据的集结构体是按照成员变量名组织起来的不同数据类型数据的集合。结构体类似于合。结构体类似于C语言的结构体数据。每个成员变量用语言的结构体数据。每个成员变量用指针操作符指针操作符“.”表示,例如表示,例如A.name表示结构体变量表示结构体变量A的的name成员变量。在成员变量。在MATLAB中结构体类型常用的函数如中结构体类型常用的函数如表表2.7所示。所示。2.1.6 2.1.6 结构体类型结构体类型1
11、.函数函数struct()产生结构体变量产生结构体变量;2.函数函数rmfield()来删除结构体中的成员变量来删除结构体中的成员变量;3.函数函数isstruct()来判断是否为结构体变量来判断是否为结构体变量;4.函数函数isfield()来判断是否为结构体变量来判断是否为结构体变量 的成员变量;的成员变量;5.函数函数fieldnames()获得结构体的成员变量名字获得结构体的成员变量名字;6.函数函数orderfields(S)按照成员变量的字母顺序排序;按照成员变量的字母顺序排序;7.函数函数getfield()取得存储在结构体中的成员变量的值取得存储在结构体中的成员变量的值;8.函
12、数函数setfield()用于给结构体的成员变量设置新值用于给结构体的成员变量设置新值;9.函数函数struct2cell()将结构体变量转换为单元数组将结构体变量转换为单元数组。2.2 2.2 运算符运算符在在MATLAB中,提供了丰富的运算符,主要包括算数运算、中,提供了丰富的运算符,主要包括算数运算、关系运算和逻辑运算。算数运算用于数值计算。关系运算关系运算和逻辑运算。算数运算用于数值计算。关系运算和逻辑运算的返回值为逻辑型变量,其中和逻辑运算的返回值为逻辑型变量,其中1代表逻辑真,代表逻辑真,0代表逻辑假。代表逻辑假。2.2.1 2.2.1 算数运算符算数运算符MATLAB提供的基本算
13、术运算有:加(提供的基本算术运算有:加(+)、减()、减(-)、乘)、乘(*)、除()、除(/)和乘方()和乘方()。常用的算数运算符如表)。常用的算数运算符如表2.8所示。对于标量和数组,是以元素为单元进行运算。对于所示。对于标量和数组,是以元素为单元进行运算。对于数组和矩阵的运算,将会在第数组和矩阵的运算,将会在第3章详细的介绍。章详细的介绍。2.2.2 2.2.2 关系运算符关系运算符关系运算用于比较两个操作数的大小,返回值为逻辑型变量。关系运算用于比较两个操作数的大小,返回值为逻辑型变量。在在MATLAB中,关系运算符如表中,关系运算符如表2.9所示。当所示。当2个操作数个操作数都是数
14、组或矩阵时,这都是数组或矩阵时,这2个操作数的维数必须相同,否则个操作数的维数必须相同,否则会显示出错信息。会显示出错信息。2.2.3 2.2.3 逻辑运算符逻辑运算符在在MATLAB中,逻辑运算分为中,逻辑运算分为3类,分别是逐个元素的逻辑类,分别是逐个元素的逻辑运算、快速逻辑运算和逐位逻辑运算。逐个元素的逻辑运运算、快速逻辑运算和逐位逻辑运算。逐个元素的逻辑运算有算有3种,分别是逻辑与(种,分别是逻辑与(&)、逻辑或()、逻辑或(|)和逻辑非)和逻辑非(),如表),如表2.10所示。在进行两个数组或矩阵的逻辑与所示。在进行两个数组或矩阵的逻辑与和逻辑或时,必须具有相同的维数。和逻辑或时,必
15、须具有相同的维数。2.2.3 2.2.3 逻辑运算符逻辑运算符在在MATLAB中,有两个快速逻辑运算符,逻辑与(中,有两个快速逻辑运算符,逻辑与(&)和逻)和逻辑或(辑或(|),如表),如表2.11所示。所示。&运算符和运算符和&运算符非常相近。运算符非常相近。&运算符,在参与运算的第一个操作数为假时,直接返回运算符,在参与运算的第一个操作数为假时,直接返回假,不再计算第二个操作数。假,不再计算第二个操作数。|操作符,在参与运算的第操作符,在参与运算的第一个操作数为真时,直接返回真,不再判断第二个操作数。一个操作数为真时,直接返回真,不再判断第二个操作数。2.2.3 2.2.3 逻辑运算符逻辑
16、运算符在在MATLAB中,可以对二进制数进行逐位逻辑运算,并将运中,可以对二进制数进行逐位逻辑运算,并将运算的结果转换为十进制数。算的结果转换为十进制数。2.2.4 2.2.4 运算优先级运算优先级在在MATLAB中进行算数运算、逻辑运算和关系运算时,不同中进行算数运算、逻辑运算和关系运算时,不同的运算符有不同的优先级。在进行运算时,按照运算符的的运算符有不同的优先级。在进行运算时,按照运算符的优先级,从高到低进行运算。对于相同优先级的运算符,优先级,从高到低进行运算。对于相同优先级的运算符,按照从左到右的顺序进行。按照从左到右的顺序进行。2.3 2.3 日期和时间日期和时间在在MATLAB中
17、,提供了很多函数来处理日期和时间,用户可中,提供了很多函数来处理日期和时间,用户可以方便的根据日历找到某一天,也可以对日期和时间进行以方便的根据日历找到某一天,也可以对日期和时间进行运算。此外,运算。此外,MATLAB还可以方便的计时,例如计算程还可以方便的计时,例如计算程序的运行时间等。序的运行时间等。2.3.1 2.3.1 日期和时间的表示形式日期和时间的表示形式在在MATLAB中,采用函数中,采用函数clock()获取当前的日期,为一个获取当前的日期,为一个向量,分别表示年、月、日、时、分和秒;向量,分别表示年、月、日、时、分和秒;函数函数date()获得当前的日期;获得当前的日期;函数
18、函数now()返回采用双精度数据表示的当前日期;返回采用双精度数据表示的当前日期;函数函数calender()显示当月的日历显示当月的日历;函数函数weekday()产生星期几,返回值包括星期的数字和星期产生星期几,返回值包括星期的数字和星期的字符串;的字符串;函数函数eomday()返回一个月的最后一天。返回一个月的最后一天。2.3.2 2.3.2 日期和时间的格式转换日期和时间的格式转换在在MATLAB中,提供了中,提供了3种表示日期的格式,分别是双精度种表示日期的格式,分别是双精度日期、字符串以及数值向量。这些日期格式可以互相转换,日期、字符串以及数值向量。这些日期格式可以互相转换,通过
19、函数通过函数datestr()、函数、函数datevec()和函数和函数datenum()。函数函数datestr()将日期数字和日期向量转化为日期字符串将日期数字和日期向量转化为日期字符串。函数函数datenum()将日期字符串和日期向量转化为数字将日期字符串和日期向量转化为数字。函数函数datevec()将日期数字和日期字符串转化为日期向量将日期数字和日期字符串转化为日期向量。2.3.2 2.3.2 日期和时间的格式转换日期和时间的格式转换在在MATLAB中,提供了中,提供了3种表示日期的格式,分别是双精度种表示日期的格式,分别是双精度日期、字符串以及数值向量。这些日期格式可以互相转换,日
20、期、字符串以及数值向量。这些日期格式可以互相转换,通过函数通过函数datestr()、函数、函数datevec()和函数和函数datenum()。函数函数datestr()将日期数字和日期向量转化为日期字符串将日期数字和日期向量转化为日期字符串。函数函数datenum()将日期字符串和日期向量转化为数字将日期字符串和日期向量转化为数字。函数函数datevec()将日期数字和日期字符串转化为日期向量将日期数字和日期字符串转化为日期向量。2.3.2 2.3.2 日期和时间的格式转换日期和时间的格式转换采用函数采用函数tic、toc、cputime和和etime 等进行计时。等进行计时。函数函数ti
21、c和函数和函数toc:函数:函数tic启动一个秒表,函数启动一个秒表,函数toc停止这停止这个秒表,并计算出所经历的时间。这两个函数配合使用,个秒表,并计算出所经历的时间。这两个函数配合使用,可以计算程序或函数的运行时间。可以计算程序或函数的运行时间。函数函数cputime:该函数返回用秒表示的、从当前的:该函数返回用秒表示的、从当前的Matlab启启动之后所用的动之后所用的CPU时间,单位为秒。时间,单位为秒。函数函数etime(t1,t0):该函数返回参数和之间的时间,单位为:该函数返回参数和之间的时间,单位为秒。秒。2.4 MATLAB2.4 MATLAB中的常量和变量中的常量和变量在在
22、MATLAB中,有一些常量已经预先进行了定义,这些常量中,有一些常量已经预先进行了定义,这些常量如表如表2.17所示。在所示。在MATLAB中,用中,用INF或或inf表示无穷大。表示无穷大。MATLAB允许的最大数是允许的最大数是21024,如果超过这个数,就被,如果超过这个数,就被认为是无穷大。例如,在命令行窗口输入认为是无穷大。例如,在命令行窗口输入1/0,则显示警,则显示警告信息,返回值为无穷大告信息,返回值为无穷大inf。2.4 MATLAB2.4 MATLAB中的常量和变量中的常量和变量2.4 MATLAB2.4 MATLAB中的常量和变量中的常量和变量在在MATLAB中,中,对变
23、量的命名有如下规则:对变量的命名有如下规则:1.变量名的长度不超过变量名的长度不超过31个字符,超过的字符,系统将忽略个字符,超过的字符,系统将忽略不计。不计。2.变量名区分大小写,例如变量名变量名区分大小写,例如变量名var1和和Var1是不同的。是不同的。3.变量名必须以字母开头,变量名中可以包含字母、数字变量名必须以字母开头,变量名中可以包含字母、数字和下划线。和下划线。2.5 2.5 本章小结本章小结本章介绍了本章介绍了MATLAB的基本数据类型,包括数值型、逻辑型、的基本数据类型,包括数值型、逻辑型、结构体和单元数组,以及结构体和单元数组,以及MATLAB的算数运算、逻辑运的算数运算、逻辑运算和关系运算,最后介绍了日期和时间函数。本章是算和关系运算,最后介绍了日期和时间函数。本章是MATLAB的基础,需要读者反复练习、仔细分析和体会,的基础,需要读者反复练习、仔细分析和体会,熟练掌握。熟练掌握。