• MATLAB中readtimetable函数用法


    目录

    语法

    说明

    示例

    基于文本文件创建时间表

    使用导入选项基于文件创建时间表

    基于文件创建时间表并指定行时间

    从电子表格文件创建时间表并格式化输入数据


            readtimetable函数的功能是基于文件创建时间表。

    语法

    1. TT = readtimetable(filename)
    2. TT = readtimetable(filename,opts)
    3. TT = readtimetable(___,Name,Value)

    说明

    TT = readtimetable(filename) 通过从文件中读取列向数据来创建时间表。

            readtimetable 基于文件的扩展名确定文件格式:

    • .txt、.dat 或 .csv(适用于带分隔符的文本文件)

    • .xls、.xlsb、.xlsm、.xlsx、.xltm、.xltx 或 .ods(适用于电子表格文件)

    • .xml(适用于可扩展标记语言 (XML) 文件)。

            对于文本和电子表格文件,readtimetable 为该文件中的每列在 TT 中创建一个变量并从文件的第一行中读取变量名称。对于 XML 文件,readtimetable 在 T 中为检测为时间表变量的每个元素或属性节点创建一个变量。变量名称对应于元素和属性名称。

            readtimetable 将表格数据中 datetime 或 duration 类型的第一列设置为时间表的行时间。其余列成为时间表的变量。

    TT = readtimetable(filename,opts) 还使用导入选项 opts。

    TT = readtimetable(___,Name,Value) 基于文件创建一个时间表,并通过一个或多个名称-值对组参数指定其他选项。需要在上述语法的输入参数之后指定名称-值对组。

            要为数据设置特定的导入选项,可以使用 opts 对象,也可以指定名称-值对组。当指定除 opts 之外的名称-值对组时,readtimetable 仅支持下列名称-值对组:

    • 文本和电子表格参数 - ReadVariableNames、RowTimes、SampleRate、TimeStep、StartTime

    • 仅文本参数 - DateLocale、Encoding

    • 仅电子表格参数 - Sheet、UseExcel

    示例

    基于文本文件创建时间表

            基于逗号分隔的文本文件创建表。

    TT = readtimetable('outages.csv');

            显示表的摘要。创建时间表时,如果没有为行时间指定任何参数,则 readtimetable 函数会检测并指定数据中的第一个日期时间变量或持续时间变量 OutageTime 作为行时间变量。其余变量成为时间表的变量。

    1. summary(TT)
    2. RowTimes:
    3. OutageTime: 1468x1 datetime
    4. Values:
    5. Min 2002-02-01 12:18
    6. Median 2010-03-18 21:05
    7. Max 2014-01-15 02:41
    8. Variables:
    9. Region: 1468x1 cell array of character vectors
    10. Loss: 1468x1 double
    11. Values:
    12. Min 0
    13. Median 180.26
    14. Max 23418
    15. NumMissing 604
    16. Customers: 1468x1 double
    17. Values:
    18. Min 0
    19. Median 75765
    20. Max 5.9689e+06
    21. NumMissing 328
    22. RestorationTime: 1468x1 datetime
    23. Values:
    24. Min 2002-02-07 16:50
    25. Median 2010-03-31 10:54
    26. Max 2042-09-18 23:31
    27. NumMissing 29
    28. Cause: 1468x1 cell array of character vectors

    使用导入选项基于文件创建时间表

            检测文本文件的导入选项,指定变量类型,然后基于数据创建时间表。

            基于文件创建导入选项对象,并检查变量选项。

    1. opts = detectImportOptions('outages.csv');
    2. opts.VariableOptions
    3. ans =
    4. 1x6 heterogeneous VariableImportOptions (TextVariableImportOptions, DatetimeVariableImportOptions, NumericVariableImportOptions) array with properties:
    5. Name
    6. Type
    7. FillValue
    8. TreatAsMissing
    9. QuoteRule
    10. Prefixes
    11. Suffixes
    12. EmptyFieldRule

            修改选项对象,为数据中的变量指定所需的数据类型。将变量 Region 和 Cause 的数据类型更改为 categorical。

    opts = setvartype(opts,{'Region','Cause'},{'categorical','categorical'});

            使用 readtimetable 以及选项对象导入时间表。然后显示该时间表的汇总。

    1. TT = readtimetable('outages.csv',opts);
    2. summary(TT)
    3. RowTimes:
    4. OutageTime: 1468x1 datetime
    5. Values:
    6. Min 2002-02-01 12:18
    7. Median 2010-03-18 21:05
    8. Max 2014-01-15 02:41
    9. Variables:
    10. Region: 1468x1 categorical
    11. Values:
    12. MidWest 142
    13. NorthEast 557
    14. SouthEast 389
    15. SouthWest 26
    16. West 354
    17. Loss: 1468x1 double
    18. Values:
    19. Min 0
    20. Median 180.26
    21. Max 23418
    22. NumMissing 604
    23. Customers: 1468x1 double
    24. Values:
    25. Min 0
    26. Median 75765
    27. Max 5.9689e+06
    28. NumMissing 328
    29. RestorationTime: 1468x1 datetime
    30. Values:
    31. Min 2002-02-07 16:50
    32. Median 2010-03-31 10:54
    33. Max 2042-09-18 23:31
    34. NumMissing 29
    35. Cause: 1468x1 categorical
    36. Values:
    37. attack 294
    38. earthquake 2
    39. energy emergency 188
    40. equipment fault 156
    41. fire 25
    42. severe storm 338
    43. thunder storm 201
    44. unknown 24
    45. wind 95
    46. winter storm 145

    基于文件创建时间表并指定行时间

            从以逗号分隔的文本文件中读取一个表,并使用选择的行时间变量创建一个时间表。

            创建一个导入选项对象并预览表格数据。

    1. opts = detectImportOptions('outages.csv');
    2. preview('outages.csv',opts)
    3. ans=8×6 table
    4. Region OutageTime Loss Customers RestorationTime Cause
    5. _____________ ________________ ______ __________ ________________ ___________________
    6. {'SouthWest'} 2002-02-01 12:18 458.98 1.8202e+06 2002-02-07 16:50 {'winter storm' }
    7. {'SouthEast'} 2003-01-23 00:49 530.14 2.1204e+05 NaT {'winter storm' }
    8. {'SouthEast'} 2003-02-07 21:15 289.4 1.4294e+05 2003-02-17 08:14 {'winter storm' }
    9. {'West' } 2004-04-06 05:44 434.81 3.4037e+05 2004-04-06 06:10 {'equipment fault'}
    10. {'MidWest' } 2002-03-16 06:18 186.44 2.1275e+05 2002-03-18 23:23 {'severe storm' }
    11. {'West' } 2003-06-18 02:49 0 0 2003-06-18 10:54 {'attack' }
    12. {'West' } 2004-06-20 14:39 231.29 NaN 2004-06-20 19:16 {'equipment fault'}
    13. {'West' } 2002-06-06 19:28 311.86 NaN 2002-06-07 00:51 {'equipment fault'}

            通过将 RestorationTime 变量指定为时间表的行时间变量来创建一个时间表。然后,显示该时间表的汇总。

    1. TT = readtimetable('outages.csv','RowTimes','RestorationTime');
    2. summary(TT)
    3. RowTimes:
    4. RestorationTime: 1468x1 datetime
    5. Values:
    6. Min 2002-02-07 16:50
    7. Median 2010-03-31 10:54
    8. Max 2042-09-18 23:31
    9. NumMissing 29
    10. Variables:
    11. Region: 1468x1 cell array of character vectors
    12. OutageTime: 1468x1 datetime
    13. Values:
    14. Min 2002-02-01 12:18
    15. Median 2010-03-18 21:05
    16. Max 2014-01-15 02:41
    17. Loss: 1468x1 double
    18. Values:
    19. Min 0
    20. Median 180.26
    21. Max 23418
    22. NumMissing 604
    23. Customers: 1468x1 double
    24. Values:
    25. Min 0
    26. Median 75765
    27. Max 5.9689e+06
    28. NumMissing 328
    29. Cause: 1468x1 cell array of character vectors

    从电子表格文件创建时间表并格式化输入数据

            从电子表格文件创建一个时间表,并格式化输入数据。

            例如,从文件 quarterlyFinances1999To2019.csv 创建一个时间表,指定时间戳的开始日期和每个时间戳之间的时间,并从数据中删除“$”符号。

            如图所示:

            以时间表形式读取文件 quarterlyFinances1999To2019.csv 中的数据。将连续行时间之间的时间长度指定为一个日历季度,从 1999 年 1 月 1 日开始。将 'VariableNamingRule' 设置为 preserve 以保留变量名称中的空白,并将 'TrimNonNumeric' 设置为 true 以删除数据中数值前的“$”符号。

    1. TT = readtimetable("quarterlyFinances1999To2019.csv","TimeStep", calquarters(1),"StartTime", datetime(1999, 1, 1),...
    2. "VariableNamingRule", "preserve", "TrimNonNumeric", true);

            显示数据的摘要。

    1. summary(TT)
    2. RowTimes:
    3. Time: 80x1 datetime
    4. Values:
    5. Min 01-Jan-1999
    6. Median 16-Nov-2008
    7. Max 01-Oct-2018
    8. Variables:
    9. Net Sales: 80x1 double
    10. Values:
    11. Min 35066
    12. Median 1.0407e+05
    13. Max 1.7684e+05
    14. Cost of Sales: 80x1 double
    15. Values:
    16. Min 18106
    17. Median 48624
    18. Max 77742
    19. Gross Margin: 80x1 double
    20. Values:
    21. Min 14563
    22. Median 56719
    23. Max 99097
    24. Research and Development Expenses: 80x1 double
    25. Values:
    26. Min 4904.9
    27. Median 24637
    28. Max 45234
    29. Administrative Expenses: 80x1 double
    30. Values:
    31. Min 1047.4
    32. Median 2015.3
    33. Max 2811.5
    34. Total Operating Expenses: 80x1 double
    35. Values:
    36. Min 5992.5
    37. Median 26518
    38. Max 48045
    39. Net Income: 80x1 double
    40. Values:
    41. Min 7634.3
    42. Median 28586
    43. Max 51051
    44. Total Shares: 80x1 double
    45. Values:
    46. Min 822
    47. Median 1820.5
    48. Max 2710
    49. Earnings per Share: 80x1 double
    50. Values:
    51. Min 6.52
    52. Median 15.515
    53. Max 24.62

    提示

    • 使用 XPath 选择器指定要导入 XML 输入文档的哪些元素。例如,假设您要导入 XML 文件 myFile.xml,该文件具有以下结构:

    1. "ones">
    2. <var>1var>
    3. <var>2var>
    4. "tens">
    5. <var>10var>
    6. <var>20var>

            下表提供 XPath 选择器名称-值参数(例如 VariableSelectors 或 TableSelector)支持的 XPath 语法。

    • 选取操作语法示例结果
      选择其名称与您要选择的节点匹配的每个节点,而无论它在文档中的位置如何。在名称前加两个正斜杠 (//) 前缀。
      data = readtable('myFile.xml', 'VariableSelectors', '//var')
      data =
      
        4×1 table
      
          var
          ___
      
           1 
           2 
          10 
          20 
      读取属于元素节点的属性的值。在属性前加 at 符号 (@) 前缀。
      data = readtable('myFile.xml', 'VariableSelectors', '//table/@category')
      data =
      
        2×1 table
      
          categoryAttribute
          _________________
      
               "ones"      
               "tens"   
      在一组节点中选择一个特定节点。在方括号 ([]) 中提供要选择的节点的索引。
      data = readtable('myFile.xml', 'TableSelector', '//table[1]')
      data =
      
        2×1 table
      
          var
          ___
      
           1 
           2 
      
      指定运算的优先级。在要首先计算的表达式前后添加圆括号。
      data = readtable('myFile.xml', 'VariableSelectors', '//table/var[1]')
      data =
      
        2×1 table
      
          var
          ___
      
           1 
          10 
      data = readtable('myFile.xml', 'VariableSelectors', '(//table/var)[1]')
      data =
      
        table
      
          var
          ___
      
           1 

  • 相关阅读:
    从CNN(卷积神经网络),又名CAM获取热图
    面向初学者的 Android 应用开发基础知识
    「秋招」这份各大厂面试万金油手册,吃透保你进大厂
    centos 7.9系统安装老版本jenkins,并解决插件问题
    百度松果 买礼物(贪心)
    1.Linux入门基本指令
    03 Vue脚手架
    深度学习入门(6)误差反向传播基础---计算图与链式法则
    mysql数据库连接后缀的作用
    基于yolov5轻量级的学生上课姿势检测识别分析系统
  • 原文地址:https://blog.csdn.net/jk_101/article/details/126107832