MATLAB 数据类型17 Mar 2025 | 5 分钟阅读 MATLAB 的基本数据类型(也称为类)是数组或矩阵。MATLAB 中有 15 种基本数据类型。这些数据类型中的每一种都构建在矩阵或数组的基础上。这些矩阵或数组的最小尺寸为 0x0,可以扩展到任意大小的 n 维数组。  下表描述了这些数据类型: 数据类型 | 示例 | 描述 |
---|
int8, uint8, int16, uint16, int32, uint32, int64, uint64 | uint16(65000) | 有符号和无符号整数的数组。它比 single 或 double 需要更少的存储空间。除了 int64 和 uint64,所有整数数据类型都可以用于数学运算。 | single | 3 * 10^38 | 单精度数字的数组。它比 double 需要更少的存储空间,但精度较低,范围也较小。 | double | 3 * 10^300 5 + 6i | 双精度数字的数组。二维数组可以是稀疏的。MATLAB 中的默认数值类型。 | 逻辑 | magic(4) > 10 | 用于分别表示 true 和 false 的逻辑值 1 或 0 的数组。二维数组可以是稀疏的。 | char | 'Hello' | 字符数组。字符串表示为字符向量。对于包含多个字符串的数组,最好使用单元数组。 | cell array | a{1,1} = 12; a{1,2} = 'Red'; a{1,3} = magic(4); | 索引单元格的数组,每个单元格都可以存储不同维度和数据类型的数组。 | structure | a.day = 12; a.color = 'Red'; a.mat = magic(3); | C 风格结构的数组,每个结构都有命名的字段,可以存储不同维度和数据类型的数组。 | function handle | @sin | 函数的指针。您可以将函数句柄传递给其他函数。 | user class | polynom([0 -2 -5]) | 从用户定义的类构造的对象。 | Java class | java.awt.Frame | 从 Java 类构造的对象。 |
数值类型MATLAB 中的数值数据类型包括有符号和无符号整数,以及单精度和双精度浮点数。与双精度相比,整数和单精度数组提供的内存存储更有效。 所有数值类型都提供基本的数组函数,例如下标索引和重塑。除了 int64 和 uint64,所有数值类型都可以用于数值运算。 整数MATLAB 有四种有符号和四种无符号整数数据类型。 有符号类型可以处理负整数和正整数,但由于使用一位来表示数字的正负号,因此不能像无符号类型那样处理更广泛的数字范围。 无符号类型提供更广泛的数字范围,但这些数字只能是零或正数。 MATLAB 为数值数据提供 1 字节、2 字节、4 字节和 8 字节的存储。如果我们使用最适合数据的最小整数类型,可以节省程序的内存和执行时间。例如,我们不需要 32 位整数来存储值 100。 以下是八种数值数据类型,每种类型可以存储的值的范围,以及创建该类型所需的 MATLAB 转换操作: 数据类型 | 值范围 | 转换函数 |
---|
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 默认将数值数据存储为双精度浮点数。要将数据存储为整数,请使用上表中显示的转换函数之一。 我们可以使用 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 | 它确定一个数是实数还是虚数。 |
|