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 | 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 | 转换为字符数组(字符串) |
int2str | 将整数数据转换为字符串 |
mat2str | 将矩阵转换为字符串 |
num2str | 将数字转换为字符串 |
str2double | 将字符串转换为双精度值 |
str2num | 将字符串转换为数字 |
native2unicode | 将数值字节转换为Unicode字符 |
unicode2native | 将Unicode字符转换为数值字节 |
base2dec | 将N进制数字符串转换为十进制数 |
bin2dec | 将二进制数字符串转换为十进制数 |
dec2base | 将十进制数转换为N进制数字符串 |
dec2bin | 将十进制数转换为二进制数字符串 |
dec2hex | 将十进制数转换为十六进制数字符串 |
hex2dec | 将十六进制数字符串转换为十进制数 |
hex2num | 将十六进制数字符串转换为双精度数 |
num2hex | 将单精度和双精度数转换为IEEE十六进制字符串 |
cell2mat | 将cell数组转换为数值数组 |
cell2struct | 将cell数组转换为结构数组 |
cellstr | 从字符数组创建字符串cell数组 |
mat2cell | 将数组转换为具有不同大小单元的cell数组 |
num2cell | 将数组转换为具有一致大小单元的cell数组 |
struct2cell | 将结构转换为cell数组 |
确定数据类型
MATLAB提供了各种函数来确定变量的数据类型。
下表提供了用于确定变量数据类型的函数:
函数 | 目的 |
---|---|
is | 检测状态 |
isa | 确定输入是否为指定类的对象 |
iscell | 确定输入是否为单元数组 |
iscellstr | 确定输入是否为字符串单元数组 |
ischar | 确定项是否为字符数组 |
isfield | 确定输入是否为结构数组字段 |
isfloat | 确定输入是否为浮点数数组 |
ishghandle | 对于Handle Graphics对象句柄为真 |
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