版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Matlab 数据类型崔基哲崔基哲延边大学延边大学 信息管理专业信息管理专业q 变量变量u 变量是任何程序设计语言的变量是任何程序设计语言的基本元素基本元素之一。之一。u Matlab 并不要求对所使用的变量进行事先声明,并不要求对所使用的变量进行事先声明,也不需要指定变量类型,也不需要指定变量类型,Matlab 会自动根据所赋予会自动根据所赋予变量的值或对变量所进行的操作来确定变量的类型。变量的值或对变量所进行的操作来确定变量的类型。u 在赋值过程中,如果变量已经存在,在赋值过程中,如果变量已经存在,Matlab 会会用新值代替旧值,并以用新值代替旧值,并以新的变量类型代替旧的变量新的变量类
2、型代替旧的变量类型类型。变量与常量变量与常量n 变量名长度变量名长度不超过不超过 65 ( Matlab6.5.1 版本以上版本以上 )n 变量名必须变量名必须以字母开头以字母开头,可包含字母(大小写)、,可包含字母(大小写)、数字和下划线数字和下划线变量的命名规则变量的命名规则n 变量名变量名区分大小写区分大小写class函数函数可以用来获取变量或对象的类型可以用来获取变量或对象的类型可以用来创建用户自定义的数据类型可以用来创建用户自定义的数据类型基本数值类型基本数值类型例例 A=1 2 3; class(A) ans = double whos Name Size Bytes Class
3、A 1x3 24 double array ans 1x6 12 char array Grand total is 9 elements using 36 bytes B=int16(A); class(B) ans = int16 whos Name Size Bytes Class A 1x3 24 double array B 1x3 6 int16 array ans 1x5 10 char array Grand total is 11 elements using 40 bytes基本数值类型(续)基本数值类型(续)MATLAB和和C语言在处理数据类型和变量时的区别语言在处理数据
4、类型和变量时的区别在在C语言中,任何变量在使用之前必须声明,然后赋值,在声明变语言中,任何变量在使用之前必须声明,然后赋值,在声明变量时就指定了变量的数据类型量时就指定了变量的数据类型在在MATLAB中,任何数据变量都不需要预先声明,中,任何数据变量都不需要预先声明,MATLAB将自将自动地将数据类型设置为双精度类型动地将数据类型设置为双精度类型例例 A=1 2 3; B=3 4 5; C=A+B; whos Name Size Bytes Class A 1x3 24 double array B 1x3 24 double array C 1x3 24 double array Grand
5、 total is 9 elements using 72 bytes int16(A)+int16(B) ? Error using = + Function + is not defined for values of class int16.基本数值类型(续)基本数值类型(续) C=int16(A+B)C = 4 6 8 class(C)ans =int16常量名常量名常量值常量值常量名常量名常量值常量值i,j虚数单位虚数单位realmin 最小的正浮点数最小的正浮点数pi圆周率圆周率realmax 最大的正浮点数最大的正浮点数eps浮点运算相对精度浮点运算相对精度NaN不定值不定值In
6、f无穷大无穷大Matlab中经常使用的一些常量中经常使用的一些常量Matlab 常量常量q Matlab 中有一些预定义的变量,这些特殊变量称中有一些预定义的变量,这些特殊变量称为常量。为常量。数据类型数据类型l numeric:数值:数值l char:字符:字符l logical:逻辑逻辑l cell:单元、细胞、元胞:单元、细胞、元胞l struct:结构结构q Matlab 数据类型的最大特点是每一种类型都是以数据类型的最大特点是每一种类型都是以数组为基础数组为基础,Matlab 事实上把每种类型的数据都作为事实上把每种类型的数据都作为数组来处理。数组来处理。q Matlab 常用的数据
7、类型有:常用的数据类型有:Matlab7.1 中的数据类型表中的数据类型表逻辑逻辑字符字符细胞细胞函函数数句句柄柄q 在缺省(默认)状态下,在缺省(默认)状态下,Matlab 将所有的数都将所有的数都看作是双精度的浮点数。看作是双精度的浮点数。q 使用整型变量和单精度变量可以节约内存空间。使用整型变量和单精度变量可以节约内存空间。数值型数值型q 数值型数据包括数值型数据包括l 整数:整数:带符号带符号和和无符号无符号l 浮点数:浮点数:单精度单精度和和双精度双精度数据类型数据类型取值范围取值范围转换函数转换函数带符号带符号 8 位整型位整型-27,27 1int8带符号带符号 16 位整型位整
8、型-215 , 215 1int16带符号带符号 32 位整型位整型-231 , 231 1int32带符号带符号 64 位整型位整型-263 , 263 1int64无符号无符号 8 位整型位整型0 , 28 1uint8无符号无符号 16 位整型位整型0 , 216 1uint16无符号无符号 32 位整型位整型0 , 232 1uint32无符号无符号 64 位整型位整型0 , 264 1uint64整数整数q Matlab 提供四种带符号整型和四种无符号整型提供四种带符号整型和四种无符号整型x1=11x2=15x3=16x4=127x5=255x6=255x7=0举例举例x1=int8
9、(11);x2=int8(15.49);x3=int8(15.5);x4=int8(130);x5=uint8(255);x6=uint8(256);x7=uint8(-1);u 相同整型数据之间的运算,结果为同类型的整数。相同整型数据之间的运算,结果为同类型的整数。 例:例:int8(12)*int16(3)Xu 整型数据可以和整型数据可以和双精度标量双精度标量进行数值运算,进行数值运算,结果为整数结果为整数。在运算过程中在运算过程中保持浮点运算精度保持浮点运算精度,最后将结果转换成整型。,最后将结果转换成整型。整型数据不能与不是标量的双精度整型数据不能与不是标量的双精度数组数组进行运算进行
10、运算整型数据的运算整型数据的运算q 整型数据可以参与的运算有下面两种:整型数据可以参与的运算有下面两种:不同的整型数据之间不能进行运算不同的整型数据之间不能进行运算q 可以用可以用 intmax 和和 intmin 函数来查询不同整型所能函数来查询不同整型所能表示的最大整数和最小整数。表示的最大整数和最小整数。 例:例:最大整数与最小整数最大整数与最小整数intmax(int8);intmin(int8);intmax(uint8);intmin(uint8);intmax;intmin;intmax(int32);intmin(int32);l single:将数据转换成单精度浮点数将数据转
11、换成单精度浮点数l double :将数据转换成双精度浮点数:将数据转换成双精度浮点数operandsingledoubleint/uintcharlogicalsinglesinglesinglesinglesingledoublesingledoubleint/uintdoubledouble浮点数与其它类型数据运算表浮点数与其它类型数据运算表浮点数浮点数q 浮点数包括浮点数包括单精度单精度(占(占 4 个字节)和个字节)和双精度双精度(占(占 8 个字节),缺省为双精度。个字节),缺省为双精度。q 浮点数转换函数浮点数转换函数X最大和最小浮点数最大和最小浮点数q 可以用可以用 realm
12、ax 和和 realmin 函数来查询单精度和函数来查询单精度和双精度所能表示的最大浮点数和最小浮点数。双精度所能表示的最大浮点数和最小浮点数。 例:例:realmax(single);realmin(single);realmax(double);realmin(double);realmax;realmin;realmax(double);realmin(double);u 直接输入:直接输入:u 使用使用 complex 函数函数复数复数q 可以通过以下方式定义复数可以通过以下方式定义复数z=3+4iz=complex(3,4)z=complex(3)z=complex(3,0)虚部与虚
13、数单位之间不能留空格虚部与虚数单位之间不能留空格整型数据相关函数整型数据相关函数浮点数相关函数浮点数相关函数复数相关函数复数相关函数其它相关函数其它相关函数判断数据类型相关函数判断数据类型相关函数整数类型数据的运算函数整数类型数据的运算函数整数类型数据运算整数类型数据运算函 数说 明bitand数据位“与”运算bitcmp按照指定的数据位数求数据的补码bitor数据位“或”运算bitmax最大的浮点整数数值bitxor数据位“异或”运算bitset将指定的数据位设置为1bitget获取指定的数据位数值bitshift数据位移操作注意:参与整数运算的数据都必须大于注意:参与整数运算的数据都必须大
14、于0例:数据位例:数据位“与与”操作操作 A=86;B=77; C=bitand(A,B)C = 68 a=uint16(A);b=uint16(B); c=bitand(a,b)c = 6886的补码:的补码: 0101011077的补码:的补码: 01001101“与与”运算的结果:运算的结果: 01000100整数类型数据运算(续)整数类型数据运算(续) whos Name Size Bytes Class A 1x1 8 double array B 1x1 8 double array C 1x1 8 double array a 1x1 2 uint16 array b 1x1 2
15、 uint16 array c 1x1 2 uint16 arrayGrand total is 6 elements using 30 bytesq 字符串和字符数组字符串和字符数组n 字符串必须用字符串必须用单引号单引号括起来括起来n 字符串是由多个字符组成的字符串是由多个字符组成的字符行向量字符行向量字符与字符串字符与字符串q 字符与字符串运算是各种高级语言不可缺少的字符与字符串运算是各种高级语言不可缺少的部分,部分,Matlab具有强大的字符处理能力。具有强大的字符处理能力。str1=Matrix Laboratorystr2=M,a,t,r,i,xn 字符数组必须是方的,即每行的字符
16、个数必须相等字符数组必须是方的,即每行的字符个数必须相等str3=M,a,t; r,i,xq 字符串中的每个字符(包括空格)都是字符串的字符串中的每个字符(包括空格)都是字符串的一个元素一个元素字符与字符串字符与字符串str=Matrix;str(3)size(str)str=Matrix;double(str(3);double(str);q Matlab中字符是以中字符是以 ASCII 码存储的,因而码存储的,因而区分大区分大小写小写,可用,可用 double 函数查看一个字符的函数查看一个字符的 ASCII 码码q 使用使用 char 函数函数ASCII 码码 字符串字符串字符串的生成字
17、符串的生成q 直接赋值直接赋值str1=Matrix;str2=Laboratory;str=str1,str2;str=char(77,97,116,108,97,98)str=char(str1,str2)l 生成一个字符数组,第一行为生成一个字符数组,第一行为 str1,第二行为,第二行为 str2l 数值矩阵到字符数组:数值矩阵到字符数组: num2str、int2str、mat2strl 字符数组到数值数组:字符数组到数值数组:str2num字符串与数值数组字符串与数值数组q 字符串、字符数组与数值数组之间的转换字符串、字符数组与数值数组之间的转换u 按按 ASCII 码转换码转换l
18、 字符数组到数值数组:字符数组到数值数组:doublel 数值数组到字符串:数值数组到字符串:charu 直接将转换数值数组转换成字符数组直接将转换数值数组转换成字符数组举例举例a=97,97.3;97.8,98;str1=char(a);str2=num2str(a);str3=int2str(a);str4=mat2str(a);l char 的输入参数范围为的输入参数范围为 0,65535,当输入参数中,当输入参数中有小数时,直接将小数部分舍去。有小数时,直接将小数部分舍去。l num2str 直接将每个数字转换成字符直接将每个数字转换成字符l mat2str 把整个矩阵转换成字符把整个
19、矩阵转换成字符行向量行向量,包括矩阵,包括矩阵中的中的方括号方括号、空格空格 和和 分号分号(逗号自动去除)(逗号自动去除)举例举例str5=mat2str(97,97.3;97.8,98);l 数值数组转换为字符数组后,表面上看数值数组转换为字符数组后,表面上看象一个数值数象一个数值数组组,但此时的元素是字符而不是数字!,但此时的元素是字符而不是数字!a=1,2,3b=num2str(a)c=2*ad=2*be=2*str2num(b)double、char 是按是按 ASCII码码 进行转换进行转换num2str、int2str、mat2str、str2num 是直接进行转换是直接进行转换
20、字符串的合并字符串的合并q 水平水平合并合并u 直接使用中括号直接使用中括号u 使用使用 strcat 函数函数 str1=hello , world!str2=strcat(hello ,world!)l 使用使用 strcat 时,自动去除时,自动去除原字符串原字符串结尾处的空格结尾处的空格l 水平水平合并合并得到的是一个更长的字符串得到的是一个更长的字符串 字符串的合并字符串的合并q 垂直垂直合并合并u 直接使用中括号直接使用中括号u 使用使用 strvcat 函数函数 str3=Matrix ; Laboratorystr4=strvcat(Matrix,Laboratory)l 在中
21、括号中用在中括号中用分号分号实现垂直实现垂直合并合并,必须保证每个字符,必须保证每个字符串串的的长度相等,否则需用空格补齐长度相等,否则需用空格补齐l 用用 strvcat 合并合并,自动为较短的字符串,自动为较短的字符串补充补充空格空格l 垂直合并垂直合并得到的是一个字符得到的是一个字符数组数组 运行字符串运行字符串q 运行字符串所表示的表达式或命令:运行字符串所表示的表达式或命令: evalstr=1+2;a=eval(str)str=A=magic(3);eval(str)str1=figure(1); mesh(peaks(60);str2=figure(2); waterfall(p
22、eaks(60);eval(str1)eval(str2)函函 数数功功 能能函函 数数功功 能能strcmp比较字符串比较字符串strrep替换字符串替换字符串strcmpi忽略大小写比较忽略大小写比较字符串字符串strncmp比较字符串的前比较字符串的前n个字个字符符upper转换为大写转换为大写lower转换为小写转换为小写blanks产生空字符串产生空字符串deblank删除字符串中的空格删除字符串中的空格strmatch 查找匹配的字符查找匹配的字符串串findstr在一个字符串中查找另在一个字符串中查找另一字符串一字符串strjust对齐字符数组,对齐字符数组,包括左对齐,右包括左
23、对齐,右对齐和居中对齐和居中strtok返回字符串中第一个分返回字符串中第一个分隔符隔符 ( 空格,回车和空格,回车和Tab键键 ) 前的部分前的部分字符串相关函数字符串相关函数q 细胞变量的表示方法类似于带有下标的数组,但细胞变量的表示方法类似于带有下标的数组,但这些下标不是用圆括号括起来,而是使用这些下标不是用圆括号括起来,而是使用大括号大括号。q 普通数组中的每个元素都必须具有相同的数据类普通数组中的每个元素都必须具有相同的数据类型,而细胞则没有此要求。型,而细胞则没有此要求。细胞数组细胞数组q Matlab 从从 5.0 版开始引入了一种新的数据类版开始引入了一种新的数据类型型 细胞细胞 (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年度攀枝花攀西职业学院单招《物理》考前冲刺试卷及完整答案详解
- 2024-2025学年度火电电力职业鉴定经典例题带答案详解(巩固)
- 2026中国人寿招聘题库及答案
- 2024-2025学年度一级建造师试题预测试卷必考题附答案详解
- 2024-2025学年度冶金工业技能鉴定测试卷附参考答案详解(A卷)
- 2024-2025学年度电工试题预测试卷及答案详解(各地真题)
- 橙色污染应急预案(3篇)
- 企业各类应急预案(3篇)
- 交房活动方案策划合同(3篇)
- 2026年驻马店职业技术学院单招综合素质考试题库附参考答案详解(综合题)
- 大货车转租合同协议书
- T/ZJSEE 0016-2023高压电缆线路故障定位在线监测装置技术规范
- 2025全国英语等级考试(PETS)二级试卷:智能城市英语阅读理解
- 设备合伙投资协议书
- 合同到期后延长期限的补充协议5篇
- 化妆品内包材清洁消毒验证方案
- 外墙真石漆协议书范本
- 幼儿园入学准备教育指导要点
- 结肠水疗透析临床应用
- 《考研英语:综合能力提升教程(新版)》配套课件-阅读理解
- 河道生态修复治理实施方案
评论
0/150
提交评论