字符串与字符数组转换
MATLAB中字符串(string
类型)和字符数组(char
类型)的处理有所不同,但也可以互相转换。
string
- 创建一个字符串数组
str = string('Hello, World!');
char
- 转换为字符数组(从R2016b开始,char
函数也用于将数值转换为字符表示)
strArray = ['Hello', ' ', 'World!']; % 字符数组
str = char(strArray); % 在这种情况下是多余的,因为strArray已经是字符数组
numChar = char(65); % 将ASCII码转换为对应字符
string(charArray)
- 将字符数组转换为字符串数组
charArray = ['Hello', ' ', 'World!'];
str = string(charArray);
逻辑与数值转换
logical
- 将数值转换为逻辑值(非零为true
,零为false
)
A = [0, 1, 2, 3];
B = logical(A); % [0, 1, 1, 1]
double
、single
等 - 将逻辑值转换为数值(true
为1,false
为0)
L = logical([0, 1, 1, 0]);
D = double(L); % [0, 1, 1, 0]
类别型(Categorical)
MATLAB中的类别型数据是一种特殊的数据类型,用于存储字符串数组中的唯一值。
categorical
- 创建一个类别数组
C = categorical({'apple', 'banana', 'apple'});
string
、cell
- 将类别数组转换为字符串数组或单元数组
C = categorical({'apple', 'banana'});
S = string(C); % 转换为字符串数组
Cell = cell(C); % 转换为单元数组
数值类型转换
double
- 将数组转换为双精度浮点数
A = uint8([1, 2, 3]);
B = double(A); % 将uint8转换为double
single
- 将数组转换为单精度浮点数
A = double([1, 2, 3]);
B = single(A); % 将double转换为single
int8
、int16
、int32
、int64
- 转换为有符号整数
A = 12345;
B = int32(A); % 将数值转换为32位有符号整数
uint8
、uint16
、uint32
、uint64
- 转换为无符号整数
A = 255;
B = uint8(A); % 将数值转换为8位无符号整数