《[数学]matlab数据类型》由会员分享,可在线阅读,更多相关《[数学]matlab数据类型(69页珍藏版)》请在金锄头文库上搜索。
1、MATLAB程序设计MATLAB程序设计第3章数据类型第3章 数据类型MATLAB程序设计第3章数据类型3.1数值类型3.2逻辑类型3.3字符串3.4日期与时间MATLAB程序设计第3章数据类型3.5结构3.6单元数组3.7函数句柄3.8MATLAB类MATLAB程序设计第3章数据类型MATLAB中共有15种基本数据类型和2种自定义类型。MATLAB数据类型关系数组逻辑类字符类数值类单元结构用户类Java类函数句柄int8,uint8 int16,uint16 int32,uint32 int64,uint64singledoubleMATLAB程序设计第3章数据类型3.1 数值类型MATLA
2、B的默认数据存储类型为双精度浮点类型(double),可以利用转化函数存储为其它类型,所有的数值类型数据均可作为数组的索引。一.整数MATLAB中有4种有符号整数类型,4中无符号整数类型。有符号整数类型需要用1位来表示数据的正负,因此它的取值范围小于无符号整数类型。MATLAB程序设计第3章数据类型整数类型的取值范围和类型转化函数数据类型取值范围类型转化函数 有符号8位整数int8 有符号16位整数int16 有符号32位整数int32 有符号64位整数int64 无符号8位整数uint8 无符号16位整数uint16 无符号32位整数uint32 无符号64位整数uint64MATLAB程序
3、设计第3章数据类型如,int8的取值范围:128+127uint8的取值范围:0+255int16的取值范围:32768+32767MATLAB程序设计第3章数据类型MATLAB的默认数据存储类型为double,利用类型转化函数可将数据存储为整数类型,如果有小数部分,四舍五入处理。例:整数类型的转化。在命令窗输入:x=7.503;int8(x)运行结果:ans= 8也可以根据需要利用函数对数据的小数部分进行舍入。MATLAB程序设计第3章数据类型例:转化ASCII码。在命令窗输入:str=01 Aa,int8(str)运行结果:str=01 Aaans=48 49 32 65 97MATLAB
4、程序设计第3章数据类型某个整数类型的变量只能与该整数类型或double类型的变量进行算术运算,其结果仍为该类型的整数。例:整数类型的算术运算。在命令窗输入:x=int16(2)*pi,class(x)运行结果:x=6 ans= int16MATLAB程序设计第3章数据类型整数的取值范围可通过intmax和intmin函数查看。例:查看整数类型的范围。在命令窗输入:intmax(int16),x=int8(500)运行结果:ans=32767x=127MATLAB程序设计第3章数据类型二.浮点数MATLAB的浮点数分为单精度(single)和双精度(double)。默认数据类型double需要6
5、4位存储空间,具体如下:636252510符号指数部分且有 1023的偏移量小数部分Single需要32位存储空间,具体如下:313023220符号指数部分且有 127的偏移量小数部分MATLAB程序设计第3章数据类型直接输入变量值创建的是double类型,创建single类型需要用输入类型转化函数。例:创建浮点数。在命令窗输入:x=35;y= single(-26);a=class(x),b=class(y)运行结果: a = doubleb = singleMATLAB程序设计第3章数据类型继续在命令窗输入:whos(x,y)运行结果:Name Size Bytes Classx 1x1
6、8 double arrayy 1x1 4 single arrayGrand total is 2 elements using 12 bytesMATLAB程序设计第3章数据类型浮点数据类型可与char、single、double、logical、int*、uint*类型的数据进行算术运算,其运算结果如下表所示:浮点类型与各种类型数据运算结果类型singledouble(u)int*charlogicaldoublesingledouble(u)int*doubledoublesinglesinglesinglesinglesingleMATLAB程序设计第3章数据类型例:浮点数与其它类型
7、的运算。在命令窗输入:x=35;y= single(-20);z=int8(25); s=A;a=x+z,b=y+s,c1=class(a),c2=class(b)运行结果: a =60b =45c1 = int8c2 = singleMATLAB程序设计第3章数据类型浮点数的取值范围可通过使用下列函数查看:realmax(double)、 realmax(single)、 realmin(double)、realmin(single) 。例:浮点数的取值范围。在命令窗输入:realmax(double),realmin(double)MATLAB程序设计第3章数据类型运行结果: ans =1
8、.7977e+308ans =2.2251e-308在命令窗输入: realmax(single),realmin(single)运行结果: ans =3.4028e+038ans =1.1755e-038MATLAB程序设计第3章数据类型三.复数MATLAB表示复数时,可用字母i或j表示虚部。创建复数可直接输入或利用函数complex(a,b)。例:创建复数。在命令窗输入:a=2-3i运行结果: a=2.00003.0000iMATLAB程序设计第3章数据类型例:利用函数complex(a,b)创建复数。在命令窗输入:a=2,b=3, complex(a,b)运行结果:a=2 b=3ans=
9、2.00003.0000iMATLAB程序设计第3章数据类型利用函数real(z)和imag(z)可以获得复数z的实部和虚部。例:获得复数的实部和虚部。在命令窗输入:A=1 2;3 4;B=5 6;7 8; Z=complex(A,B), Zr=real(Z), Zi=imag(Z)运行结果:Z=1.0000+5.0000i 2.0000+6.0000i3.0000+7.0000i 4.0000+8.0000iZr=1 2 3 4 Zi=5 6 7 8MATLAB程序设计第3章数据类型四.无穷与非数MATLAB中分别用Inf和Inf表示正无穷和负无穷,用NAN表示非数。例:无穷。在命令窗输入:
10、1/0运行结果: ans=InfMATLAB程序设计第3章数据类型五.判断数据类型 数据类型判断命令命令操作whos x显示数据类型xtype=class(x)将x的数据类型赋给另一个变量isnumeric(x)判断x是否为数值类型isa(x, integer)判断x是否为引号中指定的数值类型 (包括其它数值类型) isreal(x)判断x是否为实数isnun(x)判断x是否为非数isinf(x)判断x是否为无穷isfinine(x)判断x是否为有限数MATLAB程序设计第3章数据类型六. 数据显示形式MATLAB默认数据显示形式是5位长度,可以通过参数选择对话框(FilePreference
11、s)或者利用format函数设置数据的显示形式。例:数据显示形式。在命令窗输入:x=3.1 1e-13运行结果:x=3.1000 0.0000MATLAB程序设计第3章数据类型继续在命令窗输入:format longx运行结果:x=3.10000000000000 0.00000000000010清除清除所设置格式(还原默认格式)的命令是:formatMATLAB程序设计第3章数据类型例:改变进位制显示形式。在命令窗输入:format hexx=uint8(10)运行结果:x=0aMATLAB程序设计第3章数据类型3.2 逻辑类型逻辑类型的变量有两种取值,逻辑真逻辑真和逻辑假逻辑假,分别用“1
12、”和“0”表示。一. 创建逻辑数组创建逻辑数组方式有多种:通过输入“true”或”false”直接创建逻辑数组;通过对数组进行逻辑运算创建;通过MATLAB函数产生逻辑数组;MATLAB程序设计第3章数据类型例:直接创建逻辑数组。在命令窗输入:x=true,false,true运行结果:x=1 0 1MATLAB程序设计第3章数据类型例:利用逻辑运算创建逻辑数组。在命令窗输入:y=7,2,95运行结果:y=1 0 1MATLAB程序设计第3章数据类型例:利用函数创建逻辑数组。在命令窗输入:z=isfinite(5,inf,0.3)判断是否为有限数, 有限数则为真运行结果:z=1 0 1MATL
13、AB程序设计第3章数据类型运算产生逻辑结果的函数函数操作true、false设值为真或假logical数值类型转化为逻辑类型whos c1运行结果: Name Size Bytes Classc1 1x5 10 char array Grand total is 5 elements using 10 bytesMATLAB程序设计第3章数据类型例:串接字符串。在命令窗输入:a=Yanbian;b= University;c2=strcat(a,b)空格加在第2个字 符串的开头运行结果:c2=Yanbian University MATLAB程序设计第3章数据类型如果要创建二维字符数组,则要求
14、每行长度相同每行长度相同。如果长度不同,需要用空格来补充。例:创建字符串数组。在命令窗输入:m=Yanbian ; University补3个空格, 使长度相等运行结果: m =Yanbian UniversityMATLAB程序设计第3章数据类型二. 字符串单元数组字符串数组要求长度相同,给编程带来不便。 通过创建字符串单元数组单元数组可以存储长度可变长度可变的字符串。利用cellstr函数可将字符数组转化为字符串单元数组。例:字符数组转化为字符串单元数组。在命令窗输入:a=Yanbian ; University;b=cellstr(a)运行结果: b=Yanbian University
15、 MATLAB程序设计第3章数据类型字符串单元数组的元素操作函数函数描述cellstr将字符数组转化为字符串单元数组char将字符串单元数组转化为字符数组deblank移除字符串尾部的空格iscellstr判断是否为字符串单元数组sort元素排序strcat串接字符串strcmp比较字符串strmatch查找匹配字符串MATLAB程序设计第3章数据类型三. 字符串的操作1. 字符串的比较字符串的比较函数:strcmp、strncmp、strcmpi、strncmpistrcmp判断两个字符串是否相等;strncmp判断两个字符串的前n个字符是否相等;strcmpi、strncmpi功能与前两个类似,但不区分字符的大小写。MATLAB程序设计第3章数据类型例:字符串比较。在命令窗输入:a=hello;b=help;strcmp(a,b)运行结果:ans