MATLAB - 数据类型


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

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

例如,

Total = 42

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

MATLAB 中可用的数据类型

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

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

先生。 数据类型和描述
1

整型8

8 位有符号整数

2

uint8

8 位无符号整数

3

整型16

16 位有符号整数

4

uint16

16 位无符号整数

5

整型32

32 位有符号整数

6

uint32

32 位无符号整数

7

整型64

64 位有符号整数

8

uint64

64 位无符号整数

9

单身的

单精度数值数据

10

双倍的

双精度数值数据

11

逻辑的

逻辑值1或0,分别代表true和false

12

字符

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

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 提供了各种将值从一种数据类型转换为另一种数据类型的函数。下表显示了数据类型转换函数 -

功能 目的
字符 转换为字符数组(字符串)
int2str 将整数数据转换为字符串
mat2str 将矩阵转换为字符串
数字2str 将数字转换为字符串
str2双 将字符串转换为双精度值
字符串2号 将字符串转换为数字
原生2unicode 将数字字节转换为 Unicode 字符
unicode2native 将 Unicode 字符转换为数字字节
基数2dec 将 N 基数字符串转换为十进制数
bin2dec 将二进制数字字符串转换为十进制数字
十进制数据库 将字符串中的小数转换为以 N 为基数的数字
十进制2bin 将字符串中的十进制数转换为二进制数
十进制 将字符串中的十进制数转换为十六进制数
十六进制2dec 将十六进制数字字符串转换为十进制数字
十六进制数 将十六进制数字字符串转换为双精度数字
十六进制数 将单打和双打转换为 IEEE 十六进制字符串
细胞2垫 将元胞数组转换为数值数组
细胞2结构体 将元胞数组转换为结构体数组
细胞因子 从字符数组创建字符串元胞数组
mat2cell 将数组转换为具有可能不同大小的单元格的单元格数组
单元格数量 将数组转换为单元格大小一致的单元格数组
结构2单元 将结构体转换为元胞数组

数据类型的确定

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

下表提供了用于确定变量数据类型的函数 -

功能 目的
检测状态
伊萨 确定输入是否是指定类的对象
伊塞尔 判断输入是否为元胞数组
iscellstr 确定输入是否为字符串元胞数组
伊斯查尔 判断item是否为字符数组
伊斯菲尔德 判断输入是否为结构体数组字段
是浮动的 判断输入是否为浮点数组
什甘德尔 对于 Handle Graphics 对象句柄为 True
是整数 判断输入是否为整数数组
是java 判断输入是否是Java对象
不合逻辑的 判断输入是否为逻辑数组
是数字的 判断输入是否为数值数组
对象 确定输入是否为 MATLAB 对象
是真实的 检查输入是否是真实数组
是标量 确定输入是否为标量
伊斯特 判断输入是否为字符数组
结构体 判断输入是否为结构体数组
向量 判断输入是否为向量
班级 确定对象的类别
验证属性 检查数组的有效性
谁是 列出工作区中的变量,包括大小和类型

例子

使用以下代码创建脚本文件 -

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