readtimetable
基于文件创建时间表
说明
通过从文件中读取列向数据来创建时间表。TT = readtimetable(filename)
readtimetable 基于文件的扩展名确定文件格式:
.txt、.dat或.csv(带分隔符的文本文件).xls、.xlsb、.xlsm、.xlsx、.xltm、.xltx或.ods(电子表格文件).xml(可扩展标记语言 (XML) 文件).zip、.gz或.tar(压缩和存档文件)
对于文本和电子表格文件,readtimetable 为该文件中的每列在 TT 中创建一个变量并从文件的第一行中读取变量名称。对于 XML 文件,readtimetable 在 T 中为检测为时间表变量的每个元素或属性节点创建一个变量。变量名称对应于元素和属性名称。
readtimetable 将表格数据中 datetime 或 duration 类型的第一列设置为时间表的行时间。其余列成为时间表的变量。
基于文件创建一个时间表,并通过一个或多个名称-值对组参量指定其他选项。您需要在上述语法的输入参量之后指定名称-值对组。TT = readtimetable(___,Name,Value)
要为数据设置特定的导入选项,您可以使用 opts 对象,也可以指定名称-值对组。当您指定除 opts 之外的名称-值对组时,readtimetable 仅支持下列名称-值对组:
文本和电子表格参数 -
ReadVariableNames、RowTimes、SampleRate、TimeStep、StartTime仅文本参数 -
DateLocale、Encoding仅电子表格参数 -
Sheet、UseExcel
示例
基于逗号分隔的文本文件创建表。
TT = readtimetable('outages.csv');显示表的摘要。创建时间表时,如果没有为行时间指定任何参数,则 readtimetable 函数会检测并指定数据中的第一个日期时间变量或持续时间变量 OutageTime 作为行时间变量。其余变量成为时间表的变量。
summary(TT)
TT: 1468×5 timetable
Row Times:
OutageTime: datetime
Variables:
Region: cell array of character vectors
Loss: double
Customers: double
RestorationTime: datetime
Cause: cell array of character vectors
Statistics for applicable variables and row times:
NumMissing Min Median Max Mean Std
OutageTime 0 2002-02-01 12:18 2010-03-18 21:05 2014-01-15 02:41 2009-07-03 12:49 27450:31:25
Region 0
Loss 604 0 180.2583 2.3418e+04 563.8885 1.8793e+03
Customers 328 0 7.5765e+04 5.9689e+06 1.6693e+05 3.6873e+05
RestorationTime 29 2002-02-07 16:50 2010-03-31 10:54 2042-09-18 23:31 2009-07-27 15:47 28592:30:37
Cause 0
检测文本文件的导入选项,指定变量类型,然后基于数据创建时间表。
基于文件创建导入选项对象,并检查变量选项。
opts = detectImportOptions('outages.csv');
opts.VariableOptionsans =
1×6 heterogeneous VariableImportOptions (TextVariableImportOptions, DatetimeVariableImportOptions, NumericVariableImportOptions) array with properties:
Name
Type
FillValue
TreatAsMissing
QuoteRule
Prefixes
Suffixes
EmptyFieldRule
修改选项对象,为数据中的变量指定所需的数据类型。将变量 Region 和 Cause 的数据类型更改为 categorical。
opts = setvartype(opts,{'Region','Cause'},{'categorical','categorical'});使用 readtimetable 以及选项对象导入时间表。然后显示该时间表的汇总。
TT = readtimetable('outages.csv',opts);
summary(TT)TT: 1468×5 timetable
Row Times:
OutageTime: datetime
Variables:
Region: categorical (5 categories)
Loss: double
Customers: double
RestorationTime: datetime
Cause: categorical (10 categories)
Statistics for applicable variables and row times:
NumMissing Min Median Max Mean Std
OutageTime 0 2002-02-01 12:18 2010-03-18 21:05 2014-01-15 02:41 2009-07-03 12:49 27450:31:25
Region 0
Loss 604 0 180.2583 2.3418e+04 563.8885 1.8793e+03
Customers 328 0 7.5765e+04 5.9689e+06 1.6693e+05 3.6873e+05
RestorationTime 29 2002-02-07 16:50 2010-03-31 10:54 2042-09-18 23:31 2009-07-27 15:47 28592:30:37
Cause 0
从以逗号分隔的文本文件中读取一个表,并使用您选择的行时间变量创建一个时间表。
创建一个导入选项对象并预览表格数据。
opts = detectImportOptions('outages.csv'); preview('outages.csv',opts)
ans=8×6 table
Region OutageTime Loss Customers RestorationTime Cause
_____________ ________________ ______ __________ ________________ ___________________
{'SouthWest'} 2002-02-01 12:18 458.98 1.8202e+06 2002-02-07 16:50 {'winter storm' }
{'SouthEast'} 2003-01-23 00:49 530.14 2.1204e+05 NaT {'winter storm' }
{'SouthEast'} 2003-02-07 21:15 289.4 1.4294e+05 2003-02-17 08:14 {'winter storm' }
{'West' } 2004-04-06 05:44 434.81 3.4037e+05 2004-04-06 06:10 {'equipment fault'}
{'MidWest' } 2002-03-16 06:18 186.44 2.1275e+05 2002-03-18 23:23 {'severe storm' }
{'West' } 2003-06-18 02:49 0 0 2003-06-18 10:54 {'attack' }
{'West' } 2004-06-20 14:39 231.29 NaN 2004-06-20 19:16 {'equipment fault'}
{'West' } 2002-06-06 19:28 311.86 NaN 2002-06-07 00:51 {'equipment fault'}
通过将 RestorationTime 变量指定为时间表的行时间变量来创建一个时间表。然后,显示该时间表的汇总。
TT = readtimetable('outages.csv','RowTimes','RestorationTime'); summary(TT)
TT: 1468×5 timetable
Row Times:
RestorationTime: datetime
Variables:
Region: cell array of character vectors
OutageTime: datetime
Loss: double
Customers: double
Cause: cell array of character vectors
Statistics for applicable variables and row times:
NumMissing Min Median Max Mean Std
RestorationTime 29 2002-02-07 16:50 2010-03-31 10:54 2042-09-18 23:31 2009-07-27 15:47 28592:30:37
Region 0
OutageTime 0 2002-02-01 12:18 2010-03-18 21:05 2014-01-15 02:41 2009-07-03 12:49 27450:31:25
Loss 604 0 180.2583 2.3418e+04 563.8885 1.8793e+03
Customers 328 0 7.5765e+04 5.9689e+06 1.6693e+05 3.6873e+05
Cause 0
从电子表格文件创建一个时间表,并格式化输入数据。例如,从文件 quarterlyFinances1999To2019.csv 创建一个时间表,指定时间戳的开始日期和每个时间戳之间的时间,并从数据中删除“$”符号。

以时间表形式读取文件 quarterlyFinances1999To2019.csv 中的数据。将连续行时间之间的时间长度指定为一个日历季度,从 1999 年 1 月 1 日开始。将 'VariableNamingRule' 设置为 preserve 以保留变量名称中的空白,并将 'TrimNonNumeric' 设置为 true 以删除数据中数值前的“$”符号。
TT = readtimetable("quarterlyFinances1999To2019.csv","TimeStep", calquarters(1),"StartTime", datetime(1999, 1, 1),... "VariableNamingRule", "preserve", "TrimNonNumeric", true);
显示数据的摘要。
summary(TT)
TT: 80×9 timetable
Row Times:
Time: datetime
Variables:
Net Sales: double
Cost of Sales: double
Gross Margin: double
Research and Development Expenses: double
Administrative Expenses: double
Total Operating Expenses: double
Net Income: double
Total Shares: double
Earnings per Share: double
Statistics for applicable variables and row times:
NumMissing Min Median Max Mean Std
Time 0 01-Jan-1999 16-Nov-2008 01-Oct-2018 15-Nov-2008 04:30:00 50925:56:30
NetSales 0 3.5066e+04 1.0407e+05 1.7684e+05 1.0377e+05 3.8034e+04
CostOfSales 0 1.8106e+04 4.8624e+04 7.7742e+04 4.8410e+04 1.7219e+04
GrossMargin 0 1.4563e+04 5.6719e+04 9.9097e+04 5.5361e+04 2.1060e+04
ResearchAndDevelopmentExpenses 0 4.9049e+03 2.4637e+04 4.5234e+04 2.4761e+04 1.1524e+04
AdministrativeExpenses 0 1.0474e+03 2.0153e+03 2.8115e+03 1.9745e+03 497.5852
TotalOperatingExpenses 0 5.9925e+03 2.6518e+04 4.8045e+04 2.6736e+04 1.1987e+04
NetIncome 0 7.6343e+03 2.8586e+04 5.1051e+04 2.8625e+04 9.8181e+03
TotalShares 0 822 1.8205e+03 2710 1.8013e+03 496.7446
EarningsPerShare 0 6.5200 15.5150 24.6200 15.7921 3.2653
输入参数
要读取的文件的名称,指定为字符向量或字符串标量。
根据文件的位置,filename 可以采用下列形式之一。
位置 | 形式 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 当前文件夹或 MATLAB® 路径上的文件夹 | 指定 例如: | ||||||||
文件夹中的文件 | 如果该文件不在当前文件夹或 MATLAB 路径下的文件夹中,则在 例如: 例如: | ||||||||
| Internet URL | 如果文件指定为 Internet 统一资源定位器 (URL),则 例如: | ||||||||
远程位置 | 如果文件存储在远程位置,则
根据远程位置,
有关详细信息,请参阅处理远程数据。 例如: |
如果
filename包含文件扩展名,则导入函数基于扩展名确定文件格式。否则,您必须指定'FileType'名称-值对组参量以指示文件类型。在安装了 Microsoft® Excel® 软件的 Windows® 系统上,导入函数读取您的 Excel 版本可识别的任何 Excel 电子表格文件格式。
如果您的系统没有 Windows 版 Excel 或者您正在使用 MATLAB Online™,则导入函数在
UseExcel属性设置为false的情况下运行,并且只读取.xls, .xlsx, .xlsm, .xltx, and .xltm文件。对于带分隔符的文本文件,导入函数将文件中的空字段转换为
NaN(对于数值变量)或空字符向量(对于文本变量)。文本文件中的所有行必须有相同数量的分隔符。导入函数会忽略文件中的无用空白。压缩文件格式作为文件读取。存档文件格式被视为文件夹。例如,函数将
mydatafiles.zip解释为文件夹,因此必须在其中指定一个文件,如mydatafiles.zip/file1.xlsx。对于以.gz扩展名结尾的文件,函数通过使用.gz之前的扩展名来确定文件格式。例如,mydata.csv.gz作为 CSV 文件读取。 (自 R2025a 起)
数据类型: char | string
要读取的文件的名称,指定为字符向量或字符串标量。
根据文件的位置,filename 可以采用下列形式之一。
位置 | 形式 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 当前文件夹或 MATLAB 路径上的文件夹 | 指定 例如: | ||||||||
文件夹中的文件 | 如果该文件不在当前文件夹或 MATLAB 路径下的文件夹中,则在 例如: 例如: | ||||||||
| Internet URL | 如果文件指定为 Internet 统一资源定位器 (URL),则 例如: | ||||||||
远程位置 | 如果文件存储在远程位置,则
根据远程位置,
有关详细信息,请参阅处理远程数据。 例如: |
如果
filename包含文件扩展名,则导入函数基于扩展名确定文件格式。否则,您必须指定'FileType'名称-值对组参量以指示文件类型。在安装了 Microsoft Excel 软件的 Windows 系统上,导入函数读取您的 Excel 版本可识别的任何 Excel 电子表格文件格式。
如果您的系统没有 Windows 版 Excel 或者您正在使用 MATLAB Online,则导入函数在
UseExcel属性设置为false的情况下运行,并且只读取.xls, .xlsx, .xlsm, .xltx, and .xltm文件。对于带分隔符的文本文件,导入函数将文件中的空字段转换为
NaN(对于数值变量)或空字符向量(对于文本变量)。文本文件中的所有行必须有相同数量的分隔符。导入函数会忽略文件中的无用空白。
数据类型: char | string
文件导入选项,指定为 detectImportOptions 函数创建的 SpreadsheetImportOptions、DelimitedTextImportOptions、FixedWidthImportOptions 或 XMLImportOptions 对象。opts 对象包含控制数据导入过程的属性。有关每个对象的属性的详细信息,请参阅相应的对象页。
| 文件类型 | 输出 |
|---|---|
| 电子表格文件 | SpreadsheetImportOptions 对象(仅对 Sheet、DataRange 和 VariableNames 属性可用) |
| 文本文件 | DelimitedTextImportOptions 对象 |
| 等宽文本文件 | FixedWidthImportOptions 对象 |
| XML 文件 | XMLImportOptions 对象 |
有关如何控制导入的详细信息,请参阅Control How MATLAB Imports Your Data。
名称-值参数
以 Name1=Value1,...,NameN=ValueN 的形式指定可选参量对组,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。
示例: 'NumHeaderLines',5 表示表格数据前面的前五行是标题行。
所有支持的文件类型
HTTP 或 HTTPS 请求选项,指定为 weboptions 对象。当指定的 filename 是包含协议类型 "http://" 或 "https://" 的 Internet URL 时,由 weboptions 对象确定如何导入数据。
文本和电子表格文件
文件类型,以逗号分隔的对组形式指定,其中包含 'FileType' 以及 'text' 或 'spreadsheet'。
当 filename 不包含文件扩展名或扩展名不是以下任一项时,请指定 'FileType' 名称-值对组参量。
.txt、.dat或.csv(带分隔符的文本文件).xls、.xlsb、.xlsm、.xlsx、.xltm、.xltx或.ods(电子表格文件)
示例: 'FileType','text'
数据类型: char | string
文件中标题行的数目,指定为以逗号分隔的对组,其中包含 'NumHeaderLines' 和一个正整数。如果未指定,则导入函数会自动检测文件中标题行的数目。
示例: 'NumHeaderLines',7
数据类型: single | double
需要的变量数目,指定为包含 'ExpectedNumVariables' 和正整数的逗号分隔对组。如果未指定,则导入函数会自动检测变量数目。
数据类型: single | double
要从文本文件或电子表格文件中读取的数据部分,指定为以逗号分隔的对组,其中包含 'Range' 和采用以下形式之一的字符向量、字符串标量或数值向量。
指定 Range 的方式 | 描述 |
|---|---|
起始单元格
| 将数据的起始单元格指定为字符向量、字符串标量或二元素数值向量。
根据起始单元格,导入函数通过从起始单元格开始导入,并在到达最后一个空行或页脚范围时结束,从而自动检测数据范围。 例如: |
矩形范围
| 使用以下形式之一的矩形范围指定要读取的精确范围。
导入函数只读取指定范围内包含的数据。指定范围内的任何空字段都作为缺失单元导入。 |
行范围或列范围
| 通过使用 Excel 行号标识起始行和结束行来指定范围。 根据指定的行范围,导入函数通过从第一个非空列开始读取,一直到数据的最后,从而自动检测列范围,并为每一列创建一个变量。 示例: 也可以通过使用 Excel 列字母或列号标识起始列和结束列来指定范围。 根据指定的列范围,导入函数通过从第一个非空行开始读取,一直到数据的最后或页脚范围,从而自动检测行范围。 指定范围内的列数必须与 例如: |
起始行号
| 使用正标量行索引指定包含数据的第一行。 根据指定的行索引,导入函数通过从指定的第一行开始读取,一直到数据的最后或页脚范围,从而自动检测数据范围。 示例: |
Excel 中的命名范围
| 在 Excel 中,您可以创建名称来标识电子表格中的范围。例如,您可以选择电子表格的一个矩形部分,并将其命名为 例如: |
未指定或为空
| 如果未指定,则导入函数会自动检测使用的范围。 例如: 注意:使用范围指电子表格中实际包含数据的矩形部分。导入函数通过删减不包含数据的前导行列和尾随行列,自动检测使用范围。只包含空白的文本被视为数据,并会在使用范围内被捕获。 |
数据类型: char | string | double
导入文本数据的类型,指定为以下值之一:
"string"- 将文本数据作为字符串数组导入。"char"- 将文本数据作为字符向量导入。
示例: "TextType","char"
导入的日期和时间数据的类型,指定为以下值之一:
| 值 | 描述 |
|---|---|
"datetime" | MATLAB 有关详细信息,请参阅 |
"text" | 如果将
|
"exceldatenum" | Excel 序列日期值 值 |
要解释为缺失数据的文本,指定为字符向量、字符串标量、字符向量元胞数组或字符串数组。
示例: 'TreatAsMissing',{'NA','TBD'} 指示导入函数将 NA 或 TBD 的任何实例都视为缺失字段。
数据类型: char | string | cell
读取第一行作为变量名称,指定为逗号分隔的对组,包含 'ReadVariableNames' 和 true 或 false。如果未指定,导入函数会自动检测变量名称是否存在。
指示符 | 描述 |
|---|---|
| 当要读取的区域的第一行包含表的变量名称时使用。导入函数使用检测到的变量名称为 |
| 当要读取的区域的第一行包含表中的数据时使用。导入函数将创建 |
| 未指定 | 未指定时,导入函数会自动检测 true 或 false,并相应地继续后续步骤。 |
除 opts 之外,当您指定 ReadVariableNames 名称-值对组时,导入函数如下进行。
如果
ReadVariableNames设置为true,则导入函数通过使用导入选项对象的VariableNamesRange或VariableNamesLine属性从指定的文件中读取变量名称。如果
ReadVariableNames设置为false,则导入函数从导入选项对象的VariableNames属性读取变量名称。
数据类型: logical
行时间变量,指定为由 'RowTimes' 和变量名称或时间向量组成的以逗号分隔的对组。
变量名称必须为字符向量或字符串标量,其中包含输入表中任何具有
datetime或duration值的变量的名称。变量名称指定的变量为行提供行时间标签。输入表的其余变量成为时间表的变量。时间向量必须为
datetime向量或duration向量。时间向量的元素数必须等于输入表的行数。时间向量中的时间值不必是唯一、已排序或规则的。输入表中的所有变量都成为时间表中的变量。
数据类型: char | string | datetime | duration
行时间的采样率,以逗号分隔的对组形式指定,该对组由 'SampleRate' 和一个数值标量组成。采样率是输出时间表的时间向量的每秒采样数 (Hz)。
当您使用 'SampleRate' 指定时间表的行时间向量时,默认的第一个行时间(开始时间)为零秒。要设置非零的开始时间,请指定 'StartTime' 名称-值对组。
数据类型: double
行时间之间的时间步,指定为以逗号分隔的对组,由 'TimeStep' 和持续时间标量或 calendarDuration 标量组成。'TimeStep' 参数的值指定连续行时间之间的时间长度。导入函数使用时间步长值来计算固定间隔的行时间。
当您使用 'TimeStep' 指定时间表的行时间向量时,默认的第一个行时间(开始时间)为零秒。要设置非零的开始时间,请指定 'StartTime' 名称-值对组。
如果 'TimeStep' 是日历持续时间值,则 'StartTime' 必须为日期时间值。
数据类型: duration | calendarDuration
行时间的开始时间,指定为由 StartTime 和一个日期时间标量或持续时间标量组成的逗号分隔对组。
要定义时间表的时间向量,请使用 'StartTime' 和 'SampleRate' 或 'TimeStep' 名称-值对组参量。
开始时间的数据类型决定行时间向量的数据类型。
如果开始时间是日期时间值,则时间表的行时间是日期时间值。
如果开始时间是持续时间值,则行时间是持续时间。
数据类型: datetime | duration
保留变量名称的标志,指定为 "modify" 或 "preserve"。
"modify"- 将无效变量名称(由isvarname函数确定)转换为有效的 MATLAB 标识符。"preserve"- 保留作为无效 MATLAB 标识符的变量名称,如包含空白和非 ASCII 字符的变量名称。
从 R2019b 开始,变量名称和行名称可以包含任何字符,包括空格和非 ASCII 字符。此外,它们可以由任何字符(而不仅仅是字母)开头。变量名称和行名称可以不是有效的 MATLAB 标识符(由 isvarname 函数决定)。要保留这些变量名称和行名称,请将 VariableNamingRule 的值设置为 "preserve"。当 VariableNamingRule 的值从 "modify" 更改为 "preserve" 时,变量名称不会刷新。
数据类型: char | string
仅限文本文件
带分隔符的文本文件中的字段分隔符,指定为字符串数组、字符向量或字符向量元胞数组。
示例: "Delimiter","|"
示例: "Delimiter",[";","*"]
要视为空白的字符,指定为包含一个或多个字符的字符向量或字符串标量。
示例: 'Whitespace',' _'
示例: 'Whitespace','?!.,'
行尾字符,指定为字符串数组、字符向量或字符向量元胞数组。
示例: "LineEnding","\n"
示例: "LineEnding","\r\n"
示例: "LineEnding",["\b",":"]
注释样式,指定为字符串数组、字符向量或字符向量元胞数组。对于单行和多行注释,起始标识符必须为第一个非空白字符。对于单行注释,请指定一个标识符,以便将以该标识符开头的行视为注释。对于多行注释,从起始(第一个)标识符到结束(第二个)标识符的行被视为注释。最多只能指定两个由标识符组成的字符向量。
例如,要忽略百分号后面的行作为第一个非空白字符,请将 CommentStyle 指定为 "%"。
示例: "CommentStyle",["/*"]
示例: "CommentStyle",["/*","*/"]
与文件关联的字符编码方案,指定为以逗号分隔的对组,其中包含 'Encoding' 和 'system' 或标准字符编码方案名称。如果您没有指定任何编码,则 readtimetable 函数在读取文件时将使用自动字符集检测来确定编码。
如果除导入选项外您还指定了 'Encoding' 参量,readtimetable 函数将使用为 'Encoding' 指定的值,而覆盖导入选项中定义的编码方案。
示例: 'Encoding','UTF-8' 使用 UTF-8 作为编码。
示例: 'Encoding','system' 使用系统默认编码。
数据类型: char | string
来自文本文件的持续时间数据的输出数据类型,指定为以逗号分隔的对组,其中包含 'DurationType' 和 'duration' 或 'text'。
| 值 | 导入的持续时间数据的类型 |
|---|---|
'duration' | MATLAB 有关详细信息,请参阅 |
'text' | 如果将
|
数据类型: char | string
用于读取日期的区域设置,指定为逗号分隔的对组,其中包含 'DateLocale' 和一个 形式的字符向量或字符串标量,其中:xx_YY
YY是指示国家/地区的大写 ISO 3166-1 alpha-2 代码。xx是指示语言的小写 ISO 639-1 双字母代码。
下表列出了区域设置的某些常用值。
| 区域设置 | 语言 | 国家/地区 |
|---|---|---|
'de_DE' | 德语 | 德国 |
'en_GB' | 英语 | 英国 |
'en_US' | 英语 | 美国 |
'es_ES' | 西班牙语 | 西班牙 |
'fr_FR' | 法语 | 法国 |
'it_IT' | 意大利语 | 意大利 |
'ja_JP' | 日语 | 日本 |
'ko_KR' | 韩语 | 韩国 |
'nl_NL' | 荷兰 | 荷兰 |
'zh_CN' | 简体中文 | 中国 |
使用 %D 格式设定符来将文本读取为 datetime 值时,请使用 DateLocale 指定导入函数应使用何种区域设置来解释月份和星期几的名称及缩写。
如果除 opts 导入选项外您还指定了 DateLocale 参量,则导入函数将使用为 DateLocale 参量指定的值,而覆盖导入选项中定义的区域设置。
示例: 'DateLocale','ja_JP'
表示数值变量中小数分隔符的字符,指定为字符向量或字符串标量。导入函数使用 DecimalSeparator 名称-值对组中指定的字符来区分数字的整数部分和小数部分。
转换为整数数据类型时,带小数部分的数字将被舍入为最接近的整数。
示例: 如果名称-值对组指定为 'DecimalSeparator',',',则导入函数将文本 "3,14159" 导入为数字 3.14159。
数据类型: char | string
表示数值变量中千分位的字符,指定为字符向量或字符串标量。千分位字符作为视觉分隔符,将数字按三位数一组进行分组。导入函数使用 ThousandsSeparator 名称-值对组中指定的字符来解释要导入的数字。
示例: 如果名称-值对组指定为 'ThousandsSeparator',',',则导入函数将文本 "1,234,000" 导入为 1234000。
数据类型: char | string
从数值变量中删除非数值字符,指定为逻辑值 true 或 false。
示例: 如果名称-值对组指定为 'TrimNonNumeric',true,则导入函数将 '$500/-' 读取为 500。
数据类型: logical
管理带分隔符的文本文件中的连续分隔符的过程,指定为下表中的值之一。
| 值 | 行为 |
|---|---|
"split" | 将连续分隔符拆分为多个字段。 |
"join" | 将多个分隔符合并成一个分隔符。 |
"error" | 返回错误并取消导入操作。 |
管理带分隔符的文本文件中的前导分隔符的过程,指定为下表中的值之一。
| 值 | 行为 |
|---|---|
"keep" | 保留分隔符。 |
"ignore" | 忽略分隔符。 |
"error" | 返回错误并取消导入操作。 |
管理带分隔符的文本文件中的尾部分隔符的过程,指定为下表中的值之一。
| 前导分隔符规则 | 行为 |
|---|---|
'keep' | 保留分隔符。 |
'ignore' | 忽略分隔符。 |
'error' | 返回错误并中止导入操作。 |
仅限电子表格文件
要从中读取数据的工作表,指定为空字符数组、包含工作表名称的字符向量或字符串标量,或表示工作表索引的正整数标量。根据为 Sheet 属性指定的值,导入函数的行为如下表中所述。
| 指定的值 | 行为 |
|---|---|
''(默认值) | 从第一个工作表导入数据。 |
| 名称 | 从具有匹配名称的工作表中导入数据,不考虑电子表格文件中工作表的顺序。 |
| 整数 | 从由整数指定的位置的工作表导入数据,不考虑电子表格文件中的工作表名称。 |
数据类型: char | string | single | double
用于在读取电子表格数据时启动 Windows 版 Microsoft Excel 实例的标志,指定为逗号分隔的对组,包含 'UseExcel' 和 true 或 false。
您可以将 'UseExcel' 参数设置为下列值之一:
true- 导入函数在读取文件时启动 Microsoft Excel 的实例。false- 导入函数在读取文件时不启动 Microsoft Excel 的实例。在此模式下操作时,导入函数功能支持的文件格式和交互式功能(例如公式和宏)有所不同。
UseExcel |
|
|
|---|---|---|
| 支持的文件格式 |
|
|
支持交互功能,例如公式和宏 | 是 | 否 |
从 Windows 平台上的电子表格文件中读取时,如果您想启动 Microsoft Excel 实例,则将 'UseExcel' 参数设置为 true。
UseExcel 在非交互式自动化环境中不受支持。
自 R2024b 起
跨列合并单元格的规则,指定为下表中的值之一。
| 导入规则 | 行为 |
|---|---|
"placeleft" | 将数据放在最左侧单元格中,并用 您可以在要导入的变量的 |
"placeright" | 将数据放在最右侧单元格中,并用 您可以在要导入的变量的 |
"duplicate" | 在所有单元格中复制数据。 |
"omitrow" | 忽略出现合并单元格的行。 |
"error" | 显示错误消息并取消导入操作。 |
自 R2024b 起
跨行合并单元格的规则,指定为下表中的值之一。
| 导入规则 | 行为 |
|---|---|
"placetop" | 将数据放在顶部单元格中,并用 您可以在要导入的变量的 |
"placebottom" | 将数据放在底部单元格中,并用 您可以在要导入的变量的 |
"duplicate" | 在所有单元格中复制数据。 |
"omitvar" | 省略出现合并单元格的变量。 |
"error" | 显示错误消息并取消导入操作。 |
仅 XML 文件
属性后缀,指定为逗号分隔的对组,包含 'AttributeSuffix' 和一个字符向量或字符串标量。此参量指定读取函数追加到与输入 XML 文件中的属性对应的所有表变量的后缀。如果未指定 'AttributeSuffix',则读取函数默认将后缀 'Attribute' 附加到与输入 XML 文件中的属性对应的所有变量名称。
示例: 'AttributeSuffix','_att'
导入属性,指定为逗号分隔的对组,包含 'ImportAttributes' 和 1 (true) 或 0 (false)。如果指定 false,则读取函数不会将输入文件中的 XML 属性作为输出表中的变量导入。
示例: 'ImportAttributes',false
表行 XML 节点名称,指定为逗号分隔的对组,包含 'RowNodeName' 和一个字符向量或字符串标量。此参量指定界定输出表行的 XML 节点名称。
示例: 'RowNodeName','XMLNodeName'
表行 XPath 表达式,指定为字符向量或字符串标量,读取函数使用它来选择输出表的各个行。您必须将 RowSelector 指定为有效的 XPath 版本 1.0 表达式。
示例: 'RowSelector','/RootNode/ChildNode'
表变量 XML 节点名称,指定为以逗号分隔的对组,包含 'VariableNodeNames' 和一个字符向量元胞数组或字符串数组。此参量指定读取函数用于标识输出表中作为变量读取的 XML 节点的 XML 节点名称。
示例: 'VariableNodeNames',{'XMLNodeName1','XMLNodeName2'}
示例: 'VariableNodeNames',"XMLNodeName"
示例: 'VariableNodeNames',["XMLNodeName1","XMLNodeName2"]
表变量 XPath 表达式,指定为字符向量元胞数组或字符串数组,读取函数使用它来选择表变量。您必须将 VariableSelectors 指定为有效的 XPath 版本 1.0 表达式。
示例: 'VariableSelectors',{'/RootNode/ChildNode'}
示例: 'VariableSelectors',"/RootNode/ChildNode"
示例: 'VariableSelectors',["/RootNode/ChildNode1","/RootNode/ChildNode2"]
表 XML 节点名称,指定为逗号分隔的对组,其中包含 'TableNodeName' 和一个字符向量或字符串标量。此参量指定读取函数应读取到表的输入结构体中的节点。
示例: 'TableNodeName','NodeName'
表数据 XPath 表达式,指定为字符向量或字符串标量,读取函数使用它来选择输出表数据。您必须将 TableSelector 指定为有效的 XPath 版本 1.0 表达式。
示例: 'TableSelector','/RootNode/ChildNode'
变量单位 XPath,指定为字符向量或字符串标量,读取函数使用它来选择表变量单位。您必须将 VariableUnitsSelector 指定为有效的 XPath 版本 1.0 表达式。
示例: 'VariableUnitsSelector','/RootNode/ChildNode'
变量描述 XPath 表达式,指定为字符向量或字符串标量,读取函数使用它来选择表变量描述。您必须将 VariableDescriptionsSelector 指定为有效的 XPath 版本 1.0 表达式。
示例: 'VariableDescriptionsSelector','/RootNode/ChildNode'
处理表的给定行中重复 XML 节点的过程,指定为 'addcol'、'ignore' 或 'error'。
重复节点规则 | 行为 |
|---|---|
'addcol' | 在表中的变量标题下为重复节点添加列。将 |
'ignore' | 跳过导入重复节点。 |
'error' | 显示错误消息并中止导入操作。 |
示例: 'RepeatedNodeRule','ignore'
注册的 XML 命名空间前缀集,指定为由 RegisteredNamespaces 和前缀数组组成的以逗号分隔的对组。读取函数在计算 XML 文件的 XPath 表达式时使用这些前缀。将命名空间前缀及其关联的 URL 指定为 N×2 字符串数组。RegisteredNamespaces 还可以用于计算由选择器名称-值参量(例如 readstruct 的 StructSelector 或 readtable 和 readtimetable 的 VariableSelectors)指定的 XPath 表达式。
默认情况下,读取函数会自动检测要注册以用于 XPath 计算的命名空间前缀,但您也可以使用 RegisteredNamespaces 名称-值参量注册新命名空间前缀。当 XML 节点有命名空间 URL 但在 XML 文件中没有声明的命名空间前缀时,您可以注册新命名空间前缀。
例如,对名为 example.xml 的不包含命名空间前缀的 XML 文件计算 XPath 表达式。将 'RegisteredNamespaces' 指定为 ["myprefix", "https://www.mathworks.com"] 以将前缀 myprefix 赋给 URL https://www.mathworks.com。
T = readtable("example.xml", "VariableSelector", "/myprefix:Data",...
"RegisteredNamespaces", ["myprefix", "https://www.mathworks.com"])示例: 'RegisteredNamespaces',["myprefix", "https://www.mathworks.com"]
提示
使用 XPath 选择器指定要导入 XML 输入文档的哪些元素。例如,假设您要导入 XML 文件
myFile.xml,该文件具有以下结构:下表提供 XPath 选择器名称-值参量(例如<data> <table category="ones"> <var>1</var> <var>2</var> </table> <table category="tens"> <var>10</var> <var>20</var> </table> </data>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 10data = readtable('myFile.xml', 'VariableSelectors', '(//table/var)[1]')
data = table var ___ 1
版本历史记录
在 R2019a 中推出您可以将压缩和存档文件中的数据作为时间表读取。
从电子表格导入数据时,您可以使用 MergedCellRowRule 和 MergedCellColumnRule 名称-值参量来指定 readtimetable 如何导入跨行和列合并的单元格。
另请参阅
函数
实时编辑器任务
App
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)