这个例子展示了如何将文本转换为它所代表的数值。通常,当您拥有表示要绘制或在计算中使用的数字的文本时,您需要执行此类转换。例如,文本可能来自文本文件或电子表格。如果您在将其导入到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 x
和0 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
bin2dec
|datetime
|双
|持续时间
|hex2dec
|str2double
|表格