第4章MATLAB的数据类型52.ppt
《第4章MATLAB的数据类型52.ppt》由会员分享,可在线阅读,更多相关《第4章MATLAB的数据类型52.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第4章MATLAB的数据类型52 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第4章 MATLAB7.0的数据类型教学重点:MATLAB7.0支持15种基本的数据类型,每一种类型的数据都是以矩阵或数组的形式表现出来。本章主要介绍数值类型、逻辑类型和字符串类型。4.1 MATLAB中的数据类型MATLAB7.0支持多种数据类型,包括:数值类型:包含8种整数类型、单精和双精浮点类型;字符和字符串:常以向量数列的形式表示;逻辑类型:0和1两个数值,表示逻辑真和假;元胞
2、、构架:可以包含不同类型数据;函数句柄:函数的指针,可以通过其调用函数。用户还可以通过MATLAB“类”(class)建立自定义数据类型。所有类型的数据都被存储在矩阵或数组中进行操作,矩阵和数组可以从最小的空矩阵到任意的n维。4.2 数值类型数值类型包括有符号整数类型、无符号整数类型、单精度浮点类型和双精度浮点类型,如图所示。4.2.1 整数类型MATLAB数值类型中的整数类型包括有符号、无符号整数类型各4种,分别是1-、2-、4-和8-字节(8位、16位、32位和64位)的整数类型。有符号类型允许表示负数,但是由于其需要分配1位字节作为符号位,所以表示的范围没有同等字节的无符号类型大;无符号
3、类型不能表示负数,只能表示正整数和0。根据具体需要,用户应该选择不同的存储类型;例如,对于数值不大的整数“22”,就没有必要使用8-字节的类型来存储,因为1-字节整型所分配的内存空间已经足以满足此数的存储了,应使用字节数少的类型来存储数据,这样可以节省内存空间,提高效率。4.2.1 整数类型表列出了8种整数类型的名称、数值范围和转换函数。表中数据类型的表示范围都可以调用intmax和intmin函数查询各自的表示范围。应用举例:例:生成有符号整数x值为129.x=int8(129)x=127 intmax(int8)ans=127 intmin(int8)ans=-128应用举例:x=int1
4、6(129)x=129查看整数类型:1)whos;2)使用class函数查看所生成整数所属的类型。whos Name Size Bytes Class x 1x1 2 int16 arrayGrand total is 1 element using 2 bytes class(x)ans=int164.2.2 单精度浮点型MATLAB中,浮点数据类型有单精度和双精度两种,其构造规则都是依据IEEE754标准(关于此标准的具体描述,可以查询相关网站)制定。单精度数据需要32位的存储空间,其空间分配如表所示。单精度数据的字节位功能字 节 位代表功能31符号位(0代表正数,1代表负数)30-23指
5、数位027122-01.f中的小数位f4.2.3 双精度浮点类型双精度浮点类型是MATLAB中的默认数值类型,其构造规则与单精度一样,依照IEEE754标准。双精度数据需要64位的存储空间,下表为双精度空间分配表。双精度数据的字节位功能字 节 位代表功能63符号位(0代表正数,1代表负数)62-52指数为0210151-01.f中的小数位f应用举例:例:生成整数x,值为2,并分别转化为单精度浮点数y和双精度浮点数z。x=2x=2 Matlab默认生成的数据类型为双精度浮点型 whos Name Size Bytes Class x 1x1 8 double array x=int8(2)x=2
6、 whos Name Size Bytes Class x 1x1 1 int8 array应用举例:y=single(x)y=2 z=double(x)z=2 whos Name Size Bytes Class x 1x1 1 int8 array y 1x1 4 single array z 1x1 8 double array Grand total is 3 elements using 13 bytes4.2.4 复数下面将介绍几种特殊的数据类型,即复数、“无穷”和“非数”等概念。MATLAB7.0中,复数属于双精度浮点数的一种特殊类型,用户可以无须任何特殊操作,把复数作为一个整体
7、进行处理。应用举例:x=3+4ix=3.0000+4.0000i y=3+4jy=3.0000+4.0000i x=yans=1说明:1)”比较结果返回值1,说明i和j在表示虚数单位时意义和用法相同。2)4i(4j)是一个完整的虚部,不可以在中间加空格符号。3)只有数字才可以和i或者j相连,表达式不可以。Xcos(pi/3)i是错误的。4.2.4 复数Matlab7.0中提供了求一个复数的实部、虚部、模和相角的函数分别是:real(z)、imag(z)、abs(z)angle(z)x=3.0000+4.0000i real(x)ans=3 imag(x)ans=4 abs(x)ans=5 an
8、gle(x)ans=0.92734.2.5 无穷在Matlab中有正无穷和负无穷。即“Inf”和“Inf”。常出现在:1)在经典的初等数学中,1/0是错误的表达式(0不能做除数),是没有结果的。但是在MATLAB中,1/0是有意义的,结果为Inf(Infinity)。2)例如,浮点数是有范围的,一旦MATLAB的运算结果超出浮点数的表示范围,系统也会用“-Inf”或“Inf”来表示计算结果。例如,10(308+1)的值超出了MATLAB允许的数值范围,系统用Inf表示。10e(308+1)ans=Inf4.2.6 非数非数(NaN),是“Not a Number”的缩写,是一个既不是实数也不是
9、复数的数值,MATLAB提供这样一个特殊类型的目的是扩大运算范围,有了这样一个数值,系统对于0/0、Inf/Inf的运算结果,也可以有合理的解释。0/0Warning:Divide by zero.%系统警告:0作为除数ans=NaN4.3 逻辑类型MATLAB用“0”和“1”分别代表逻辑“假”和逻辑“真”,逻辑类型数据常以标量形式出现,但有时也可以是逻辑数组(Logical Array)。MATLAB不但提供给用户比较齐全的算数运算符号,作为一种高级语言,同样也支持关系运算和逻辑运算,并且经常在程序中涉及这两种运算,关系和逻辑运算主要是为用户解决程序设计中的“真”、“假”问题。在程序设计中编
10、写代码,特别是在使用各种控制语句的时候,用户常常需要使用这两种运算的结果(“真”或者“假”)作为控制语句的判断条件。在MATLAB中的关系和逻辑运算式中,所有输入非0的数都为“逻辑真”,只有0才为“逻辑假”;而计算结果,即输出为一个逻辑数组,其中的元素,如果值为1,则表示“真”;如果值为0,则表示假。4.3 逻辑类型应用举例:例如,比较10与100这两个数的大小。代码如下所示“10等于100(=表示相等)”这个表达式返回值为0,表示表达式不成立;而“10小于100(10=100 10100ans=ans 0 14.3.2 关系运算符关系运算式的一般格式为:x RO y,“RO”代表关系运算符(
11、Relation Operator),在关系运算符两边进行比较的x和y可以是变量、字符串或者表达式等不同类型的数据,如果表达式正确(True),即x和y之间的关系为RO所描述的关系,则输出结果为“真”,表达式返回数值1;如果表达式不正确(False),即x和y之间的关系不是RO所描述的关系,则输出结果为“假”,表达式返回数值0。Matlab7.0 关系运算符运算符功 能小于大于=大于或者等于=等于=不等于应用举例:例1:比较矩阵a1,2,3;4,5,6;7,8,9和其共轭矩阵之间的关系。说明:行、列数相同的数组可以进行关系运算,运算的原则是把对应的元素逐个运算,并使返回的元素组成一个与原数组同
12、维的逻辑数组,即所有元素非“0”即“1”的数组。非同维的数组之间不能进行关系运算。a=1,2,3;4,5,6;7,8,9a=1 2 3 4 5 6 7 8 9 aans=1 4 7 2 5 8 3 6 9 a=aans=1 0 0 0 1 0 0 0 1应用举例:例2:m为从1到10的一数列,即m=1:10,n=2+(m5),求标量n的值。m=1:10m=1 2 3 4 5 6 7 8 9 10 n=2+(m5)n=2 2 2 2 2 3 3 3 3 3 说明:在上述代码中首先进行(m5)的关系运算,然后把返回的逻辑数组进行“加2”的算数运算,得到标量n的值。关系运算可以与算数运算混合使用。注
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 数据类型 52
限制150内