目录
从字符数组转换为数值
此表中列出的函数提供了多种将字符数组转换为数值数据的方法。
函数 |
说明 |
示例 |
---|---|---|
double,single uint8,uint16,uint32,uint64 int8,int16,int32,int64 |
将字符转换为表示该字符的整数代码。 |
‘Hi’ → 72 105 |
str2num |
将字符类型转换为数值类型。 |
’72 105′ → [72 105] |
str2double |
与str2num类似,但提供更佳的性能,用于处理字符串数组和字符向量元胞数组。 |
“72” “105” → [72 105] {’72’ ‘105’} → [72 105] |
hex2num |
将数值类型转换为指定精度的字符类型,并返回 MATLAB® 可以计算的字符数组。 |
‘A’ → ‘-1.4917e-154’ |
hex2dec |
将数值类型的十六进制基数转换为正整数。 |
‘A’ → 10 |
bin2dec |
将字符类型的二进制数字转换为十进制数字。 |
‘1010’ → 10 |
base2dec |
将字符类型的2到36内任何进制的数字转换为十进制数字。 |
’12’ → 10 (如果base == 8) |
从字符代码转换
字符数组和字符串数组将每个字符存储为一个 16 位数值。使用一个整数转换函数(例如uint8)或double函数将字符转换为其数值,使用char可恢复其字符表示形式:
name = 'Thomas R. Lee';
name = double(name)
name =
84 104 111 109 97 115 32 82 46 32 76 101 101
name = char(name)
name =
'Thomas R. Lee'
转换代表数值的文本
使用str2num将字符数组转换为由其表示的数值:
chr = '37.294e-1';
val = str2num(chr)
val =
3.7294
str2double函数会将字符串数组或字符向量元胞数组转换为其代表的双精度值:
c = {'37.294e-1'; '-58.375'; '13.796'};
str = string({'3.14159','2.718'});
d = str2double(c)
d =
3.7294
-58.3750
13.7960
x = str2double(str)
x =
3.1416 2.7180
whos
Name Size Bytes Class Attributes
c 3x1 380 cell
d 3x1 24 double
str 1x2 196 string
x 1x2 16 double
从特定基数转换
要将非十进制数字的字符表示转换为该数字的值,使用以下函数之一:hex2num、hex2de、bin2dec或base2dec。
hex2num和hex2dec函数都接受十六进制(以16为基数)输入,但hex2num返回它表示的 IEEE® 双精度浮点数,而hex2dec则将输入转换为十进制整数。