Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

str2num

将字符数组或字符串转换为数值数组

说明

示例

X = str2num(txt) 将字符数组或字符串标量转换为数值矩阵。输入可以包含空格、逗号和分号,以指示单独的元素。如果 str2num 不能将输入解析为数值,则返回空矩阵。

str2num 函数不转换元胞数组或非标量字符串数组,并且对 +- 运算符前后的空格敏感。

注意

安全注意事项:str2num 是使用 eval 实现的,这可能会导致不想要的副作用。当使用不可信用户输入调用 str2num 时,请使用 Evaluation='restricted'str2double 来避免意外的代码执行。

示例

X = str2num(txt,Evaluation=method) 确定如何计算 txt。默认值为 "all",它将计算任何输入。指定 Evaluation="restricted" 会将 txt 的可接受输入限制为基本数学表达式,如 200200+2i

示例

[X,tf] = str2num(txt) 还返回第二个输出参数,如果 str2num 成功转换 txt,则返回 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

使用名称-值参数 Evaluation="restricted" 将可接受的输入限制为基本数学表达式。

当未设置 Evaluation 时,str2num 将计算任何输入。

X = str2num("datetime")
X = datetime
   28-May-2022 00:38:18

指定 Evaluation="restricted" 以将可接受的输入限制为基本数学表达式。不是基本数学表达式的输入将返回 []

X = str2num("datetime",Evaluation="restricted")
X =

     []

使用 str2numuint16 将字符向量转换为无符号 16 位整数。

X = str2num('256');
X = uint16(X)
X = uint16
    256

将包含 truefalse 的字符向量转换为逻辑数组。

X = str2num('false true true false')
X = 1x4 logical array

   0   1   1   0

返回失败的转换状态。tf0X 为空矩阵。

[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

输入参数

全部折叠

数值矩阵的文本表示形式,指定为字符数组或字符串标量。

表示数值矩阵的文本可以包含空格、逗号或分号,例如 '5''10,11,12''5,10;15,20'。除数值和分隔符之外,输入文本还可以包含以下各项:

  • 小数点

  • 前导 +- 符号

  • 字母 ed,后接 10 的幂指数

  • 字母 ij,指示复数或虚数

  • truefalse,指示逻辑值

空格字符的存在可能会对结果产生影响。例如,str2num('1+2i')str2num('1 + 2i') 都返回复数 1.0000 + 2.0000i,而 str2num('1 +2i') 返回 1×2 向量 [1.0000 + 0.0000i 0.0000 + 2.0000i]。为了避免此问题,请使用 str2double 函数。

str2num 仅转换字符数组和字符串标量。要将非标量字符串数组或元胞数组转换为数值数组,请使用 str2double 函数。

计算方法,指定为 "all""restricted"。将计算方法设置为 "restricted" 会将 chr 可接受的输入限制为基本数学表达式。

输出参数

全部折叠

输出数组,以数值矩阵形式返回。

True 或 false 结果,以数据类型 logical10 形式返回。

扩展功能

版本历史记录

在 R2006a 之前推出

全部展开