个性化阅读
专注于IT技术分析

MATLAB数据类型

本文概述

MATLAB中的基本数据类型(也称为类)是数组或矩阵。 MATLAB中有15种基本数据类型。这些数据类型中的每一个都在矩阵或数组的内部。此矩阵或数组的大小最小为0 x 0, 并且可以增加到任意大小的n维数组。

MATLAB数据类型

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

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 它确定数字是实数还是虚数。

赞(0)
未经允许不得转载:srcmini » MATLAB数据类型

评论 抢沙发

评论前必须登录!