• MATLAB中writetimetable函数用法


    目录

    语法

    说明

    示例

    将时间表写入文本文件

    将时间表写入电子表格文件


            writetimetable函数的功能是将时间表写入文件。

    语法

    1. writetimetable(TT)
    2. writetimetable(TT,filename)
    3. writetimetable(___,Name,Value)

    说明

    writetimetable(TT) 将时间表 TT 写入以逗号分隔的文本文件。文件名为时间表的工作区变量名称,附加扩展名 .txt。如果 writetimetable 无法根据输入时间表名称构造文件名,那么它会写入 timetable.txt 文件中。

            TT 中每个变量的每一列都将成为输出文件中的列。TT 的变量名称将成为文件第一行的列标题。writetimetable 函数会覆盖任何现有文件。

    writetimetable(TT,filename) 写入具有 filename 指定的名称和扩展名的文件。

            writetimetable 根据指定扩展名确定文件格式。扩展名必须是下列格式之一:

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

    • .xls、.xlsm 或 .xlsx(适用于 Excel® 电子表格文件)

    • .xlsb(适用于安装了 Windows® Excel 的系统上支持的 Excel 电子表格文件)

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

    writetimetable(___,Name,Value) 在包括上述语法中任意输入参数的同时,还可通过一个或多个 Name,Value 对组参数指定其他选项。

            例如,可以指定是否将变量名称写入为输出文件中的列标题。

    示例

    将时间表写入文本文件

            创建一个时间表,将其写入以逗号分隔的文本文件,然后用不同分隔符将该时间表写入另一个文本文件。

            在工作区中使用行时间持续时间向量 RowTimes 定义一个时间表。

    1. RowTimes = seconds(1:5)';
    2. TT = timetable(RowTimes,[98;97.5;97.9;98.1;97.9],[120;111;119;117;116],...
    3. 'VariableNames',{'Reading1','Reading2'})
    4. TT=5×2 timetable
    5. RowTimes Reading1 Reading2
    6. ________ ________ ________
    7. 1 sec 98 120
    8. 2 sec 97.5 111
    9. 3 sec 97.9 119
    10. 4 sec 98.1 117
    11. 5 sec 97.9 116

            将该时间表写入以逗号分隔的文本文件,并显示文件内容。writetimetable 函数将输出名为 TT.txt 的文本文件。

    1. writetimetable(TT)
    2. type 'TT.txt'
    3. RowTimes,Reading1,Reading2
    4. 1 sec,98,120
    5. 2 sec,97.5,111
    6. 3 sec,97.9,119
    7. 4 sec,98.1,117
    8. 5 sec,97.9,116

            要用不同分隔符将同一时间表写入文本文件,请使用 'Delimiter' 名称-值对组。

    1. writetimetable(TT,'TT_bar.txt','Delimiter','bar')
    2. type 'TT_bar.txt'
    3. RowTimes|Reading1|Reading2
    4. 1 sec|98|120
    5. 2 sec|97.5|111
    6. 3 sec|97.9|119
    7. 4 sec|98.1|117
    8. 5 sec|97.9|116

    将时间表写入电子表格文件

            创建一个时间表,将其写入电子表格文件,然后显示文件内容。

            在工作区中定义一个时间表,使用行时间作为 datetime 向量。

    1. Y = [2014:2018]'; M = ones(5,1); D = ones(5,1);
    2. RowTimes = datetime(Y,M,D); % Create Row Times
    3. TT = timetable(RowTimes,[98;97.5;97.9;98.1;97.9],[120;111;119;117;116],...
    4. 'VariableNames',{'Reading1','Reading2'})
    5. TT=5×2 timetable
    6. RowTimes Reading1 Reading2
    7. ___________ ________ ________
    8. 01-Jan-2014 98 120
    9. 01-Jan-2015 97.5 111
    10. 01-Jan-2016 97.9 119
    11. 01-Jan-2017 98.1 117
    12. 01-Jan-2018 97.9 116

            将该表写入电子表格文件 'TT.xlsx'。默认情况下,writetimetable 函数会写入文件中的第一个工作表。使用 'Sheet' 名称-值对组指定要写入到的工作表。

    writetimetable(TT,'TT.xlsx','Sheet',2)

            读取并显示文件内容。

    1. readtimetable('TT.xlsx','Sheet',2)
    2. ans=5×2 timetable
    3. RowTimes Reading1 Reading2
    4. ____________________ ________ ________
    5. 01-Jan-2014 00:00:00 98 120
    6. 01-Jan-2015 00:00:00 97.5 111
    7. 01-Jan-2016 00:00:00 97.9 119
    8. 01-Jan-2017 00:00:00 98.1 117
    9. 01-Jan-2018 00:00:00 97.9 116

    局限性

    • 要将 'PreserveFormat' 名称-值对组设置为 true,必须将 'UseExcel' 名称-值对组设置为 true。

    算法

            ​有些情况下,writetimetable 函数创建的文件不能准确表示输入数据。

            当使用 readtimetable 函数来读取该文件时,就会注意到这一点。生成的数据可能不具备与原始数据完全相同的格式或内容。如果需要原样保存时间表并在以后检索它,以便能与具有相同数据和组织形式的原始时间表精确匹配,则可将其另存为 MAT 文件。在以下情况下,writetimetable 输出的表数据不够精确:​

    • writetimetable 使用 long g 格式输出数值数据,并将分类数据或字符数据输出为不带引号的文本。

    • writetimetable 将具有两个维度以上的变量输出为二维变量,并折叠尾部维度。

    • 对于元胞值变量,writetimetable 根据元胞内容的数据类型以不同方式输出变量。

      • 如果单元格的内容是数值、文本、逻辑值、分类、日期时间或持续时间等数据类型,则 writetimetable 函数会将内容输出到以分隔符分隔的多个字段中,一个元胞一行。

      • 否则,writetimetable 函数会输出一个空字段。

  • 相关阅读:
    百度编辑器 Ueditor 视频上传时 目录创建失败 解决办法
    中国象棋棋盘识别
    2、vscode c++ 项目配置调试及运行
    按位与最大的最长连续子数组
    centos脚本获取昨天日期删除指定文件之外的其他文件
    鸿蒙Arkts上传图片并获取接口返回信息
    【Leetcode】1210. Minimum Moves to Reach Target with Rotations
    [附源码]SSM计算机毕业设计学习教学辅助软件平台JAVA
    【名城优企游学】国轩高科,用数字化带来强劲发展动力
    Android源码设计模式探索与实战【代理模式】
  • 原文地址:https://blog.csdn.net/jk_101/article/details/126107685