主要内容

将文本转换为数值

这个例子展示了如何将文本转换为它所代表的数值。通常,当您拥有表示要绘制或在计算中使用的数字的文本时,您需要执行此类转换。例如,文本可能来自文本文件或电子表格。如果您在将其导入到MATLAB®时还没有将其转换为数值,则可以使用本示例中所示的函数。

可以将字符串数组、字符向量和字符向量的单元格数组转换为数值。文本可以表示十六进制或二进制值,但当将它们转换为数字时,它们将存储为十进制值。您还可以将表示日期和时间的文本转换为datetime持续时间值,可以将其视为数值。

双精度值

将文本转换为双精度值的推荐方法是使用str2double函数。它可以转换字符向量、字符串数组和字符向量的单元格数组。

例如,使用单引号创建一个字符向量,并将其转换为它所表示的数字。

X = str2double (“3.1416”
X = 3.1416

如果输入参数是字符向量的字符串数组或单元格数组,则str2double将其转换为具有相同大小的数字数组。可以使用双引号创建字符串。(字符串字符串数据类型,而字符向量具有字符数据类型)。

str = [“2.718”“3.1416”“137”“0.015”
str =2 x2的字符串"2.718" "3.1416" "137" "0.015"
X = str2double (str)
X =2×22.7180 3.1416 137.0000 0.0150

str2double函数可以转换包含逗号(如千个分隔符)和小数点的文本。例如,你可以用str2double平衡变量在下表中。平衡将数字表示为字符串,使用逗号作为千位分隔符。

负载平衡平衡
余额=3×2表客户资产  _________ ___________ " Diaz”“2456 .10 13790 .00约翰逊”“”“”“吴”“923.71”
T.Balance = str2double (T.Balance)
T =3×2表客户资产  _________ _______ " 约翰逊·迪亚兹“13790”吴“2456.1”“923.71

如果str2double不能将文本转换为数字,则返回价值。

str2num函数还可以将文本转换为数字,它是推荐。str2num使用eval函数,当文本输入包含函数名时,可能会导致意想不到的副作用。为了避免这些问题,请使用str2double

的方法可以将字符串转换为双精度值函数。如果输入是字符串数组,则返回具有相同大小的数字数组,如str2double所做的事。但是,如果输入是字符向量,那么将单个字符转换为表示其Unicode值的数字。

双(X =“3.1416”
X = 3.1416
双(X =“3.1416”
X =1×651 46 49 52 49 54

这个列表总结了将文本转换为数值的最佳实践。

  • 要将文本转换为数值,请使用str2double函数。它一致地处理字符串数组、字符向量和字符向量的单元格数组。

  • 你也可以用the函数用于字符串数组。然而,它对角色向量的处理是不同的。

  • 避免str2num.它调用eval功能可能会产生意想不到的后果。

十六进制和二进制值

可以将十六进制数和二进制数表示为文本或文字.当您将它们写成文字时,必须使用0 x0 b前缀。当您将它们表示为文本并对它们进行转换时,您可以使用前缀,但它们不是必需的。

例如,将一个十六进制数写成文字。该前缀是必需的。

D = 0 x3ff
D =uint161023

的方法,然后转换表示相同值的文本hex2dec函数。它识别前缀,但不需要它。

D = hex2dec (' 3 ff '
D = 1023
D = hex2dec (“0 x3ff”
D = 1023

属性转换表示二进制值的文本bin2dec函数。

D = bin2dec (“101010”
D = 42
D = bin2dec (“0 b101010”
D = 42

日期和时间

MATLAB提供的datetime持续时间用于存储日期和时间并将其视为数值的数据类型。要转换表示日期和时间的文本,请使用datetime持续时间功能。

将表示日期的文本转换为datetime价值。的datetime函数识别日期和时间的许多常见格式。

C =“2019-09-20”
C = ' 2019-09-20 '
D = datetime (C)
D =datetime20 - 9 - 2019

您可以转换表示日期和时间的数组。

str = [“2019-01-31”“2019-02-28”“2019-03-31”
str =1 x3字符串“2019-01-31”“2019-02-28”“2019-03-31”
D = datetime (str)
D =1 x3 datetime31日- 2019年1月- 2019年2月28 - - 31 - 3月- 2019

如果您将文本转换为持续时间值,然后使用hh: mm: ss弟弟:hh: mm: ss格式。

D =时间(“12:34:56”
D =持续时间12:34:56

另请参阅

||||||

相关的话题