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,分别代表 true 和 false
12 char 字符数据(字符串存储为字符向量)
13 cell array 索引单元格数组,每个单元格都能够存储不同维度和数据类型的数组
14 structure 类 C 结构,每个结构都有命名字段,能够存储不同维度和数据类型的数组
15 function handle 指向函数的指针
16 user classes 从用户定义的类构造的对象
17 java 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 转换为字符数组(string)
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 判断item是否为字符数组
isfield 判断输入是否为结构体数组字段
isfloat 确定输入是否为浮点数组
ishghandle 对于 Handle Graphics 对象句柄为 True
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

查看笔记

扫码一下
查看教程更方便