目录
writetimetable函数的功能是将时间表写入文件。
- writetimetable(TT)
- writetimetable(TT,filename)
- 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 定义一个时间表。
- RowTimes = seconds(1:5)';
- TT = timetable(RowTimes,[98;97.5;97.9;98.1;97.9],[120;111;119;117;116],...
- 'VariableNames',{'Reading1','Reading2'})
- TT=5×2 timetable
- RowTimes Reading1 Reading2
- ________ ________ ________
- 1 sec 98 120
- 2 sec 97.5 111
- 3 sec 97.9 119
- 4 sec 98.1 117
- 5 sec 97.9 116
将该时间表写入以逗号分隔的文本文件,并显示文件内容。writetimetable 函数将输出名为 TT.txt 的文本文件。
- writetimetable(TT)
- type 'TT.txt'
-
- RowTimes,Reading1,Reading2
- 1 sec,98,120
- 2 sec,97.5,111
- 3 sec,97.9,119
- 4 sec,98.1,117
- 5 sec,97.9,116
要用不同分隔符将同一时间表写入文本文件,请使用 'Delimiter' 名称-值对组。
- writetimetable(TT,'TT_bar.txt','Delimiter','bar')
- type 'TT_bar.txt'
-
-
- RowTimes|Reading1|Reading2
- 1 sec|98|120
- 2 sec|97.5|111
- 3 sec|97.9|119
- 4 sec|98.1|117
- 5 sec|97.9|116
创建一个时间表,将其写入电子表格文件,然后显示文件内容。
在工作区中定义一个时间表,使用行时间作为 datetime 向量。
- Y = [2014:2018]'; M = ones(5,1); D = ones(5,1);
- RowTimes = datetime(Y,M,D); % Create Row Times
- TT = timetable(RowTimes,[98;97.5;97.9;98.1;97.9],[120;111;119;117;116],...
- 'VariableNames',{'Reading1','Reading2'})
- TT=5×2 timetable
- RowTimes Reading1 Reading2
- ___________ ________ ________
- 01-Jan-2014 98 120
- 01-Jan-2015 97.5 111
- 01-Jan-2016 97.9 119
- 01-Jan-2017 98.1 117
- 01-Jan-2018 97.9 116
将该表写入电子表格文件 'TT.xlsx'。默认情况下,writetimetable 函数会写入文件中的第一个工作表。使用 'Sheet' 名称-值对组指定要写入到的工作表。
writetimetable(TT,'TT.xlsx','Sheet',2)
读取并显示文件内容。
- readtimetable('TT.xlsx','Sheet',2)
-
-
- ans=5×2 timetable
- RowTimes Reading1 Reading2
- ____________________ ________ ________
-
- 01-Jan-2014 00:00:00 98 120
- 01-Jan-2015 00:00:00 97.5 111
- 01-Jan-2016 00:00:00 97.9 119
- 01-Jan-2017 00:00:00 98.1 117
- 01-Jan-2018 00:00:00 97.9 116
局限性
要将 'PreserveFormat' 名称-值对组设置为 true,必须将 'UseExcel' 名称-值对组设置为 true。
算法
有些情况下,writetimetable 函数创建的文件不能准确表示输入数据。
当使用 readtimetable 函数来读取该文件时,就会注意到这一点。生成的数据可能不具备与原始数据完全相同的格式或内容。如果需要原样保存时间表并在以后检索它,以便能与具有相同数据和组织形式的原始时间表精确匹配,则可将其另存为 MAT 文件。在以下情况下,writetimetable 输出的表数据不够精确:
writetimetable 使用 long g 格式输出数值数据,并将分类数据或字符数据输出为不带引号的文本。
writetimetable 将具有两个维度以上的变量输出为二维变量,并折叠尾部维度。
对于元胞值变量,writetimetable 根据元胞内容的数据类型以不同方式输出变量。
如果单元格的内容是数值、文本、逻辑值、分类、日期时间或持续时间等数据类型,则 writetimetable 函数会将内容输出到以分隔符分隔的多个字段中,一个元胞一行。
否则,writetimetable 函数会输出一个空字段。