matlab数字转换文本,将文本转换为数值 - MATLAB & Simulink - MathWorks 中国

双精度值

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

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

X = str2double('3.1416')

X = 3.1416

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

str = ["2.718","3.1416";

"137","0.015"]

str = 2x2 string

"2.718" "3.1416"

"137" "0.015"

X = str2double(str)

X = 2×2

2.7180 3.1416

137.0000 0.0150

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

load balances

balances

balances=3×2 table

Customer Balance

_________ ___________

"Diaz" "13,790.00"

"Johnson" "2,456.10"

"Wu" "923.71"

T.Balance = str2double(T.Balance)

T=3×2 table

Customer Balance

_________ _______

"Diaz" 13790

"Johnson" 2456.1

"Wu" 923.71

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

虽然 str2num 函数也可以将文本转换为数字,但不推荐使用。str2num 使用 eval 函数,这可能在文本输入包含函数名称时产生意外的副作用。为了避免这些问题,请使用 str2double。

您也可以使用 double 函数将字符串转换为双精度值。如果输入是字符串数组,则 double 将返回大小相同的数值数组,就像 str2double 一样。但是,如果输入是字符向量,则 double 会将单个字符转换为表示其 Unicode 值的数字。

X = double("3.1416")

X = 3.1416

X = double('3.1416')

X = 1×6

51 46 49 52 49 54

以下列表总结了将文本转换为数值的最佳做法。

要将文本转换为数值,请使用 str2double 函数。它以一致的方式处理字符串数组、字符向量和字符向量元胞数组。

您还可以对字符串数组使用 double 函数。然而,它对字符向量的处理不同。

避免使用 str2num。它调用 eval 函数,这可能会产生意外的结果。

十六进制和二进制值

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

例如,将十六进制数字写为字面值。前缀是必需的。

D = 0x3FF

D = uint16

1023

然后使用 hex2dec 函数转换表示相同值的文本。它能识别前缀,但不要求一定有前缀。

D = hex2dec('3FF')

D = 1023

D = hex2dec('0x3FF')

D = 1023

使用 bin2dec 函数转换表示二进制值的文本。

D = bin2dec('101010')

D = 42

D = bin2dec('0b101010')

D = 42

日期和时间

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

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

C = '2019-09-20'

C =

'2019-09-20'

D = datetime(C)

D = datetime

20-Sep-2019

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

str = ["2019-01-31","2019-02-28","2019-03-31"]

str = 1x3 string

"2019-01-31" "2019-02-28" "2019-03-31"

D = datetime(str)

D = 1x3 datetime

31-Jan-2019 28-Feb-2019 31-Mar-2019

如果您将文本转换为 duration 值,请使用 hh:mm:ss 或 dd:hh:mm:ss 格式。

D = duration('12:34:56')

D = duration

12:34:56

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值