MATLAB中数据类型主要包括1 数值类型,2 逻辑类型,3 字符串,4 函数句柄,5 结构体, 6 单元数组类型。MATLAB中的默认数值类型是双精度浮点类型。
1 : 数值类型
类型 | 数据格式 /转换函数 |
---|---|
有符号整数 | int8,int16,int32,int64 |
无符号整数 | uint8,uint16,uint32,uint64 |
单精度浮点数 | single 32位 |
双精度浮点数 | double 64位 |
复数 | real(z) 返回复数z的实部 |
imag(z) 返回复数z的虚部 | |
abs(z) 返回复数z的模 | |
angle(z) 返回复数z的辐角 | |
conj(z) 返回复数z的共轭复数 | |
complex(a,b) 以a为实部,b为虚部创建复数 | |
无穷量 | Inf 正无穷量 -Inf 负无穷量 |
非数值量 | NaN |
1.1 : 取整函数
函数 | 运算法则 |
---|---|
floor(x) | 向下取整 |
ceil(x) | 向上取整 |
round(x) | 取最接近的整数 如果小数部分是0.5,则向绝对值大的方向取整 |
fix(x) | 向0取整 |
1.2 : 双精度浮点数参与运算时:
参与运算的其他数据类型 | 返回值的类型 |
---|---|
逻辑型/字符型 | 双精度浮点型 |
整数型 | 整数类型 |
单精度浮点型 | 单精度浮点型 |
注:整数只能与相同类的整数或标量双精度值组合使用。
eps函数,可以获取一个数值和最接近该数值的浮点数之间的间隙。
2 :逻辑类型
逻辑类型的关系操作符和逻辑运算符:
关系操作符 | 说明 |
---|---|
< | 小于 |
<= | 小于或等于 |
> | 大于 |
>= | 大于或等于 |
== | 等于 |
~= | 不等于 |
逻辑运算符 | 说明 |
& | 与 |
\ | 或 |
~ | 非 |
3 : 字符和字符串
字符串处理函数:
(1)字符串的构造:字符串或字符串数组的构造可以直接给变量赋值,具体表达式中字符串的内容要在单引号内。
构造多行字符串时:若字符串内容写在[]内,多行字符串的长度必须相同。若字符串内容写在{}内,多行字符串的长度不必相同。
(2)strvcat函数,char函数:用于纵向连接多个字符串。strvcat函数:每行字符串的长度不要求相等,所有非最长字符串的右边都会自动补空格。char函数与strvcat函数类似,不过当多行字符串中有空字符串时,strvcat函数会自动进行忽略,char函数会把字符串也用空格补偿后再进行连接。
(3)strcmp函数来比较两个字符串是否相同。也可以用关系运算符。
(4)findstr函数用来字符串的查找与搜索。此函数对字母的大小写敏感,对字符串矩阵不起作用。
(5)strrep函数实现字符串的替换,对字符串矩阵也不起作用。或通过对字符串数组中相应的元素直接赋值来实现。
(6)字符串类型与数字类型转换函数:
4 : 函数句柄
调用函数方法 | 说明 |
---|---|
直接调用函数 | 被调用函数称为子函数,在一个文件中只能有一个主函数 |
间接调用函数 | 创建函数句柄时需要用到操作符@,通过函数句柄实现函数的间接调用 |
创建函数句柄的一般句法格式为:
Function_Handle= @Function_Filename
其中:
1 : Function_Filename是函数所对应的M文件的名称或MATLAB内部函数的名称。
2 : @是句柄创建操作符
3 : Function_Handle变量保存了这一函数句柄,并在后续的运算中作为数据流进行传递。
函数句柄的操作函数:
5 : 结构体类型
结构体相当于一个容器,把多个相关联的不同类型的数据封装在一个结构体中。
创建结构体的方法:
方法 | 具体操作 |
---|---|
通过赋值语句给结构体的字段赋值 | “结构体名称.字段名称” |
利用struct函数创建结构体 | StrArray = struct(‘fieldl’,var1,…) |
6 : 数组类型
Array = i : k
创建从i开始,步长为1,到k结束的数字序列。如果i>k,MATLAB则返回一个空矩阵。数字i和k不必是整数。
Array = i : j : k
创建从i开始,步长为j,到k结束的数字序列。如果j等于0,则返回一个空矩阵。
Array = linspace(a,b,100)
在区间[a,b]上创建一个有100个元素的向量,这100个数把整个区间线性分隔。
Array = linspace(a,b,n,100)
在区间[a,b]上创建一个有n个元素的向量。
7 : 单元数组类型
单元数组是一种无所不包的广义矩阵,组成单元数组的每一个元素称为一个单元。每个单元可以包括一个任意数组。单元数组的维数不受限制。