目录
str2num函数将字符数组或字符串转换为数值数组。
语法
X = str2num(chr)
[X,tf] = str2num(chr)
表示数值矩阵的文本可以包含空格、逗号或分号,例如 '5'、'10,11,12' 或 '5,10;15,20'。除数值和分隔符之外,输入文本还可以包含以下各项:
-
小数点
-
前导
+
或-
符号 -
字母 e 或 d,后接 10 的幂指数
-
字母 i 或 j,指示复数或虚数
-
true 或 false,指示逻辑值
说明
X = str2num(chr) 将字符数组或字符串标量转换为数值矩阵。输入可以包含空格、逗号和分号,以指示单独的元素。如果 str2num 不能将输入解析为数值,则返回空矩阵。
注:tr2num 函数不转换元胞数组或非标量字符串数组,并且对 + 和 - 运算符前后的空格敏感。此外,str2num 使用 eval 函数,当输入包含函数名称时,此函数可能会产生意外的副作用。为了避免这些问题,请使用 str2double。
[X,tf] = str2num(chr) 还返回第二个输出参数,如果 str2num 成功转换 chr,则返回 1 (true)。否则,str2num 返回 0 (false)。
示例
转换为数值矩阵
转换表示数字的字符向量。
X = str2num('100')
X = 100
X = str2num('100 200 300 400')
X = 1×4
100 200 300 400
str2num 可以解释指数记数法。
X = str2num('12e-3 5.9e-3 -8.1e-3 2.56e-3; 5 11.2 17.9 33')
X = 2×4
0.0120 0.0059 -0.0081 0.0026
5.0000 11.2000 17.9000 33.0000
转换为整数
使用 str2num 和 uint16 将字符向量转换为无符号 16 位整数。
X = str2num('256');
X = uint16(X)
X = uint16
256
转换为逻辑值
将包含 true 和 false 的字符向量转换为逻辑数组。
X = str2num('false true true false')
X = 1x4 logical array
0 1 1 0
检查转换状态
返回失败的转换状态。tf 为 0,X 为空矩阵。
[X,tf] = str2num('12e-3 m/s, 5.9e-3 m/s')
X =
[]
tf = logical
0
如果删除多余的文本 (m/s),则转换成功。
[X,tf] = str2num('12e-3 5.9e-3')
X = 1×2
0.0120 0.0059
tf = logical
1