Matlab数据类型.ppt

上传人:wuy****n92 文档编号:70792764 上传时间:2023-01-28 格式:PPT 页数:31 大小:625.50KB
返回 下载 相关 举报
Matlab数据类型.ppt_第1页
第1页 / 共31页
Matlab数据类型.ppt_第2页
第2页 / 共31页
点击查看更多>>
资源描述

《Matlab数据类型.ppt》由会员分享,可在线阅读,更多相关《Matlab数据类型.ppt(31页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第3章 Matlab 数据类型u主要内容n常量与变量常量与变量n数值类型数值类型n逻辑类型逻辑类型n字符和字符串字符和字符串n元胞数组元胞数组n结构体结构体n函数句柄函数句柄1/28/202313.1.1 MATLAB系统的特殊变量和常数系统的特殊变量和常数特殊变量意 义 ans默认变量名,如果用户未定义变量名,matlab自动将结果保存到ans中 pi圆周率(=3.1415926.)inf无穷大值,如1/0 eps浮点运算的相对精度2(-52)realmax最大的正浮点数,2(1024)-1realmin最小的正浮点数,2(-1022)NaN或nan不定量,如0/0或inf/inf i或j虚

2、数单位nargin函数输入参数个数nargout函数输出参数个数lasterr存放最新的错误信息lastwarn存放最新的警告信息3.1 常数与变量1/28/202323.1 常数与变量p变量名由字母、数字和下划线组成;变量名由字母、数字和下划线组成;p变量名中英文字母大小写是有区别的;变量名中英文字母大小写是有区别的;p变量名的最大长度是有规定的变量名的最大长度是有规定的p不同版本的系统规定不同:不同版本的系统规定不同:19个字符、个字符、31或或63个字符等个字符等pnamelengthmax函数:函数:系统规定长度系统规定长度pisvarname函数:函数:变量名的合法性变量名的合法性N

3、=namelengthmaxisvarname 8th_column3.1.2 变量名变量名Matlab用字符i和j表示虚数单位,如果涉及到复数计算,应避免把i和j用作变量名1/28/202333.1 常数与变量p在MATLAB中创建变量不必声明变量的数据类型例创建一个A变量 A=9 p将变量的值赋给另一个变量前,必须确定该变量有值,否则会返回错误。例如 A=a?Undefined function or variable a.p如果变量已经存在,给它赋值会替换它的当前值3.1.3 创建变量创建变量1/28/202343.1 常数与变量3.1.4 变量的数据类型变量的数据类型pMatlab支持

4、多种数据类型p所有类型数据都被存储在矩阵或数组中进行操作变量数据类型logical逻辑型逻辑型char字符字符/字符串字符串numeric数值型数值型cell元胞数组元胞数组structure结构体结构体function handle 函数句柄函数句柄Java classesJava类类int8,unit8,int16,uint16,int32,uint32,int64,uint64,整数类型整数类型single单精度单精度浮点型浮点型double双精度双精度浮点型浮点型1/28/202353.1 常数与变量数据类型数据类型示例示例说明说明int8,uint8,int16,uint16,int

5、32,uint32uint16(7500)有符号和无符号的整数类型有符号和无符号的整数类型大部分整数类型占用比浮点类型更少的内存空间大部分整数类型占用比浮点类型更少的内存空间singlesingle(383.21)单精度浮点类型单精度浮点类型和双精度浮点类型相比,占用内存空间更小,精度和和双精度浮点类型相比,占用内存空间更小,精度和数值范围都比双精度浮点类型小数值范围都比双精度浮点类型小double383.21,4+5.2i双精度浮点类型双精度浮点类型Matlab中默认的数值类型中默认的数值类型logicalrandn(3,4)0.5逻辑类型数据逻辑类型数据1代表逻辑真,代表逻辑真,0代表逻辑

6、假代表逻辑假charwelcome!字符串类型字符串类型cell arraya1,1=hello;a1,2=325;a1,3=ones(3,2);元胞数组类型元胞数组类型数组元素可以是不同的数据类型数组元素可以是不同的数据类型注:存储多个字符串最好用元胞数组类型注:存储多个字符串最好用元胞数组类型structurea.name=join;a.age=13;a.mat=rand(2,3);结构体类型结构体类型类似于类似于C语言,通过结构体中多个成员可以存储多种语言,通过结构体中多个成员可以存储多种类型的数据类型的数据函数句柄函数句柄sin函数句柄,相当于一个指针函数句柄,相当于一个指针变量的数据

7、类型变量的数据类型1/28/202363.2 数值类型数据!数值类型包括有符号整数类型、无符号整数类型、单精度浮点类型和双精度浮点类型数值类型浮点类型整数类型有符号、无符号8位有符号、无符号32位有符号、无符号16位有符号、无符号64位单精度双精度(包括复数、inf和NaN等)1/28/202373.2 数值类型数据整型数据类型及其取值范围整数类型整数类型数值范围数值范围转换函数转换函数有符号有符号8位整数位整数-128127int8无符号无符号8位整数位整数0255uint8有符号有符号16位整数位整数-215215-1int16无符号无符号16位整数位整数0216-1uint16有符号有符

8、号32位整数位整数-231231-1int32无符号无符号32位整数位整数0232-1uint323.2.1 整型数据类型整型数据类型1/28/202383.2 数值类型数据pint8:将值或变量指定为整型:将值或变量指定为整型pclass函数函数:变量数据类型:变量数据类型p把把数数值值转转换换为为一一种种整整型型数数据据类类型型时时,matlab会会将将结结果果圆圆整整到到最近的整型值最近的整型值对对于于小小数数位位取取5的的情情况况,如如果果数数值值为为正正,则则向向上上圆圆整整,否否则则向向下下圆圆整整将将大大于于整整型型数数据据类类型型最最大大值值的的数数据据转转换换为为该该整整型型

9、时时,matlab返返回回最最大值。如果数据值小于数据类型的最小值,则返回最小值大值。如果数据值小于数据类型的最小值,则返回最小值3.2.1 整型数据类型整型数据类型1/28/202393.2 数值类型数据p两个相同类型的数据相加,结果仍为该整型 例如x=int16(5)+int16(9)返回结果为x=14class(x)返回结果为ans=int16p如果结果大于数据类型的最大值或小于最小值,会返回最大值或最小值 例如intwarning(on)int16(50000)Warning:Out of range vonverted to intmin(int16)or intmax(int16)

10、ans=327673.2.1 整型数据类型整型数据类型1/28/2023103.2 数值类型数据3.2.2 单精度浮点型数据类型单精度浮点型数据类型usingle命令将数值或变量指定为命令将数值或变量指定为single型型usingle型数据所占内存为型数据所占内存为double型的一半型的一半u将将double型型数数据据转转换换为为single型型时时,matlab将将该该数数据据圆圆整整到最近的单精度浮点值到最近的单精度浮点值u函函数数eps返返回回浮浮点点数数的的精精度度。所所谓谓精精度度,是是指指该该浮浮点点数数与与下下一一个个浮浮点点数数之之间间的的差差值值。eps(x)的的值值与

11、与x的的大大小小有有关关,x越大,越大,eps(x)越大越大u双浮点数的精度比单浮点数的精度高一些双浮点数的精度比单浮点数的精度高一些1/28/2023113.2 数值类型数据对于数值变量,默认时对于数值变量,默认时matlab指定数据为指定数据为double型型对于大部分数值计算任务而言,推荐使用对于大部分数值计算任务而言,推荐使用double型型复复数数属属于于双双精精度度浮浮点点数数的的一一种种特特殊殊类类型型,复复数数作作为为一一个个整整体体进进行行处理。处理。“-Inf”和和“Inf”表表示示“负负无无穷穷”和和“正正无无穷穷”,一一旦旦运运算算结结果果超超出浮点数的表示范围,系统会

12、用出浮点数的表示范围,系统会用“-Inf”和和“Inf”表示计算结果表示计算结果非数(非数(NaN),是),是“Not a Number”的缩写,是一个既不是实数也的缩写,是一个既不是实数也不是复数的数值,不是复数的数值,matlab提供这样一个数值的目的是扩大运算范提供这样一个数值的目的是扩大运算范围,对于围,对于0/0、Inf/Inf的运算结果可以有合理的解释的运算结果可以有合理的解释3.2.3 双精度浮点型数据类型双精度浮点型数据类型1/28/2023123.3 逻辑类型数据FMatlab用“0”和“1”分别代表“逻辑假”和“逻辑真”。F逻辑类型数据常以标量的形式出现,但有时也可以是逻辑

13、数组。F在关系和逻辑运算表达式中所有输入非0的数都为“逻辑真”,只有0才为“逻辑假”;计算结果,如果值为1,表示“真”,如果值为0,表示“假”。1/28/202313字符串又称为字符数组,由多个字符连接而成。字符串又称为字符数组,由多个字符连接而成。字字符符串串一一般般用用单单引引号号括括起起来来。例例如如,Central South University。字字符符串串是是以以ASCII码码形形式式存存储储的的。abs和和double函函数数都都可可以以用用来来获获取取字字符符串串矩矩阵阵所所对对应应的的ASCII码码数数值值矩矩阵阵。相相反反,char函函数数可可以以把把ASCII码码数数值

14、值矩矩阵阵转转换换为为字字符符串串矩矩阵。阵。在在字字符符串串里里的的每每个个字字符符是是数数组组里里的的一一个个元元素素,字字符符串串的的存储要求每个字符存储要求每个字符2个字节。个字节。3.4 字符和字符串1/28/202314Y利用单引号创建字符串 例如创建字符串China country=China 在命令窗口中输入whos命令,输出显示 Name Size Bytes Class Country 1x5 10 char arrayYclass和ischar函数测试变量数据类型 class(country)返回结果为ans=char ischar(country)返回结果为ans=13

15、.4.1 创建字符串创建字符串3.4 字符和字符串1/28/202315Y创建二维字符串时,确定每行具有相同的长度。例如 name=Li Yi;Hu XuY根据不同长度的字符串创建二维字符串时,将短的那些字符串后面用空格对齐,使所有字符串的长度相同。例如 name=Liu Ying;Hu Xu Y用char函数创建字符串数组,char函数自动以最长字符串的长度为标准,进行空格补齐。例如name=char(Liu Ying;Hu Xu)Y从数组中提取字符串时,用deblank函数删除后面的空格。trimname=deblank(name(2,:)size(trimname)3.4 字符和字符串3

16、.4.1 创建字符串创建字符串1/28/2023163.4.2 类型转换类型转换Yabs(str)返回一个向量,其元素是字符串中字符的ASCII值Ychar(x)根据指定的字符集将向量x中的整数转化成字符。这个命令是命令abs的逆操作。Ynum2str(f)将数值f转换成字符串Ystr2num(str)将字符串str转换为数字Ylower(str)将字符串中所有字母转换为小写字母Yupper(str)将字符串中所有字符转化为大写字母3.4 字符和字符串1/28/2023173.4.3 比较字符串比较字符串Ystrcmp函数比较字符串Ystrncmp函数可以比较字符串的前n+1个字符Y对于字符串

17、结构数组,这两个函数一个单元一个单元地进行比较Y对于字符串,可使用关系运算符 str1=hello;str2=help;C1=strcmp(str1,str2);C2=strncmp(str1,str2,2);因为str1和str2不相等,调用strcmp函数时返回0,而str1和str2前3个字符相同,调用strncmp函数时返回1 A=book;pen;rule;B=pencil;pen;pencilbox;strcmp(A,B)返回结果为ans=0 1 0 A=face;B=cake;A=B;ans=0 1 0 13.4 字符和字符串1/28/202318Y字符的聚合方法:使用聚合运算符

18、 或sprintf函数 num_chars=28;s=There are int2str(num_chars)characters here s=sprintf(There are%d characters heren,num-chars)Y用strcat函数也可以把两个或更多字符串组合在一起 country=China;province=Sichuan strcat(country,province)3.4.4 聚合字符串聚合字符串用用聚聚合合方方法法创创建建字字符符串串时时,用用sprintf函函数数比比使使用用 好好,特特别别是是在在组组成成复复杂杂表表达达式式的的时时候候,该该函函数数

19、对对输输出出格格式式可可以以有有更更多多的的控控制制,而而且且一一般般运运行行得得更更快快。也也可可用用strcat函数聚合字符串,但对于简单的聚合,使用函数聚合字符串,但对于简单的聚合,使用sprintf和和 更快。更快。3.4 字符和字符串1/28/2023193.4 字符和字符串Yisletter函数确定字符是否为字母;Yisspace函数确定字符是否为空区(空格、空表间隔或空行)例如创建一个名为mystring的字符串,使用函isletter函数:mystring=Room 401;A=isletter(mystring);A=1 1 1 1 0 0 0前四个字符是字母,所以返回值为1

20、。3.4.5 字符分类字符分类1/28/2023203.4 字符和字符串Ystrrep函数进行标准的搜索和替代操作Yfindstr函数Ystrmatch函数在字符串或字符串单元数组的整个行中进行查找,看有没有以给定字符序列打头的字符串,它返回以该字符打头的行的行号。label=Sample 1,04/28/03;newlabel=strrep(label,28,30)%把28改为30position=findstr(amp,label)%字符串amp在label中出现的起始位置为label中第2个字符的位置。maxstrings=strvcat(max;minimax;maximum);%st

21、rvcat沿垂直方向连接字符串,strcat沿水平方向连接字符串strmatch(max,maxstrings)3.4.6 搜索和替换搜索和替换1/28/202321元胞数组(单元数组)是一种特殊的数组,这种数组的元素是单元,能包含其他matlab数组。例如,单元数组的一个单元可能包含一个实型矩阵,另一个单元又包含文本字符串数组,而第三个单元又包含值为复数的矢量,可以生成任意大小和形状的单元数组。结构体和元胞数组为不同类型的数据提供了一种系统存储机制,它们主要在组织数据的方式上有所不同。在结构体中,从命名字段访问数据;在元胞数组中,通过矩阵索引操作访问数据。3.5 元胞数组1/28/20232

22、23.5 元胞数组通过赋值语句创建元胞数组单元索引:按标准数组方式把单元索引号放到小括号中间,把单元地内容放在赋值语句的右端,用大括号括起来。内容索引:以标准数组标注方式把单元索引号以大括号括起来放在左侧,在赋值语句的右侧指定内容。例利用单元索引方式和内容索引方式创建2x2的单元数组AA(1,1)=1 4 3;0 5 8;7 2 9;A(1,2)=Liu Zhong;A(2,1)=3+7i;A(2,2)=-pi:pi/10:pi;%单元索引方式A1,1=1 4 3;0 5 8;7 2 9;A1,2=Liu Zhong;A2,1=3+7i;A2,2=-pi:pi/10:pi;%内容索引方式创建元

23、胞数组创建元胞数组1/28/2023233.6 结构体使用赋值语句例如创建一个student结构数组,student.name=Liu Dan;student.ID=02;student.test=79 75 73;80 78 77.5;80 85 85;student(2).name=Han Xu;student.ID=10;student.test=68 70 68;78 88 81;92 90 93;使用struct函数可以使用struct函数预分配一个结构数组,其基本形式为:str_array=student(field1,val1,field2,val2,)其中,变量为字段名和它们的

24、对应值。创建结构体创建结构体1/28/2023242.7 函数句柄P函数句柄是一种matlab数据类型,保存函数的路径、视野、函数名及重载方式等。P使用函数句柄的好处主要有:q把函数获取的信息传给其它函数;q掌握重载函数的方法;q允许更广泛地获取子函数和私有函数;q保证函数计算的可靠性;q减小定义函数的字段个数;q改进重复操作;q在数组、结构体和元胞数组中操作句柄;q可以在调用中将函数句柄作为变量传递给另一个函数1/28/2023253.7 函数句柄P在Matlab中,在函数名前用符号创建一个函数句柄。P用于句柄的函数名最多只能有N个字符P 函数句柄的内容通过functions显示f_h=pl

25、otfunctions(f_h)ans=function:plot type:overloaded file:MATLAB built-in function methods:1x1 struct函数句柄的创建与显示函数句柄的创建与显示1/28/202326&MATLAB用十进制数表示一个常数用十进制数表示一个常数,可,可采用日常记数采用日常记数法和科学记数法两种法和科学记数法两种表示方法表示方法&一般一般情况下,情况下,MATLAB内部每一个数据元素都是用双内部每一个数据元素都是用双精度数来表示和存储的。数据输出时用户可以用精度数来表示和存储的。数据输出时用户可以用format命令设置或改变

26、数据命令设置或改变数据输出格式输出格式&format命令的格式为命令的格式为:format 格式符格式符其中格式符决定数据的输出格式其中格式符决定数据的输出格式,如,如long、short、hex、rat(输出有理数(输出有理数)3.8 数据输出格式1/28/2023273.8 数据输出格式1/28/2023283.8 数据输出格式1/28/202329关于format命令的几点说明:pformat命令只影响数据的输出格式,而不影响数据的存储和计算p默认的输出格式是shortp注意rat格式。如果在进行运算前执行format rat命令,则可以用分数形式显示运算结果,这样便于核对手算结果的正确性p在改变了输出格式后,为了以后还按默认的格式输出,应当再执行format short命令3.8 数据输出格式1/28/202330数据输出格式(续)p即使在默认格式下,0也仅仅是输出0p显示格式是非常重要的,要熟悉几种重要的格式3.8 数据输出格式1/28/202331

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com