本文概述
MATLAB中的基本数据类型(也称为类)是数组或矩阵。 MATLAB中有15种基本数据类型。这些数据类型中的每一个都在矩阵或数组的内部。此矩阵或数组的大小最小为0 x 0, 并且可以增加到任意大小的n维数组。
下表描述了这些数据类型是:
Data Type
Example
Description
int8, uint8, int16, uint16, int32, uint32, int64, uint64
uint16(65000)
有符号和无符号整数的数组。它需要的存储空间少于单个或两倍。除int64和uint64之外的所有整数数据类型均可用于数学运算。
single
3 * 10^38
单精度数字的数组。它需要的存储空间少于两倍, 但精度较低, 范围较小。
double
3 * 10 ^ 300 5 + 6i
双精度数字数组。二维数组可以是稀疏的。 MATLAB中的默认数值类型。
logical
魔力(4)> 10
逻辑值1或0的数组, 分别表示true和false。二维数组可以是稀疏的。
char
‘Hello’
字符数组。字符串表示为字符向量。对于包含多个字符串的数组, 最好使用单元格数组。
cell array
a {1, 1} = 12; a {1, 2} =’红色’; a {1, 3} = magic(4);
索引单元格数组, 每个单元格能够保存各种维数和数据类型的数组。
structure
a.day = 12; a.color =’红色’; a.mat = magic(3);
C类结构的数组, 每个结构都具有能够存储不同维度和数据类型的数组的命名字段。
function handle
@sin
指向函数的指针。你可以将函数句柄传递给其他函数。
用户类别
多项式([0 -2 -5])
从用户定义的类构造的对象。
Java类
java.awt.Frame
从Java类构造的对象。
数值类型
MATLAB中的数值数据类型包含有符号和无符号整数, 以及单精度和双精度浮点数。整数和单精度数组比双精度数组提供更高的内存效率存储。
所有数字类型都提供基本的数组功能, 例如下标和整形。除int64和uint64之外的所有数字类型都可以在数字运算中使用。
整数
MATLAB具有四个有符号和四个无符号整数数据类型。
带符号的类型既可以使用负数也可以使用正数, 但是不能执行与无符号类型相同的数字范围, 因为使用一位来指定数字的正号或负号。
无符号类型可以提供更大范围的数字, 但是这些数字只能为零或正数。
MATLAB提供了数字数据的1、2、4和8字节存储。如果我们使用容纳你数据的最小整数类型, 则可以节省程序的内存和执行时间。例如, 我们不需要32位整数来保存值100。
这是八个数字数据类型, 每种类型可以保存的值范围, 以及创建该类型所需的MATLAB转换操作:
Data Type
取值范围
转换功能
有符号的8位整数
-27至27-1
int8
有符号的16位整数
-215至215-1
int16
有符号的32位整数
-231至231-1
int32
有符号的64位整数
-263至263-1
int64
无符号8位整数
0至28-1
uint8
无符号16位整数
0至216-1
uint16
无符号32位整数
0至232-1
uint32
无符号64位整数
0至264-1
uint64
创建整数数据
MATLAB默认将数字数据保存为双精度浮点数。要将数据保存为整数, 请使用上表所示的转换函数之一:
x = int16 (32501);
我们可以使用whos函数显示变量表示的数组的维数, 字节数和数据类型:
whos x
Name Size Bytes Class
x 1x1 2 int16 array
如果要分配输出, 可以使用class函数, 如下所示:
xType = class(x)
xType =
int16
如果只想验证x是整数, 请使用isinteger函数:
isinteger(x)
ans =
1
整数函数
Function
Description
int8, int16, int32, int64
它将转换为有符号的1、2、4或8字节整数。
UINT8, UINT16, UINT32, UINT64
它将转换为无符号的1、2、4或8字节整数。
class
它返回对象的数据类型。
isa
它确定输入值是否具有指定的数据类型。
isinteger
它确定输入值是否为整数数组。
isnumeric
它确定输入值是否为数字数组。
浮点数字
MATLAB以双精度或单精度格式显示浮点数。默认值为双精度, 但是我们可以使用简单的转换函数来制作任意数量的单精度。
双精度浮点
MATLAB根据IEEE标准754编写了double数据类型, 以实现双精度。存储为双重需要的64位的任何值, 其格式如下表所示:
Bits
Usage
63
符号(0 =正, 1 =负)
62至52
指数, 偏差为1023
51至0
1.f的分数f
单精度浮点
MATLAB会根据IEEE标准754编写单一精度的单一数据类型。保存为单个值的任何值都需要32位, 格式如下表所示:
Bits
Usage
31
符号(0 =正, 1 =负)
30至23
指数, 偏差为127
22至0
1.f的分数f
浮点函数
Function
Description
double
转换为双精度。
single
转换为单精度。
class
它返回对象的数据类型。
isa
它确定输入值是否具有指定的数据类型。
isfloat
它确定输入值是否为浮点数组。
isnumeric
它确定输入值是否为数字数组
eps
它返回浮点相对精度。该值是MATLAB在评估中使用的公差。
realmax
它返回你的计算机可以代表的最大浮点数。
realmin
它返回我们的计算机可以代表的最小浮点数。
复数
复数由两个独立的部分组成:实部和虚部。初级虚数单位等于-1的平方根。这在MATLAB中以两个字母之一显示:i或j。
创建复数
以下语句显示了一种在MATLAB中创建复杂值的方法。为变量x分配了一个复数, 其实部为2, 虚部为3:
x = 2 + 3i;
复数函数
Function
Description
complex
它根据实部和虚部构造复杂的数据。
我或j
它返回用于构造复杂数据的虚拟单位。
real
它返回复数的实部
imag
它返回复数的虚部。
isreal
它确定数字是实数还是虚数。