《matlab数据类型》PPT课件.ppt_第1页
《matlab数据类型》PPT课件.ppt_第2页
《matlab数据类型》PPT课件.ppt_第3页
《matlab数据类型》PPT课件.ppt_第4页
《matlab数据类型》PPT课件.ppt_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MATLAB程序设计,第3章 数据类型,MATLAB中共有15种基本数据类型和2种自定义类型。,MATLAB数据类型关系,数组,逻辑类,字符类,数值类,单元,结构,用户类,Java类,函数句柄,int8,uint8 int16,uint16 int32,uint32 int64,uint64,single,double,3.1 数值类型,MATLAB的默认数据存储类型为双精度浮点类型(double),,可以利用转化函数存储为其它类型,,所有的数值类型数据,均可作为数组的索引。,一.整数,MATLAB中有4种有符号整数类型,4中无符号整数类型。,有符号整数类型需要用1位来表示数据的正负,因此它的

2、,取值范围小于无符号整数类型。,整数类型的取值范围和类型转化函数,如,int8的取值范围:,128+127,uint8的取值范围:,0+255,int16的取值范围:,32768+32767,MATLAB的默认数据存储类型为double,利用类型转化函数,可将数据存储为整数类型,如果有小数部分,四舍五入处理。,例:,整数类型的转化。,在命令窗输入:,x=7.503;,int8(x),运行结果:,ans=,8,也可以根据需要利用函数对数据的小数部分进行舍入。,例:,转化ASCII码。,在命令窗输入:,str=01 Aa,int8(str),运行结果:,str= 01 Aa ans= 48 49

3、32 65 97,某个整数类型的变量只能与该整数类型或double类型的,变量进行算术运算,其结果仍为该类型的整数。,例:,整数类型的算术运算。,在命令窗输入:,x=int16(2)*pi,class(x),运行结果:,x= 6 ans= int16,整数的取值范围可通过intmax和intmin函数查看。,例:,查看整数类型的范围。,在命令窗输入:,intmax(int16),x=int8(500),运行结果:,ans= 32767 x= 127,二.浮点数,MATLAB的浮点数分为单精度(single)和双精度(double)。,默认数据类型double需要64位存储空间,具体如下:,63

4、,6252,510,符号,指数部分且有 1023的偏移量,小数部分,Single需要32位存储空间,具体如下:,31,3023,220,符号,指数部分且有 127的偏移量,小数部分,直接输入变量值创建的是double类型,创建single类型,需要用输入类型转化函数。,例:,创建浮点数。,在命令窗输入:,x=35;y= single(-26);,a=class(x),b=class(y),运行结果:,a = double b = single,继续在命令窗输入:,whos(x,y),运行结果:,Name Size Bytes Class x 1x1 8 double array y 1x1 4

5、 single array Grand total is 2 elements using 12 bytes,浮点数据类型可与char、single、double、logical、int*、uint*,类型的数据进行算术运算,其运算结果如下表所示:,浮点类型与各种类型数据运算结果,例:,浮点数与其它类型的运算。,在命令窗输入:,x=35;y= single(-20);z=int8(25); s=A;,a=x+z,b=y+s,c1=class(a),c2=class(b),运行结果:,a = 60,b = 45,c1 = int8,c2 = single,浮点数的取值范围可通过使用下列函数查看:

6、,realmax(double)、 realmax(single)、 realmin(double)、,realmin(single) 。,例:,浮点数的取值范围。,在命令窗输入:,realmax(double),realmin(double),运行结果:,ans = 1.7977e+308 ans = 2.2251e-308,在命令窗输入:, realmax(single),realmin(single),运行结果:,ans = 3.4028e+038 ans = 1.1755e-038,三.复数,MATLAB表示复数时,可用字母i或j表示虚部。,创建复数可直接输入或利用函数complex(

7、a,b)。,例:,创建复数。,在命令窗输入:,a=2-3i,运行结果:,a= 2.00003.0000i,例:,利用函数complex(a,b)创建复数。,在命令窗输入:,a=2,b=3, complex(a,b),运行结果:,a= 2 b= 3 ans= 2.00003.0000i,利用函数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.0000i 3

8、.0000+7.0000i 4.0000+8.0000i,Zr= 1 2 3 4 Zi= 5 6 7 8,四.无穷与非数,MATLAB中分别用Inf和Inf表示正无穷和负无穷,用,NAN表示非数。,例:,无穷。,在命令窗输入:,1/0,运行结果:,ans= Inf,五.判断数据类型,数据类型判断命令,六. 数据显示形式,MATLAB默认数据显示形式是5位长度,可以通过参数,选择对话框(FilePreferences)或者利用format函数设置,数据的显示形式。,例:,数据显示形式。,在命令窗输入:,x=3.1 1e-13,运行结果:,x=3.1000 0.0000,继续在命令窗输入:,for

9、mat long,x,运行结果:,x= 3.10000000000000 0.00000000000010,清除所设置格式(还原默认格式)的命令是:,format,例:,改变进位制显示形式。,在命令窗输入:,format hex,x=uint8(10),运行结果:,x= 0a,3.2 逻辑类型,逻辑类型的变量有两种取值,逻辑真和逻辑假,分别用,“1”和“0”表示。,一. 创建逻辑数组,创建逻辑数组方式有多种:,通过输入“true”或”false”直接创建逻辑数组;,通过对数组进行逻辑运算创建;,通过MATLAB函数产生逻辑数组;,例:,直接创建逻辑数组。,在命令窗输入:,x=true,fals

10、e,true,运行结果:,x= 1 0 1,例:,利用逻辑运算创建逻辑数组。,在命令窗输入:,y=7,2,95,运行结果:,y= 1 0 1,例:,利用函数创建逻辑数组。,在命令窗输入:,z=isfinite(5,inf,0.3),判断是否为有限数,有限数则为真,运行结果:,z= 1 0 1,运算产生逻辑结果的函数,二. 逻辑数组的用途,逻辑数组主要用在条件语句和数组索引中。,例:,数组的逻辑索引。,在命令窗输入:,A=rand(3),A(A0.5)=0,运行结果:,A= 0.4103 0.3529 0.1389 0.8936 0.8132 0.2028 0.0579 0.0099 0.198

11、7,A= 0 0 0 0.8936 0.8132 0 0 0 0,三. 判断逻辑类型,判断x是否为逻辑数组的命令,3.3 字符串,一. 创建字符数组,创建字符数组最简单的方法是用单引号赋值,,利用,strcat函数也可将多个字符串串接到一起。,例:,创建字符数组。,在命令窗输入:,c1=China;,whos c1,运行结果:,Name Size Bytes Class c1 1x5 10 char array Grand total is 5 elements using 10 bytes,例:,串接字符串。,在命令窗输入:,a=Yanbian;,b= University;,c2=strc

12、at(a,b),空格加在第2个字符串的开头,运行结果:,c2= Yanbian University,如果要创建二维字符数组,则要求每行长度相同。,如果长度不同,需要用空格来补充。,例:,创建字符串数组。,在命令窗输入:,m=Yanbian ; University,补3个空格,使长度相等,运行结果:,m = Yanbian University,二. 字符串单元数组,字符串数组要求长度相同,给编程带来不便。,通过创建,字符串单元数组可以存储长度可变的字符串。,利用cellstr函数可将字符数组转化为字符串单元数组。,例:,字符数组转化为字符串单元数组。,在命令窗输入:,a=Yanbian ;

13、 University;,b=cellstr(a),运行结果:,b= Yanbian University,字符串单元数组的元素操作函数,三. 字符串的操作,1. 字符串的比较,字符串的比较函数:,strcmp、strncmp、strcmpi、strncmpi,strcmp,判断两个字符串是否相等;,strncmp,判断两个字符串的前n个字符是否相等;,strcmpi、strncmpi,功能与前两个类似,,但不区分字符的大小写。,例:,字符串比较。,在命令窗输入:,a=hello;,b=help;,strcmp(a,b),运行结果:,ans= 0,继续在命令窗输入:,strncmp(a,b,3

14、),运行结果:,ans= 1,字符串比较还可通过关系运算来实现。,例:,用运算符比较字符串。,在命令窗输入:,str1=abc;,str2=AbC;,str1=str2,逐个字符比较,返回逻辑数组,运行结果:,ans= 1 0 1,2. 字符串的查找和替换,MATLAB提供了一些对字符串中的字符进行查找和,替换的函数。,如strrep函数用于替换字符串中的某个字符。,例:,替换字符。,在命令窗输入:,s=NAme;,strrep(s, A, a),运行结果:,ans= Name,四. 字符串类型与数值类型之间的转化,数值类型可转化为字符串类型,字符串类型也可转化为,数值类型,相关的函数见50页

15、表3-8和表3-9。,例如,将整数转化为字符。,在命令窗输入:,char(65),运行结果:,ans= A,3.4 日期与时间,MATLAB中日期与时间有3种表现形式:,日期字符串、,日期值序列、日期向量。,一.日期的表现形式,日期与时间信息的字符串有多种表示形式,如:,15-Oct-2010 15:35:18,10/15/2010,15:35:18,03:35:18 PM,日期值序列的表示方法,日期值序列1表示0000年1月1日0:00,其它日期时间在,基础上按天累加。,日期向量的表示方法,year month day hour minute second,二.日期表现形式之间的转化,日期形

16、式的转化函数,三.当前日期与时间,当前日期字符串可通过date函数获得。,例:,获得当前日期字符串。,在命令窗输入:,date,运行结果:,ans= 23-Sep-2011,当前日期时间序列可通过now函数获得。,例:,获得当前日期时间数值序列。,在命令窗输入:,x=now,运行结果:,x= 7.3442e+005,继续在命令窗输入:,datestr(x),转换为字符串形式,运行结果:,ans= 09-Oct-2010 09:15:00,3.5 结 构,结构,是根据字段组合起来的不同类型的数据集合。,一.创建结构数组,1.利用赋值语句创建结构,例:,利用赋值语句创建结构。,在命令窗输入:,st

17、=Li Ming;,student.course=10135 10096;,student. score=87 92,运行结果:,student= name: Li Ming course: 10135 10096 score: 87 92,例:,利用创建赋值语句继续扩展。,继续在命令窗输入:,student(2).name=Zhang Li;,student(2).course=10135 10096;,student(2). score=82 76,运行结果:,student= 1x2 struct array with fields: name course scor

18、e,2.利用结构函数创建结构,struct函数可以创建结构,其调用格式为:,strArray=srtuct(field1,val1, field2,val2, ),field和val为字段和对应值。,字段值可以是单一值或单元数组,但是必须保证它们,具有相同的尺寸。,例:,利用结构函数创建结构。,在命令窗输入:,stu=struct(n,Wang Fang,c,10568 10063,s,76 82),运行结果:,stu = n: Wang Fang c: 10568 10063 s: 76 82,继续在命令窗输入:,stu(2)=struct(n,Zhao Yun,c,10568 10063,

19、s,92 87),运行结果:,stu = 1x2 struct array with fields: n c s,继续在命令窗输入:,stu(2),查看结构stu(2)的字段内容,运行结果:,ans = n: Zhao Yun c: 10568 10063 s: 92 87,也可以一次建立结构数组的多个元素。,继续在命令窗输入:,clear stu,stu=struct(n,Wang Fang,Zhao Yun,c,10568 10063,10568 10063,s,76 82,96 87),省略号是续行符,运行结果:,stu = 1x2 struct array with fields: n

20、 c s,二. 结构数组的操作,1. 访问结构数组中的数据,利用结构数组索引可以对结构数组的字段值或字段元素,值进行访问或赋值。,也可利用逗号分隔的序列访问。,例:,访问某个结构的字段或字段元素。,接前例继续在命令窗输入:,str1=student(2).name, student(2).score(1),运行结果:,str1 = Zhang Li,ans = 82,2. 添加和删除字段,利用赋值语句可以添加字段,还可利用setfield函数,添加字段或修改字段的值。,例:,添加和删除字段。,在命令窗输入:,student(1). sex=male,运行结果:,student= 1x2 str

21、uct array with fields: name course score sex,继续在命令窗输入:, student(1),查看结构student(1)的字段内容,运行结果:,ans = name: Li Ming course: 10135 10096 score: 87 92 sex: male,继续在命令窗输入:, student(2),运行结果:,ans = name: Zhang Li course: 10135 10096 score: 82 76 sex: ,继续在命令窗输入:, rmfield(student,sex),删除结构的字段,运行结果:,ans = 1x2

22、struct array with fields: name course score,3.6 单元数组,单元数组可以将不同类型或不同尺寸的数据存储到同一个,数组当中。,访问单元数组的方法与矩阵索引方法基本相同,区别在于,单元数组索引时,需要用将下标置于其中。,一.创建单元数组,创建单元数组与创建矩阵基本相同,区别在于矩阵用,,单元数组用。,例:,创建单元数组。,在命令窗输入:,a=2 4 7;3 9 6;1 8 5, Li Ming,2+3i,1:2:10,运行结果:,a = 3x3 double Li Ming 2.0000 + 3.0000i 1x5 double,二. 单元数组的操作,1. 单元数组的删除,对单元数组向量下标赋空值即可删除单元数组的行或列。,例:,删除单元数组的列。,接上例继续在命令窗输入:,a(:,2)=,运行结果:,a = 3x3 double 2.0000 + 3.0000i 1x5 double,2. 运用函数或运算符操作单元数组,利

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论