MATLAB - 数据类型



MATLAB 不需要任何类型声明或维度语句。每当 MATLAB 遇到一个新的变量名时,它都会创建该变量并分配相应的内存空间。

如果变量已存在,则 MATLAB 会将原始内容替换为新内容,并在必要时分配新的存储空间。

例如:

Total = 42

上述语句创建一个名为“Total”的 1×1 矩阵,并在其中存储值 42。

MATLAB 中可用的数据类型

MATLAB 提供 15 种基本数据类型。每种数据类型都存储以矩阵或数组形式存在的数据。此矩阵或数组的尺寸最小为 0×0,可以增长到任何尺寸的矩阵或数组。

下表显示了 MATLAB 中最常用的数据类型:

序号 数据类型和描述
1

int8

8 位有符号整数

2

uint8

8 位无符号整数

3

int16

16 位有符号整数

4

uint16

16 位无符号整数

5

int32

32 位有符号整数

6

uint32

32 位无符号整数

7

int64

64 位有符号整数

8

uint64

64 位无符号整数

9

single

单精度数值数据

10

double

双精度数值数据

11

logical

逻辑值 1 或 0,分别表示真和假

12

char

字符数据(字符串存储为字符向量)

13

元胞数组

索引单元格的数组,每个单元格都可以存储不同维度和数据类型的数组

14

结构体

C 语言风格的结构体,每个结构体都有命名字段,可以存储不同维度和数据类型的数组

15

函数句柄

指向函数的指针

16

用户类

从用户定义的类构造的对象

17

Java 类

从 Java 类构造的对象

示例

创建一个包含以下代码的脚本文件:

str = 'Hello World!'
n = 2345
d = double(n)
un = uint32(789.50)
rn = 5678.92347
c = int32(rn)

编译并执行上述代码后,将产生以下结果:

str = Hello World!
n =  2345
d =  2345
un = 790
rn = 5678.9
c =  5679

数据类型转换

MATLAB 提供各种函数用于将值从一种数据类型转换为另一种数据类型。下表显示了数据类型转换函数:

函数 用途
char 转换为字符数组(字符串)
int2str 将整数数据转换为字符串
mat2str 将矩阵转换为字符串
num2str 将数字转换为字符串
str2double 将字符串转换为双精度值
str2num 将字符串转换为数字
native2unicode 将数字字节转换为 Unicode 字符
unicode2native 将 Unicode 字符转换为数字字节
base2dec 将 N 进制数字字符串转换为十进制数字
bin2dec 将二进制数字字符串转换为十进制数字
dec2base 将十进制转换为 N 进制数字字符串
dec2bin 将十进制转换为二进制数字字符串
dec2hex 将十进制转换为十六进制数字字符串
hex2dec 将十六进制数字字符串转换为十进制数字
hex2num 将十六进制数字字符串转换为双精度数字
num2hex 将单精度和双精度数转换为 IEEE 十六进制字符串
cell2mat 将元胞数组转换为数值数组
cell2struct 将元胞数组转换为结构体数组
cellstr 从字符数组创建字符串元胞数组
mat2cell 将数组转换为元胞数组,元胞大小可能不同
num2cell 将数组转换为元胞数组,元胞大小一致
struct2cell 将结构体转换为元胞数组

数据类型的确定

MATLAB 提供各种函数用于识别变量的数据类型。

下表提供了确定变量数据类型的函数:

函数 用途
is 检测状态
isa 确定输入是否为指定类的对象
iscell 确定输入是否为元胞数组
iscellstr 确定输入是否为字符串元胞数组
ischar 确定项目是否为字符数组
isfield 确定输入是否为结构体数组字段
isfloat 确定输入是否为浮点数组
ishghandle 对于句柄图形对象句柄为真
isinteger 确定输入是否为整数数组
isjava 确定输入是否为 Java 对象
islogical 确定输入是否为逻辑数组
isnumeric 确定输入是否为数值数组
isobject 确定输入是否为 MATLAB 对象
isreal 检查输入是否为实数数组
isscalar 确定输入是否为标量
isstr 确定输入是否为字符数组
isstruct 确定输入是否为结构体数组
isvector 确定输入是否为向量
class 确定对象的类
validateattributes 检查数组的有效性
whos 列出工作区中的变量,包括大小和类型

示例

创建一个包含以下代码的脚本文件:

x = 3
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
 
x = 23.54
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
 
x = [1 2 3]
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
 
x = 'Hello'
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)

运行文件时,会产生以下结果:

x = 3
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x = 23.540
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x =

          1          2          3

ans = 0
ans = 1
ans = 1
ans = 0
x = Hello
ans = 0
ans = 0
ans = 1
ans = 0
ans = 0
广告