MATLAB 数据类型

17 Mar 2025 | 5 分钟阅读

MATLAB 的基本数据类型(也称为类)是数组或矩阵。MATLAB 中有 15 种基本数据类型。这些数据类型中的每一种都构建在矩阵或数组的基础上。这些矩阵或数组的最小尺寸为 0x0,可以扩展到任意大小的 n 维数组。

MATLAB Data Types

下表描述了这些数据类型:

数据类型示例描述
int8, uint8,
int16, uint16,
int32, uint32,
int64, uint64
uint16(65000)有符号和无符号整数的数组。它比 single 或 double 需要更少的存储空间。除了 int64 和 uint64,所有整数数据类型都可以用于数学运算。
single3 * 10^38单精度数字的数组。它比 double 需要更少的存储空间,但精度较低,范围也较小。
double3 * 10^300
5 + 6i
双精度数字的数组。二维数组可以是稀疏的。MATLAB 中的默认数值类型。
逻辑magic(4) > 10用于分别表示 true 和 false 的逻辑值 1 或 0 的数组。二维数组可以是稀疏的。
char'Hello'字符数组。字符串表示为字符向量。对于包含多个字符串的数组,最好使用单元数组。
cell arraya{1,1} = 12;
a{1,2} = 'Red';
a{1,3} = magic(4);
索引单元格的数组,每个单元格都可以存储不同维度和数据类型的数组。
structurea.day = 12;
a.color = 'Red';
a.mat = magic(3);
C 风格结构的数组,每个结构都有命名的字段,可以存储不同维度和数据类型的数组。
function handle@sin函数的指针。您可以将函数句柄传递给其他函数。
user classpolynom([0 -2 -5])从用户定义的类构造的对象。
Java classjava.awt.Frame从 Java 类构造的对象。

数值类型

MATLAB 中的数值数据类型包括有符号和无符号整数,以及单精度和双精度浮点数。与双精度相比,整数和单精度数组提供的内存存储更有效。

所有数值类型都提供基本的数组函数,例如下标索引和重塑。除了 int64 和 uint64,所有数值类型都可以用于数值运算。

整数

MATLAB 有四种有符号和四种无符号整数数据类型。

有符号类型可以处理负整数和正整数,但由于使用一位来表示数字的正负号,因此不能像无符号类型那样处理更广泛的数字范围。

无符号类型提供更广泛的数字范围,但这些数字只能是零或正数。

MATLAB 为数值数据提供 1 字节、2 字节、4 字节和 8 字节的存储。如果我们使用最适合数据的最小整数类型,可以节省程序的内存和执行时间。例如,我们不需要 32 位整数来存储值 100。

以下是八种数值数据类型,每种类型可以存储的值的范围,以及创建该类型所需的 MATLAB 转换操作:

数据类型值范围转换函数
8 位有符号整数-27 到 27-1int8
16 位有符号整数-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

创建整数数据

MATLAB 默认将数值数据存储为双精度浮点数。要将数据存储为整数,请使用上表中显示的转换函数之一。

我们可以使用 whos 函数来显示由变量表示的数组的维度、字节数和数据类型。

如果我们想将输出分配给类,如这里所示,我们可以使用 class 函数。

如果只想验证 x 是否为整数,请使用 isinteger 函数。

整数函数

函数描述
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 数据类型。存储为 double 的任何值都需要 64 位,格式如下表所示:

用途
63符号(0 = 正数,1 = 负数)
62 到 52指数,以 1023 为基数
51 到 0数字 1.f 的小数部分 f

单精度浮点数

MATLAB 根据 IEEE 754 单精度标准构成 single 数据类型。存储为 single 的任何值都需要 32 位,格式如下表所示:

用途
31符号(0 = 正数,1 = 负数)
30 到 23指数,以 127 为基数
22 到 0数字 1.f 的小数部分 f

浮点函数

函数描述
double它转换为双精度。
single它转换为单精度。
class它返回对象的类。
isa它确定输入值是否具有指定的数据类型。
isfloat它确定输入值是否为浮点数组。
isnumeric它确定输入值是否为数值数组
eps它返回浮点相对精度。此值是 MATLAB 在其评估中使用的大小。
realmax它返回您的计算机可以表示的最大浮点数。
realmin它返回我们计算机可以表示的最小浮点数。

复数

复数由两部分组成:实部和虚部。主要的虚数单位等于 -1 的平方根。在 MATLAB 中,它通过两个字母中的一个来显示:i 或 j。

创建复数

以下语句显示了一种创建复数值的方法。变量 x 被赋值为一个实部为 2,虚部为 3 的复数。

x = 2 + 3i;

复数函数

函数描述
complex它从实部和虚部构造复数数据。
i or j它返回用于构造复数数据的虚数单位。
real它返回复数的实部。
imag它返回复数的虚部。
isreal它确定一个数是实数还是虚数。

下一个主题MATLAB 运算符