1、LOGOMATLAB 基础基础MATLAB 数据类型数据类型MATLAB基础v1、MATLAB的数据类型的数据类型v2、MATLAB的运算符的运算符v4、MATLAB的控制语句的控制语句v5、MATLAB的的M文件文件1、数值类型 MATLAB的默认数据存储类型为双精度浮点类型(double),可以利用转化函数存储为其它类型。MATLAB的基本数据存储类型有十几种,不同专业的工具箱中还有特殊的数据类型,且还支持用户自定义数据类型。每一种数据类型都是以数组和矩阵方式表现和存储的。MATLAB数据类型关系数组逻辑类 字符类字符串数值类单元(细胞数组)结构类型 函数句柄int8,uint8int16
2、,uint16int32,uint32int64,uint64singledouble整数类型的取值范围和类型转化函数数据类型取值范围类型转化函数有符号8位整数int8有符号16位整数int16有符号32位整数int32有符号64位整数int64无符号8位整数uint8无符号16位整数uint16无符号32位整数uint32无符号64位整数uint64772 2115152 2131312 2163632 21640 21320 21160 2180 21一.整数型MATLAB中有4种有符号整数类型,4中无符号整数类型。如,int8的取值范围:772 21128+127uint8的取值范围:8
3、0 210+255int16的取值范围:15152 2132768+32767MATLAB的默认数据存储类型为double,利用类型转化函数可将数据存储为整数类型,如果有小数部分,四舍五入处理。例:整数类型的转化。在命令窗输入:x=7.503;int8(x)运行结果:ans=8也可以根据需要利用函数对数据的小数部分进行舍入。class(x)二.浮点数MATLAB的浮点数分为单精度(single)和双精度(double)。默认数据类型double需要64位存储空间,具体如下:636252510符号指数部分且有1023的偏移量小数部分Single需要32位存储空间,具体如下:313023220符号
4、指数部分且有127的偏移量小数部分直接输入变量值创建的是double类型,创建single类型需要用输入类型转化函数。例:创建浮点数。在命令窗输入:x=35;y=single(-26);a=class(x),b=class(y)运行结果:a=doubleb=single继续在命令窗输入:whos(x,y)运行结果:Name Size Bytes Class x 1x1 8 double array y 1x1 4 single arrayGrand total is 2 elements using 12 bytesv浮点数的取整函数浮点数的取整函数vround(X)vfix(X)vfloor
5、(X)vceil(X)三.复数MATLAB表示复数时,可用字母i或j表示虚部。创建复数可直接输入或利用函数complex(a,b)。例:创建复数。在命令窗输入:a=2-3i运行结果:a=2.00003.0000i例:利用函数complex(a,b)创建复数。在命令窗输入:a=2,b=3,complex(a,b)运行结果:a=2b=-3ans=2.00003.0000i四.无穷与非数MATLAB中分别用Inf和Inf表示正无穷和负无穷,用NAN表示非数。例:无穷。在命令窗输入:1/0运行结果:ans=Inf五.判断数据类型数据类型判断命令命令操作whos x显示数据类型xtype=class(x
6、)将x的数据类型赋给另一个变量isnumeric(x)判断x是否为数值类型isa(x,integer)判断x是否为引号中指定的数值类型(包括其它数值类型)isreal(x)判断x是否为实数isnun(x)判断x是否为非数isinf(x)判断x是否为无穷isfinine(x)判断x是否为有限数字符串字符串一.创建字符数组创建字符数组最简单的方法是用单引号赋值,利用strcat函数也可将多个字符串串接到一起。例:创建字符数组。在命令窗输入:c1=China;whos c1运行结果:Name Size Bytes Class c1 1x5 10 char arrayGrand total is 5
7、elements using 10 bytes例:串接字符串。在命令窗输入:a=Yanbian;b=University;c2=strcat(a,b)空格加在第2个字符串的开头运行结果:c2=Yanbian University 如果要创建二维字符数组,则要求。如果长度不同,需要用空格来补充。例:创建字符串数组。在命令窗输入:m=Yanbian ;University补3个空格,使长度相等运行结果:m=Yanbian University二.字符串单元数组字符串数组要求长度相同,给编程带来不便。通过创建字符串可以存储的字符串。利用cellstr函数可将字符数组转化为字符串单元数组。例:字符数组
8、转化为字符串单元数组。在命令窗输入:a=Yanbian ;University;b=cellstr(a)运行结果:b=Yanbian University 字符串单元数组的元素操作函数函数描述cellstr将字符数组转化为字符串单元数组char将字符串单元数组转化为字符数组deblank移除字符串尾部的空格iscellstr判断是否为字符串单元数组sort元素排序strcat串接字符串strcmp比较字符串strmatch查找匹配字符串三.字符串的操作1.字符串的比较strcmp2.字符串的查找和替换Strrep strrep(s,A,a)strcmp(a,b)逻辑类型逻辑类型逻辑类型的变量有
9、两种取值,逻辑真和逻辑假,分别用“1”和“0”表示。一.创建逻辑数组创建逻辑数组方式有多种:通过输入“true”或”false”直接创建逻辑数组;通过对数组进行逻辑运算创建;通过MATLAB函数产生逻辑数组;例:直接创建逻辑数组。在命令窗输入:x=true,false,true运行结果:x=1 0 1例:利用逻辑运算创建逻辑数组。在命令窗输入:y=7,2,95运行结果:y=1 0 1运算产生逻辑结果的函数函数操作true、false设值为真或假logical数值类型转化为逻辑类型&(and)、|(or)、(not)、xor、any、all逻辑运算&、|与、或=、=、=关系运算is*、cellf
10、un测试运算strcmp、strncmp、strcmpi、strncmpi字符串比较二.逻辑数组的用途逻辑数组主要用在条件语句和数组索引中。例:数组的逻辑索引。在命令窗输入:A=rand(3),A(A sqr=(x)x.2;a=sqr(5)运行结果:a=25结结 构构 类类 型型结构是根据字段组合起来的不同类型的数据集合。一一.创建结构数组创建结构数组1.利用赋值语句创建结构例:利用赋值语句创建结构。在命令窗输入:student(1).name=Li Ming;student(1).course=10135 10096;student(1).score=87 92运行结果:student=na
11、me: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 score2.利用结构函数创建结构利用结构函数创建结构struct函数可以创建结构,其调用格式为:strArray=srtuct(field1,val1,field2,val2,)field和val为字段和
12、对应值。字段值可以是单一值或单元数组,但是必须保证它们具有相同的尺寸。例:利用结构函数创建结构。在命令窗输入: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,s,92 87)运行结果:stu=1x2 struct array with fields:n c s继续在命令窗输入:stu(2)查看结构stu(2)的字段内容运行结果:ans=n:Zhao Yun c:10568 1
13、0063 s:92 87student.name=Li Ming;student.course=10135 10096;student.score=87 92student(2).name=Zhang Li;student(2).course=10135 10096;student(2).score=82 76二二.结构数组的操作结构数组的操作1.访问结构数组中的数据利用结构数组索引可以对结构数组的字段值或字段元素值进行访问或赋值。也可利用逗号分隔的序列访问。例:访问某个结构的字段或字段元素。接前例继续在命令窗输入:str1=student(2).name,student(2).score(1
14、)运行结果:str1=Zhang Lians=822.添加和删除字段利用赋值语句可以添加字段,还可利用setfield函数添加字段或修改字段的值。例:添加和删除字段。在命令窗输入:student(1).sex=male运行结果:student=1x2 struct 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=n
15、ame:Zhang Li course:10135 10096 score:82 76 sex:继续在命令窗输入:rmfield(student,sex)删除结构的字段运行结果:ans=1x2 struct array with fields:name course score细胞数组类型(单元数组)v 细胞数组是MATLAB特有的一种数据类型,组成它的元素是细胞,细胞是用来存储不同类型数据的单元,如图所示22细胞数组结构图。细胞数组中每个细胞存储一种类型的MATLAB数组,此数组中的数据可以是任何一种MATLAB数据类型或用户自定义的类型,其大小也可以是任意的。相同的数组的第二个细胞的类型与
16、大小可以和第一个细胞完全不同。细胞数组结构图细胞数组结构图细胞数组细胞数组 细胞数组细胞数组可以将不同类型或不同尺寸的数据存储到同一个数组当中。访问单元数组的方法与矩阵索引方法基本相同,区别在于单元数组索引时,需要用将下标置于其中。一一.创建单元数组创建单元数组 创建单元数组与创建矩阵基本相同,区别在于矩阵用,单元数组用。例:创建单元数组(一维)。在命令窗输入: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.单元数组的删除对单
17、元数组向量下标赋空值即可删除单元数组的行或列。例:删除单元数组的列。接上例继续在命令窗输入:a(:,2)=运行结果:a=3x3 double 2.0000+3.0000i 1x5 double2.运用函数或运算符操作单元数组利用索引可以对单元数组进行函数或运算符操作。例:单元求和。在命令窗输入:A1,1=2 5;7 3;A1,2=rand(3,3);B=sum(A1,1)运行结果:B=9 83.单元数组的显示直接在命令窗输入单元数组名,可显示单元数组的构成单元,显示单元内容可使用celldisp函数。例:显示单元数组。在命令窗输入:celldisp(A)运行结果:A1=2 5 7 3A2=0.4447 0.9218 0.4057 0.6154 0.7382 0.9355 0.7919 0.1763 0.9169vcellplot(A)绘制单元数组结构图绘制单元数组结构图vcell(维数)创建单元数组(维数)创建单元数组v单元数组还可以进行拆分单元数组还可以进行拆分LOGOthemegallery谢谢你的阅读v知识就是财富v丰富你的人生