Matlab 数据类型.ppt

上传人:sh****n 文档编号:12560295 上传时间:2020-05-11 格式:PPT 页数:38 大小:263KB
返回 下载 相关 举报
Matlab 数据类型.ppt_第1页
第1页 / 共38页
Matlab 数据类型.ppt_第2页
第2页 / 共38页
Matlab 数据类型.ppt_第3页
第3页 / 共38页
点击查看更多>>
资源描述
数学软件实习,Matlab数据类型,文件操作是一种重要的输入输出方式,Matlab提供了一系列输入输出函数,专门用于文件操作。,Matlab文件操作主要有三个步骤:首先打开文件,然后对文件进行读写操作,最后要关闭文件。,Matlab中的输入输出函数是以C语言标准库函数中的输入输出函数为基础开发的,所以这些函数与C语言的输入输出函数相类似。,例:ex4file1.m,Matlab文件操作介绍,变量,变量是任何程序设计语言的基本元素之一。,Matlab并不要求对所使用的变量进行事先声明,也不需要指定变量类型,Matlab会自动根据所赋予变量的值或对变量所进行的操作来确定变量的类型。,在赋值过程中,如果变量已经存在,Matlab会用新值代替旧值,并以新的变量类型代替旧的变量类型。,变量与常量,变量名长度不超过65(Matlab6.5.1版本以上),变量名必须以字母开头,可包含字母(大小写)、数字和下划线,变量的命名规则,变量名区分大小写,Matlab中经常使用的一些常量,Matlab常量,Matlab中有一些预定义的变量,这些特殊变量称为常量。,数据类型,numeric:数值char:字符logical:逻辑cell:单元、细胞、元胞struct:结构,Matlab数据类型的最大特点是每一种类型都是以数组为基础,Matlab事实上把每种类型的数据都作为数组来处理。,Matlab常用的数据类型有:,Matlab7.1中的数据类型表,逻辑,字符,细胞,函数句柄,在缺省(默认)状态下,Matlab将所有的数都看作是双精度的浮点数。,使用整型变量和单精度变量可以节约内存空间。,数值型,数值型数据包括,整数:带符号和无符号浮点数:单精度和双精度,整数,Matlab提供四种带符号整型和四种无符号整型,x1=11,x2=15,x3=16,x4=127,x5=255,x6=255,x7=0,举例,x1=int8(11);,x2=int8(15.49);,x3=int8(15.5);,x4=int8(130);,x5=uint8(255);,x6=uint8(256);,x7=uint8(-1);,相同整型数据之间的运算,结果为同类型的整数。,例:int8(12)*int16(3),X,整型数据可以和双精度标量进行数值运算,结果为整数。在运算过程中保持浮点运算精度,最后将结果转换成整型。,整型数据不能与不是标量的双精度数组进行运算,整型数据的运算,整型数据可以参与的运算有下面两种:,不同的整型数据之间不能进行运算,可以用intmax和intmin函数来查询不同整型所能表示的最大整数和最小整数。,例:,最大整数与最小整数,intmax(int8);intmin(int8);,intmax(uint8);intmin(uint8);,intmax;intmin;,intmax(int32);intmin(int32);,single:将数据转换成单精度浮点数,double:将数据转换成双精度浮点数,浮点数与其它类型数据运算表,浮点数,浮点数包括单精度(占4个字节)和双精度(占8个字节),缺省为双精度。,浮点数转换函数,X,最大和最小浮点数,可以用realmax和realmin函数来查询单精度和双精度所能表示的最大浮点数和最小浮点数。,例:,realmax(single);realmin(single);,realmax(double);realmin(double);,realmax;realmin;,realmax(double);realmin(double);,直接输入:,使用complex函数,复数,可以通过以下方式定义复数,z=3+4i,z=complex(3,4),z=complex(3),z=complex(3,0),虚部与虚数单位之间不能留空格,整型数据相关函数,浮点数相关函数,复数相关函数,其它相关函数,判断数据类型相关函数,字符串和字符数组,字符串必须用单引号括起来,字符串是由多个字符组成的字符行向量,字符与字符串,字符与字符串运算是各种高级语言不可缺少的部分,Matlab具有强大的字符处理能力。,str1=MatrixLaboratory,str2=M,a,t,r,i,x,字符数组必须是方的,即每行的字符个数必须相等,str3=M,a,t;r,i,x,字符串中的每个字符(包括空格)都是字符串的一个元素,字符与字符串,str=Matrix;str(3)%从1开始数起size(str),str=Matrix;double(str(3);double(str);%查看每一个字符的ASCII码,Matlab中字符是以ASCII码存储的,因而区分大小写,可用double函数查看一个字符的ASCII码,使用char函数,ASCII码字符串,字符串的生成,直接赋值,str1=Matrix;str2=Laboratory;str=str1,str2;,str=char(77,97,116,108,97,98),str=char(str1,str2),生成一个字符数组,第一行为str1,第二行为str2,数值矩阵到字符数组:num2str、int2str、mat2str字符数组到数值数组:str2num,字符串与数值数组,字符串、字符数组与数值数组之间的转换,按ASCII码转换,字符数组到数值数组:double,数值数组到字符串:char,直接将转换数值数组转换成字符数组,举例,a=97,97.3;97.8,98;str1=char(a);str2=num2str(a);str3=int2str(a);str4=mat2str(a);,char的输入参数范围为0,65535,当输入参数中有小数时,直接将小数部分舍去。,num2str直接将每个数字转换成字符,mat2str把整个矩阵转换成字符行向量,包括矩阵中的方括号、空格和分号(逗号自动去除),举例,str5=mat2str(97,97.3;97.8,98);,数值数组转换为字符数组后,表面上看象一个数值数组,但此时的元素是字符而不是数字!,a=1,2,3b=num2str(a)c=2*ad=2*b,e=2*str2num(b),double、char是按ASCII码进行转换,num2str、int2str、mat2str、str2num是直接进行转换,字符串的合并,水平合并,直接使用中括号,使用strcat函数,str1=hello,world!,str2=strcat(hello,world!),使用strcat时,自动去除原字符串结尾处的空格,水平合并得到的是一个更长的字符串,字符串的合并,垂直合并,直接使用中括号,使用strvcat函数,str3=Matrix;Laboratory,str4=strvcat(Matrix,Laboratory),在中括号中用分号实现垂直合并,必须保证每个字符串的长度相等,否则需用空格补齐,用strvcat合并,自动为较短的字符串补充空格,垂直合并得到的是一个字符数组,运行字符串,运行字符串所表示的表达式或命令:eval,str=1+2;a=eval(str),str=A=magic(3);eval(str),str1=figure(1);mesh(peaks(60);str2=figure(2);waterfall(peaks(60);eval(str1)eval(str2),字符串相关函数,细胞变量的表示方法类似于带有下标的数组,但这些下标不是用圆括号括起来,而是使用大括号。,普通数组中的每个元素都必须具有相同的数据类型,而细胞则没有此要求。,细胞数组,Matlab从5.0版开始引入了一种新的数据类型细胞(cell),该结构可以把不同类型的数据纳入到一个变量中。,细胞数组举例,用赋值语句直接定义,用cell函数预先分配存储空间,然后对细胞的每个元素逐个赋值。,细胞变量的定义,A=12;34;str=Matlab;M=1:4,A,str;celldisp(M),cell(m,n),生成一个m行n列的细胞数组。,可以通过以下两种方式定义一个细胞变量,举例,A=12;34;str=Matlab;M=1:4,A,str;N=hello,M;celldisp(N);,A=12;34;str=Matlab;M=cell(1,3);M1,1=1:4;M1,2=A;M1,3=str;celldisp(M),细胞变量元素的引用,A=12;34;str=Matlab;M=1:4,A,str;N=hello,M;eye(2),magic(3);,N1,1N1,2N1,21,2N1,21,2(2,1),细胞变量的引用必须使用大括号。,相关函数,celldisp,输出细胞变量的内容。,cellplot,用图形方式显示细胞变量的内容。,iscell,判别一个变量是否为细胞变量。,举例,A=12;34;str=Matlab;M=1:4,A,str;celldisp(M);cellplot(M);iscell(A)iscell(M),
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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