writetimetable
说明
writetimetable(
将时间表 TT
)TT
写入以逗号分隔的文本文件。文件名为时间表的工作区变量名称,附加扩展名 .txt
。如果 writetimetable
无法根据输入时间表名称构造文件名,那么它会写入 timetable.txt
文件中。
TT
中每个变量的每一列都将成为输出文件中的列。TT
的变量名称将成为文件第一行的列标题。writetimetable
函数会覆盖任何现有文件。
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
输入参数
TT
— 输入时间表
时间表
输入时间表。
filename
— 文件名
字符向量 | 字符串标量
文件名,指定为字符向量或字符串标量。
根据您写入的位置,filename
可以采用以下形式之一。
位置 | 形式 | ||||||||
---|---|---|---|---|---|---|---|---|---|
当前文件夹 | 要写入当前文件夹,请在 示例: | ||||||||
其他文件夹 | 要写入不同于当前文件夹的文件夹,请在 示例: 示例: | ||||||||
远程位置 | 要写入远程位置,
根据远程位置,
有关详细信息,请参阅处理远程数据。 示例: |
如果
filename
包含文件扩展名,则写入函数基于扩展名确定文件格式。否则,写入函数会创建一个逗号分隔的文本文件,并附加扩展名.txt
。您也可以指定不带文件扩展名的filename
,然后添加'FileType'
名称-值对组参数来指示文件类型。
如果
filename
不存在,则写入函数会创建该文件。如果
filename
是一个现有文本文件的名称,则写入函数将覆盖该文件。如果
filename
是一个现有电子表格文件的名称,则写入函数会将数据写入指定位置,但不会覆盖输入数据范围之外的任何值。
数据类型: char
| string
名称-值参数
将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参数名称,Value
是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: 'WriteVariableNames',false
指示变量名称不应作为输出文件的第一行包含在内。
FileType
— 文件类型
'text'
| 'spreadsheet'
文件类型,指定为逗号分隔的对组,其中包含 'FileType'
和一个包含 'text'
或 'spreadsheet'
的字符向量或字符串。
'FileType'
名称-值对组必须与 filename
输入参数配合使用。如果 filename
输入参数包含标准文件扩展名,则无需指定 'FileType'
名称-值对组参数。以下标准文件扩展名由写入函数识别:
.txt
、.dat
或.csv
(带分隔符的文本文件).xls
、.xlsm
或.xlsx
(适用于 Excel 电子表格文件).xlsb
(适用于安装了 Windows Excel 的系统上支持的 Excel 电子表格文件)
示例: 'FileType','spreadsheet'
数据类型: char
| string
WriteVariableNames
— 指示将变量名称写入为列标题的指示符
true
(默认) | false
指示将变量名称写入为列标题的指示符,指定为逗号分隔的对组,其中包含 'WriteVariableNames'
和 true
或 false
。
指示符 | 行为 |
---|---|
| 写入函数将变量名称作为输出的列标题包含在内。这是默认行为。 |
| 写入函数不会在输出中包含变量名称。 |
DateLocale
— 用于写入日期的区域设置
字符向量 | 字符串标量
用于写入日期的区域设置,指定为逗号分隔的对组,其中包含 'DateLocale'
和一个字符向量或字符串标量。在将 datetime
值写入文件时,请使用 DateLocale
指定 writetimetable
写入月和星期几的名称以及缩写所用的区域设置。该字符向量或字符串采用
形式,其中 xx
_YY
xx
是用于指示语言的小写 ISO 639-1 双字母代码,YY
是用于指示国家/地区的大写 ISO 3166-1 alpha-2 代码。有关区域设置的常见值的列表,请参阅 datetime
函数的 Locale
名称-值对组参数。
当日期可以写为 Excel 格式的日期时,写入函数将忽略 'DateLocale'
参数值。
示例: 'DateLocale','ja_JP'
数据类型: char
| string
WriteMode
— 写入模式
字符向量 | 字符串标量
写入模式,指定为以逗号分隔的对组,该对组由 'WriteMode'
和一个字符向量或字符串标量组成。根据文件类型选择一种写入模式。
文件类型 | 写入模式 |
---|---|
文本文件 |
如果您指定的文件不存在,则写入函数会创建数据并将数据写入新文件。 |
电子表格文件 |
|
当
WriteVariableNames
设置为true
时,写入函数不支持'append'
写入模式。对于电子表格文件:
当写入模式为
'append'
时,写入函数不支持Range
参数。如果您指定的文件不存在,则写入函数将执行与
'replacefile'
相同的动作。
示例: 'WriteMode','append'
数据类型: char
| string
Delimiter
— 字段分隔符
字符向量 | 字符串标量
字段分隔符,指定为逗号分隔的对组,由 'Delimiter'
和一个字符向量或字符串标量组成,该字符串标量包含以下设定符之一:
设定符 | 字段分隔符 |
---|---|
| 逗号。这是默认行为。 |
| 空格 |
| 制表符 |
| 分号 |
| 垂直条 |
您只能将 'Delimiter'
名称-值对组用于带分隔符的文本文件。
示例: 'Delimiter','space'
数据类型: char
| string
QuoteStrings
— 用于写入引用文本的指示符
"minimal"
(默认) | "all"
| "none"
用于写入引用文本的指示符,指定为 "minimal"
、"all"
或 "none"
。
如果
QuoteStrings
是"minimal"
,则该函数会将包含分隔符、换行符或双引号字符的任何变量用双引号字符引起来。如果
QuoteStrings
是"all"
,则该函数会将所有文本、分类、日期时间和持续时间变量用双引号字符引起来。如果
QuoteStrings
是"none"
,则该函数不会使用双引号字符将变量引起来。
您只能将 QuoteStrings
名称-值参数用于带分隔符的文本文件。
Encoding
— 字符编码方案
'UTF-8'
(默认) | 'ISO-8859-1'
| 'windows-1251'
| 'windows-1252'
| ...
与文件关联的字符编码方案,指定为以逗号分隔的对组,其中包含 'Encoding'
和 'system'
或标准字符编码方案名称。当您没有指定任何编码时,写入函数使用 UTF-8 来写入文件。
示例: 'Encoding','UTF-8'
使用 UTF-8 作为编码。
数据类型: char
| string
Sheet
— 要写入的工作表
字符向量 | 字符串标量 | 正整数
要写入的工作表,指定为逗号分隔的对组,包含 'Sheet'
和一个包含工作表名称或正整数(指示工作表索引)的字符向量或字符串标量。工作表名称不能包含冒号 (:
)。要确定电子表格文件中工作表的名称,请使用 sheets = sheetnames(filename)
。有关详细信息,请参阅 sheetnames
。
按名称或索引指定要写入的工作表:
名称 - 如果文件中不存在指定的工作表名称,则写入函数将在工作表集合的末尾添加一个新工作表。
索引 - 如果指定的工作表索引大于工作表数,则写入函数会追加空工作表,直至工作簿中的工作表数等于工作表索引。写入函数还会生成一条警告,指示已添加新工作表。
您只能将 'Sheet'
名称-值对组用于电子表格文件。
示例: 'Sheet'
,2
示例: 'Sheet'
, 'MySheetName'
数据类型: char
| string
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Range
— 要写入的工作表的矩形部分
字符向量 | 字符串标量
要写入的工作表的矩形部分,指定为逗号分隔的对组,包含 'Range'
和一个采用以下格式之一的字符向量或字符串标量。
Range 的值的格式 | 描述 |
---|---|
' |
示例: |
' |
示例:
|
'Range'
名称-值对组只能与 Excel 文件配合使用。
示例: 'Range'
, 'A1:F10'
数据类型: char
| string
UseExcel
— 用于启动 Windows 版 Microsoft Excel 实例的标志
false
(默认) | true
指明在写电子表格数据时是否启动 Microsoft® Excel(Windows 版)实例的标志,指定为以逗号分隔的对组,其中包含 'UseExcel'
和 true
或 false
。
您可以将 'UseExcel'
参数设置为下列值之一:
true
- 写入函数在写入文件时启动 Microsoft Excel 的实例。false
- 写入函数在写入文件时不启动 Microsoft Excel 的实例。在此模式下操作时,写入功能支持的文件格式和交互式功能(例如公式和宏)有所不同。
UseExcel |
|
|
---|---|---|
支持的文件格式 |
|
|
支持交互功能,例如公式和宏 | 是 | 否 |
在 Windows 平台上写入电子表格文件时,如果您想启动 Microsoft Excel 实例,则将 'UseExcel'
参数设置为 true
。
AutoFitWidth
— 自动调整列宽
true
(默认) | false
自动调整列宽,指定为 true
或 false
。如果指定值为 0
或 false
,则 writetimetable
不会自动调整列宽以适应单元格中的数据。
示例: 'AutoFitWidth'
,0
PreserveFormat
— 保留单元格格式
true
(默认) | false
保留现有电子表格的单元格格式,指定为 true
或 false
。如果您指定 false
,writetimetable
将不会保留电子表格的单元格格式。格式包括字体、单元格边框和着色单元格等元素。
将 datetime
数据写入电子表格文件时,必须将 'PreserveFormat'
和 'UseExcel'
名称-值对组都设置为 true
,才能保留现有单元格的格式。如果将 'UseExcel'
设置为 false
,同时将 'PreserveFormat'
设置为 true
,则当将 datetime
数据写入文件时,writetimetable
不会保留文件的现有单元格格式。
示例: 'PreserveFormat'
,false
AttributeSuffix
— 属性后缀
'Attribute'
(默认) | 字符向量 | 字符串标量
属性后缀,指定为以逗号分隔的对组,由 'AttributeSuffix'
和指示输入表中的哪些变量名称要作为属性写入输出 XML 文件的字符向量或字符串标量组成。
例如,对于输入表中的变量名称 AttName_att
,您可以指定 'AttributeSuffix','_att'
来指示使用 'AttName'
作为输出 XML 文件中的属性来写出。
如果未指定
'AttributeSuffix'
,writetimetable
默认将后缀为'Attribute'
的变量作为属性写入输出 XML 文件中。如果指定为
'AttributeSuffix'
的值的变量与追加到输入表中变量名称的后缀匹配,则该后缀会从输出 XML 文件的变量名称中删除。例如,如果指定'AttributeSuffix','_att'
,则输入表中名为MyField_att
的变量将对应于 XML 文件中名为MyField
的属性。
示例: 'AttributeSuffix','_att'
RowNodeName
— XML 行节点名称
'row'
| 字符串数组
XML 行节点名称,指定为以逗号分隔的对组,由 'RowNodeName'
和字符向量或字符串标量组成,写入函数将其作为与输入表中的行对应的输出 XML 文件中的节点名称写入。如果未指定 RowNodeName
,则写入函数会将 'row'
作为输出表中的行节点名称写入。
示例: 'TableNodeName','RootName'
TableNodeName
— XML 根节点名称
'table'
(默认) | 字符向量 | 字符串数组
XML 根节点名称,指定为以逗号分隔的对组,由 'TableNodeName'
和字符向量或字符串标量组成,写入函数将其作为输出 XML 文件中的根节点名称写入。如果未指定 TableNodeName
,则写入函数会将 'table'
作为输出表中的根节点名称写入。
示例: 'TableNodeName','RootName'
算法
有些情况下,
writetimetable
函数创建的文件并不能准确表示输入数据。当您使用readtimetable
函数来读取该文件时,就会注意到这一点。生成的数据可能不具备与原始数据完全相同的格式或内容。如果您需要原样保存时间表并在以后检索它,以便能与具有相同数据和组织形式的原始时间表精确匹配,则可将其另存为 MAT 文件。在以下情况下,writetimetable
输出的表数据不够精确:writetimetable
使用long g
格式输出数值数据,并将分类数据或字符数据输出为不带引号的文本。writetimetable
将具有两个维度以上的变量输出为二维变量,并折叠尾部维度。对于元胞值变量,
writetimetable
根据元胞内容的数据类型以不同方式输出变量。如果单元格的内容是数值、文本、逻辑值、分类、日期时间或持续时间等数据类型,则
writetimetable
函数会将内容输出到以分隔符分隔的多个字段中,一个元胞一行。否则,
writetimetable
函数会输出一个空字段。
Excel 将
Inf
值转换为65535
。MATLAB® 将NaN
、NaT
和<undefined>
分类值以及<missing>
字符串值转换为空单元格。
版本历史记录
在 R2019a 中推出
另请参阅
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)