MATLAB 数据类型

154 阅读5分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第8天,点击查看活动详情

MATLAB 数据类型

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

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

例如,

Total = 42

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

MATLAB中可用的数据类型

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

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

序号数据类型和说明
1int88位有符号整数
2uint88位无符号整数
3int1616位有符号整数
4uint1616位无符号整数
5int3232位有符号整数
6uint3232位无符号整数
7int6464位有符号整数
8uint6464位无符号整数
9single单精度数值数据
10double双精度数值数据
11logical逻辑值1或0,分别表示true和false
12char字符数据(字符串存储为字符向量)
13cell array索引单元格数组,每个单元格能够存储不同维度和数据类型的数组
14structure类似于C的结构,每个结构都具有能够存储不同维度和数据类型的数组的命名字段
15function handle指向函数的指针
16user classes从用户定义的类构造的对象
17java classes从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