当前位置:
文档之家› 第3章 Matlab数据类型
第3章 Matlab数据类型
数值范围
-128~127 0~255 -215~215-1
转换函数
int8 uint8 int16
无符号16位整数 有符号32位整数
无符号32位整数
0~216-1 -231~231-1
0~232-1
uint16 int32
uint32
2013-8-9
Application of MATLAB
8
3.2 数值类型数据
例如name = char(‘Liu Ying’; ’Hu Xu’)
从数组中提取字符串时,用deblank函数删除后面的空格。
trimname= deblank(name(2,:))
size(trimname)
2013-8-9 Application of MATLAB 16
3.4 字符和字符串
3.2.1 整型数据类型
int8:将值或变量指定为整型 class函数:变量数据类型 把数值转换为一种整型数据类型时,matlab会将结果圆整 到最近的整型值
对于小数位取5的情况,如果数值为正,则向上圆整,否则向下圆
整
将大于整型数据类型最大值的数据转换为该整型时,matlab返回最 大值。如果数据值小于数据类型的最小值,则返回最小值
变量的数据类型
有符号和无符号的整数类型 大部分整数类型占用比浮点类型更少的内存空间 单精度浮点类型 和双精度浮点类型相比,占用内存空间更小,精度和 数值范围都比双精度浮点类型小 双精度浮点类型 Matlab中默认的数值类型 逻辑类型数据 1代表逻辑真,0代表逻辑假 字符串类型 元胞数组类型 数组元素可以是不同的数据类型 注:存储多个字符串最好用元胞数组类型
2013-8-9 Application of MATLAB 18
3.4 字符和字符串
3.4.4 聚合字符串
字符的聚合方法:使用聚合运算符[ ]或sprintf函数
num_chars = 28; s = [‘There are ‘int2str(num_chars)’ characters here’] s = sprintf(‘There are %d characters here\n’, num-chars)
3.1.4 变量的数据类型
变量数据类型
logical 逻辑型
char 字符/字 符串
numeric 数值型
cell 元胞数组
structure 结构体
Java classes Java类
function handle 函数句柄
int8, unit8, int16, uint16, int32, uint32, int64, uint64, 整数类型
3.4.2 类型转换
abs(str)返回一个向量,其元素是字符串中字符的ASCII值
char(x) 根据指定的字符集将向量 x 中的整数转化成字符。 这个命令是命令abs的逆操作。 num2str(f)将数值f转换成字符串 str2num(str)将字符串str转换为数字 lower(str)将字符串中所有字母转换为小写字母 upper(str)将字符串中所有字符转化为大写字母
“-Inf”和“Inf”表示“负无穷”和“正无穷”,一旦运算结果超 出浮点数的表示范围,系统会用“-Inf”和“Inf”表示计算结果
非数(NaN),是“Not a Number”的缩写,是一个既不是实数也 不是复数的数值,matlab提供这样一个数值的目的是扩大运算范 围,对于0/0、Inf/Inf的运算结果可以有合理的解释
class和ischar函数测试变量数据类型
class(country) 返回结果为ans=char ischar(country) 返回结果为ans=1
2013-8-9 Application of MATLAB 15
3.4 字符和字符串
3.4.1 创建字符串
创建二维字符串时,确定每行具有相同的长度。
2013-8-9
Application of MATLAB
9
3.2 数值类型数据
3.2.1 整型数据类型
两个相同类型的数据相加,结果仍为该整型
例如x=int16(5)+int16(9) 返回结果为x=14 class(x) 返回结果为ans=int16
如果结果大于数据类型的最大值或小于最小值,会返回最 大值或最小值
浮点类型
有符号、无符号16位 有符号、无符号32位 有符号、无符号64位 单精度 双精度(包括复数、inf和NaN等)
2013-8-9
Application of MATLAB
7
3.2 数值类型数据
3.2.1 整型数据类型
整型数据类型及其取值范围
整数类型
有符号8位整数 无符号8位整数 有符号16位整数
2013-8-9 Application of MATLAB 17
3.4 字符和字符串
3.4.3 比较字符串
strcmp函数比较字符串 strncmp函数可以比较字符串的前n+1个字符 对于字符串结构数组,这两个函数一个单元一个单元地进行比较 对于字符串,可使用关系运算符
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 1
例如 name = [‘Li Yi’; ’Hu Xu’]
根据不同长度的字符串创建二维字符串时,将短的那些字符串后 面用空格对齐,使所有字符串的长度相同。
例如 name=[‘Liu Ying’; ’Hu Xu ’]
用 char 函数创建字符串数组, char 函数自动以最长字符串的长度 为标准,进行空格补齐。
N = namelengthmax
Matlab用字符i和j表示虚数单位,如果涉及 到复数计算,应避免把i和j用作变量名
isvarname 8th_column
2013-8-9 Application of MATLAB 3
3.1 常数与变量
3.1.3 创建变量
在MATLAB中创建变量不必声明变量的数据类型
2013-8-9 Application of MATLAB 12
3.3 逻辑类型数据
Matlab用“0”和“1”分别代表“逻辑假”和“逻辑真”。 逻辑类型数据常以标量的形式出现,但有时也可以是逻辑数组。 在关系和逻辑运算表达式中所有输入非0的数都为“逻辑真”,只有0 才为“逻辑假”;计算结果,如果值为1,表示“真”,如果值为0, 表示“假”。
第3章 Matlab 数据类型
主要内容
常量与变量 数值类型 逻辑类型 字符和字符串 元胞数组 结构体 函数句柄
2013-8-9 Application of MATLAB 1
3.1 常数与变量
3.1.1 MATLAB系统的特殊变量和常数
特殊变量 ans 意 义 默认变量名,如果用户未定义变量名,matlab自动将结果保存 到ans中
2013-8-9 Application of MATLAB 11
3.2 数值类型数据
3.2.3 双精度浮点型数据类型
对于数值变量,默认时matlab指定数据为double型 对于大部分数值计算任务而言,推荐使用double型 复数属于双精度浮点数的一种特殊类型,复数作为一个整体进行 处理。
例如intwarning(‘on’) int16(50000) Warning: Out of range vonverted to intmin(‘int16’) or intmax(‘int16’) ans=32767
2013-8-9 Application of MATLAB 10
3.2 数值类型数据
例创建一个A变量 A=9
将变量的值赋给另一个变量前,必须确定该变量有值, 否则会返回错误。 例如 A=a
??? Undefined function or variable 'a'.
如果变量已经存在,给它赋值会替换它的当前值
2013-8-9
Application of MATLAB
4
3.1 常数与变量
@个成员可以存储多种 类型的数据
函数句柄,相当于一个指针
Application of MATLAB 6
函数句柄
2013-8-9
3.2 数值类型数据
数值类型包括有符号整数类型、无符号整数类型、单 精度浮点类型和双精度浮点类型
有符号、无符号8位
整数类型 数值类型
用strcat函数也可以把两个或更多字符串组合在一起
country = ‘China’; province = ‘Sichuan’ strcat(country, ’,’, province)
2013-8-9
Application of MATLAB
13
3.4 字符和字符串
字符串又称为字符数组,由多个字符连接而成。
字符串一般用单引号括起来。例如,‘Central South University’。
字符串是以ASCII码形式存储的。abs和double函数都可 以用来获取字符串矩阵所对应的ASCII码数值矩阵。相 反,char函数可以把ASCII码数值矩阵转换为字符串矩 阵。 在字符串里的每个字符是数组里的一个元素,字符串的 存储要求每个字符2个字节。
Application of MATLAB 2