本文说明如何将文本转换为它所表示的数值。通常,当有表示要绘制或在计算中使用的数字的文本时,需要执行这种转换。例如,文本可能来自文本文件或电子表格。如果在将其导入 MATLAB 时,您尚未将其转换为数值,则您可以使用此示例中所示的函数。

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

双精度值

将文本转换为双精度值的推荐方法是使用 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×22.7180    3.1416137.0000    0.0150

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

load balances
balances
balances=3×2 tableCustomer       Balance  _________    ___________"Diaz"       "13,790.00""Johnson"    "2,456.10" "Wu"         "923.71"   T.Balance = str2double(T.Balance)
T=3×2 tableCustomer     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×651    46    49    52    49    54

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

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

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

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

十六进制和二进制值

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

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

D = 0x3FF
D = uint161023

然后使用 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 = datetime20-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 datetime31-Jan-2019   28-Feb-2019   31-Mar-2019

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

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

MATLAB 基础知识 数据类型 数据类型转换 将文本转换为数值相关推荐

  1. MATLAB 基础知识 数据类型 时间表 按行时间和变量类型选择时间表数据

    时间表是一种表类型,用于将时间与每一行进行关联.您可以使用时间表下标,以不同的方式选择其数据子集.要选择行时间位于给定的时间范围内的时间表行,请使用 timerange 函数指定时间范围.由于时间表是 ...

  2. MATLAB 基础知识 数据类型 表 创建和使用表

    本文说明如何根据工作区变量创建表,使用表数据,并将表写入文件以供日后使用.table 是一个数据类型,可将异构数据和元数据属性(例如变量名称.行名称.说明和变量单位)收集到一个容器中. 表适用于列向数 ...

  3. MATLAB 基础知识 数据类型 表 添加、删除和重新排列表变量

    本文说明如何在表中添加.删除和重新排列列向变量.您可以使用 addvars.movevars 和 removevars 函数添加.移动和删除表变量.作为备选方法,您还可以使用圆点语法或对表进行索引来修 ...

  4. MATLAB 基础知识 数据类型 元胞数组 创建元胞数组

    本文说明如何使用 {} 运算符或 cell 函数创建元胞数组. 当要将数据放入一个元胞数组中时,请使用元胞数组构造运算符 {} 创建该数组. myCell = {1, 2, 3;'text', ran ...

  5. MATLAB 基础知识 数据类型 时间表 创建时间表

    本文演示如何创建时间表.合并时间表以及将多个时间表中的数据调整到一个公共时间向量中.公共时间向量可以包含其中一个时间表或两个时间表中的时间,也可以是一个您指定的全新时间向量.以下示例演示如何计算和显示 ...

  6. MATLAB 基础知识 数据类型 表 修改单位、说明和表变量名称

    本文演示了如何访问和修改变量单位.说明和名称这几种表属性.您也可以使用变量编辑器来编辑这些属性值. 加载样本数据 加载样本患者数据并创建一个表. load patients BloodPressure ...

  7. 基础知识—数据类型-数据的输出与输入

    C++语言中,数据的输入和输出包括 标准输入\输出设备 (键盘\显示器) 外部存储介质的文件输入\输出 内存的存储空间输入\输出 标准输入\输出设备的输入.输出我们称为标准I/O 外部存储介质的文件输 ...

  8. MATLAB 基础知识 数据类型 表 添加和删除表行

    本文演示了如何在表中添加和删除行.您也可以使用变量编辑器来编辑表. 加载样本数据 加载样本患者数据并创建一个表 T. load patients T = table(LastName,Gender,A ...

  9. MATLAB 基础知识 数据类型 函数句柄 比较函数句柄

    比较根据命名函数构造的句柄 MATLAB 会将根据同一命名函数构造的函数句柄视为相同的函数句柄.isequal 函数在比较以下类型的句柄时会返回 true 值. fun1 = @sin; fun2 = ...

最新文章

  1. 静态布局、自适应布局、流式布局、响应式布局、弹性布局简析、BFC
  2. Surf Gym - 100819S
  3. Exploring your Postgraduate Study Options
  4. java socket编程(转)
  5. 使用jdk 自带的jarsigner 签名工具签名的apk 和android规范有区别
  6. redis value多大会影响性能_选择合适Redis数据结构,减少80%的内存占用
  7. SiteMesh参考
  8. [ 转载 ] Java面试精选【Java基础第一部分】
  9. createsemaphore 异常_浅析SPC之异常分析
  10. docker 查看实时日志
  11. YOLOX: Exceeding YOLO Series in 2021 --- Study Notes
  12. JSTL核心标签库详解
  13. iSCSI网络储存应用
  14. python编写交互界面设计_第16 p,PYthon中的用户交互,Python GUI编程
  15. springboot内存占用大_《SpringBoot整合redis、Scheduled/quartz定时任务》
  16. windows如何卸载服务
  17. 计算机无法新建文件夹,win7系统不能新建文件夹的解决方法图文)
  18. 计算机访问共享打印机无权限访问,Windows10电脑系统共享打印机无访问权限?详细解决步骤...
  19. 网易花19亿买地,要在上海建总部大楼,团队至少2000人
  20. VMware WorkStation5分钟快速安装黑群晖

热门文章

  1. 基于微信小程序的加油服务系统毕业设计源码
  2. Chrome浏览器——开发者工具截屏干货
  3. 初学习数据库,记录1,在sql server数据表主键中插入UUID
  4. Android辅助H5做一个Web版的相册功能
  5. Tekton之一:如何部署起来 Tekton
  6. 华为OD机试真题 Python 实现【快递投放问题】【2023 Q1 | 100分】
  7. 解决mysql安装后无法设置初始密码的问题,亲测有效
  8. 南京移动开发者沙龙(创业邦+果合)
  9. ubuntu下查看电脑硬件的基本信息
  10. 【下载!】免费经典的计算机教学视频,向孙鑫老师致敬!