readtimetable
说明
通过从文件中读取列向数据来创建时间表。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(___,Name,Value
)
要为数据设置特定的导入选项,您可以使用 opts
对象,也可以指定名称-值对组。当您指定除 opts
之外的名称-值对组时,readtimetable
仅支持下列名称-值对组:
文本和电子表格参数 -
ReadVariableNames
、RowTimes
、SampleRate
、TimeStep
、StartTime
仅文本参数 -
DateLocale
、Encoding
仅电子表格参数 -
Sheet
、UseExcel
示例
基于文本文件创建时间表
基于逗号分隔的文本文件创建表。
TT = readtimetable('outages.csv');
显示表的摘要。创建时间表时,如果没有为行时间指定任何参数,则 readtimetable
函数会检测并指定数据中的第一个日期时间变量或持续时间变量 OutageTime
作为行时间变量。其余变量成为时间表的变量。
summary(TT)
RowTimes: OutageTime: 1468x1 datetime Values: Min 2002-02-01 12:18 Median 2010-03-18 21:05 Max 2014-01-15 02:41 Variables: Region: 1468x1 cell array of character vectors Loss: 1468x1 double Values: Min 0 Median 180.26 Max 23418 NumMissing 604 Customers: 1468x1 double Values: Min 0 Median 75765 Max 5.9689e+06 NumMissing 328 RestorationTime: 1468x1 datetime Values: Min 2002-02-07 16:50 Median 2010-03-31 10:54 Max 2042-09-18 23:31 NumMissing 29 Cause: 1468x1 cell array of character vectors
使用导入选项基于文件创建时间表
检测文本文件的导入选项,指定变量类型,然后基于数据创建时间表。
基于文件创建导入选项对象,并检查变量选项。
opts = detectImportOptions('outages.csv');
opts.VariableOptions
ans = 1x6 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)
RowTimes: OutageTime: 1468x1 datetime Values: Min 2002-02-01 12:18 Median 2010-03-18 21:05 Max 2014-01-15 02:41 Variables: Region: 1468x1 categorical Values: MidWest 142 NorthEast 557 SouthEast 389 SouthWest 26 West 354 Loss: 1468x1 double Values: Min 0 Median 180.26 Max 23418 NumMissing 604 Customers: 1468x1 double Values: Min 0 Median 75765 Max 5.9689e+06 NumMissing 328 RestorationTime: 1468x1 datetime Values: Min 2002-02-07 16:50 Median 2010-03-31 10:54 Max 2042-09-18 23:31 NumMissing 29 Cause: 1468x1 categorical Values: attack 294 earthquake 2 energy emergency 188 equipment fault 156 fire 25 severe storm 338 thunder storm 201 unknown 24 wind 95 winter storm 145
基于文件创建时间表并指定行时间
从以逗号分隔的文本文件中读取一个表,并使用您选择的行时间变量创建一个时间表。
创建一个导入选项对象并预览表格数据。
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)
RowTimes: RestorationTime: 1468x1 datetime Values: Min 2002-02-07 16:50 Median 2010-03-31 10:54 Max 2042-09-18 23:31 NumMissing 29 Variables: Region: 1468x1 cell array of character vectors OutageTime: 1468x1 datetime Values: Min 2002-02-01 12:18 Median 2010-03-18 21:05 Max 2014-01-15 02:41 Loss: 1468x1 double Values: Min 0 Median 180.26 Max 23418 NumMissing 604 Customers: 1468x1 double Values: Min 0 Median 75765 Max 5.9689e+06 NumMissing 328 Cause: 1468x1 cell array of character vectors
从电子表格文件创建时间表并格式化输入数据
从电子表格文件创建一个时间表,并格式化输入数据。例如,从文件 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)
RowTimes: Time: 80x1 datetime Values: Min 01-Jan-1999 Median 16-Nov-2008 Max 01-Oct-2018 Variables: Net Sales: 80x1 double Values: Min 35066 Median 1.0407e+05 Max 1.7684e+05 Cost of Sales: 80x1 double Values: Min 18106 Median 48624 Max 77742 Gross Margin: 80x1 double Values: Min 14563 Median 56719 Max 99097 Research and Development Expenses: 80x1 double Values: Min 4904.9 Median 24637 Max 45234 Administrative Expenses: 80x1 double Values: Min 1047.4 Median 2015.3 Max 2811.5 Total Operating Expenses: 80x1 double Values: Min 5992.5 Median 26518 Max 48045 Net Income: 80x1 double Values: Min 7634.3 Median 28586 Max 51051 Total Shares: 80x1 double Values: Min 822 Median 1820.5 Max 2710 Earnings per Share: 80x1 double Values: Min 6.52 Median 15.515 Max 24.62
输入参数
filename
— 要读取的文件的名称
字符向量 | 字符串标量
要读取的文件的名称,指定为字符向量或字符串标量。
根据文件的位置,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
opts
— 文件导入选项
SpreadsheetImportOptions
| DelimitedtextImportOptions
| FixedWidthImportOptions
| XMLImportOptions
文件导入选项,指定为 detectImportOptions
函数创建的 SpreadsheetImportOptions
、DelimitedTextImportOptions
、FixedWidthImportOptions
或 XMLImportOptions
对象。opts
对象包含控制数据导入过程的属性。有关每个对象的属性的详细信息,请参阅相应的对象页。
文件类型 | 输出 |
---|---|
电子表格文件 | SpreadsheetImportOptions 对象(仅对 Sheet 、DataRange 和 VariableNames 属性可用) |
文本文件 | DelimitedTextImportOptions 对象 |
等宽文本文件 | FixedWidthImportOptions 对象 |
XML 文件 | XMLImportOptions 对象 |
名称-值参数
将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参数名称,Value
是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: 'NumHeaderLines',5
表示表格数据前面的前五行是标题行。
WebOptions
— HTTP
或 HTTPS
请求选项
weboptions
对象
HTTP
或 HTTPS
请求选项,指定为 weboptions
对象。当指定的 filename
是包含协议类型 "http://"
或 "https://"
的 Internet URL 时,由 weboptions
对象确定如何导入数据。
FileType
— 文件类型
'text'
| 'spreadsheet'
文件类型,以逗号分隔的对组形式指定,其中包含 'FileType'
以及 'text'
或 'spreadsheet'
。
当 filename
不包含文件扩展名或扩展名不是以下任一项时,请指定 'FileType'
名称-值对组参数。
.txt
、.dat
或.csv
(带分隔符的文本文件).xls
、.xlsb
、.xlsm
、.xlsx
、.xltm
、.xltx
或.ods
(电子表格文件)
示例: 'FileType','text'
数据类型: char
| string
NumHeaderLines
— 标题行数
正整数
文件中标题行的数目,指定为以逗号分隔的对组,其中包含 'NumHeaderLines'
和一个正整数。如果未指定,则导入函数会自动检测文件中标题行的数目。
示例: 'NumHeaderLines',7
数据类型: single
| double
ExpectedNumVariables
— 需要的变量数目
正整数
需要的变量数目,指定为包含 'ExpectedNumVariables'
和正整数的逗号分隔对组。如果未指定,则导入函数会自动检测变量数目。
数据类型: single
| double
Range
— 要读取的数据部分
字符向量 | 字符串标量 | 数值向量
要从文本文件或电子表格文件中读取的数据部分,指定为以逗号分隔的对组,其中包含 'Range'
和采用以下形式之一的字符向量、字符串标量或数值向量。
指定 Range 的方式 | 描述 |
---|---|
起始单元格
| 将数据的起始单元格指定为字符向量、字符串标量或二元素数值向量。
根据起始单元格,导入函数通过从起始单元格开始导入,并在到达最后一个空行或页脚范围时结束,从而自动检测数据范围。 例如: |
矩形范围
| 使用以下形式之一的矩形范围指定要读取的精确范围。
导入函数只读取指定范围内包含的数据。指定范围内的任何空字段都作为缺失单元导入。 |
行范围或列范围
| 通过使用 Excel 行号标识起始行和结束行来指定范围。 根据指定的行范围,导入函数通过从第一个非空列开始读取,一直到数据的最后,从而自动检测列范围,并为每一列创建一个变量。 示例: 也可以通过使用 Excel 列字母或列号标识起始列和结束列来指定范围。 根据指定的列范围,导入函数通过从第一个非空行开始读取,一直到数据的最后或页脚范围,从而自动检测行范围。 指定范围内的列数必须与 示例: |
起始行号
| 使用正标量行索引指定包含数据的第一行。 根据指定的行索引,导入函数通过从指定的第一行开始读取,一直到数据的最后或页脚范围,从而自动检测数据范围。 示例: |
Excel 中的命名范围
| 在 Excel 中,您可以创建名称来标识电子表格中的范围。例如,您可以选择电子表格的一个矩形部分,并将其命名为 示例: |
未指定或为空
| 如果未指定,则导入函数会自动检测使用的范围。 示例: 注意:使用范围指电子表格中实际包含数据的矩形部分。导入函数通过删减不包含数据的前导行列和尾随行列,自动检测使用范围。只包含空白的文本被视为数据,并会在使用范围内被捕获。 |
数据类型: char
| string
| double
TextType
— 导入的文本数据的类型
"string"
| "char"
导入文本数据的类型,指定为以下值之一:
"string"
- 将文本数据作为字符串数组导入。"char"
- 将文本数据作为字符向量导入。
示例: "TextType","char"
DatetimeType
— 导入日期时间数据的类型
"datetime"
(默认) | "text"
| "exceldatenum"
(仅限电子表格文件)
导入的日期和时间数据的类型,指定为以下值之一:
值 | 描述 |
---|---|
"datetime" | MATLAB 有关详细信息,请参阅 |
"text" | 如果将
|
"exceldatenum" | Excel 日期序列值 值 |
TreatAsMissing
— 要解释为缺失数据的文本
字符向量 | 字符串标量 | 字符向量元胞数组 | 字符串数组
要解释为缺失数据的文本,指定为字符向量、字符串标量、字符向量元胞数组或字符串数组。
示例: 'TreatAsMissing',{'NA','TBD'}
指示导入函数将 NA
或 TBD
的任何实例都视为缺失字段。
数据类型: char
| string
| cell
ReadVariableNames
— 读取第一行作为变量名称
true
| false
读取第一行作为变量名称,指定为逗号分隔的对组,包含 'ReadVariableNames'
和 true
或 false
。如果未指定,导入函数会自动检测变量名称是否存在。
指示符 | 描述 |
---|---|
| 当要读取的区域的第一行包含表的变量名称时使用。导入函数使用检测到的变量名称为 |
| 当要读取的区域的第一行包含表中的数据时使用。导入函数将创建 |
未指定 | 未指定时,导入函数会自动检测 true 或 false ,并相应地继续后续步骤。 |
除 opts
之外,当您指定 ReadVariableNames
名称-值对组时,导入函数如下进行。
如果
ReadVariableNames
设置为true
,则导入函数通过使用导入选项对象的VariableNamesRange
或VariableNamesLine
属性从指定的文件中读取变量名称。如果
ReadVariableNames
设置为false
,则导入函数从导入选项对象的VariableNames
属性读取变量名称。
数据类型: logical
RowTimes
— 行时间变量
变量名称 | 时间向量
行时间变量,指定为由 'RowTimes'
和变量名称或时间向量组成的以逗号分隔的对组。
变量名称必须为字符向量或字符串标量,其中包含输入表中任何具有
datetime
或duration
值的变量的名称。变量名称指定的变量为行提供行时间标签。输入表的其余变量成为时间表的变量。时间向量必须为
datetime
向量或duration
向量。时间向量的元素数必须等于输入表的行数。时间向量中的时间值不必是唯一、已排序或规则的。输入表中的所有变量都成为时间表中的变量。
数据类型: char
| string
| datetime
| duration
SampleRate
— 行时间的采样率
正数值标量
行时间的采样率,以逗号分隔的对组形式指定,该对组由 'SampleRate'
和一个正数值标量组成。采样率是输出时间表的时间向量的每秒采样数 (Hz)。
当您使用 'SampleRate'
指定时间表的行时间向量时,默认的第一个行时间(开始时间)为零秒。要设置非零的开始时间,请指定 'StartTime'
名称-值对组。
数据类型: double
TimeStep
— 行时间之间的时间步
持续时间标量 | calendarDuration 标量
行时间之间的时间步,指定为以逗号分隔的对组,由 'TimeStep'
和持续时间标量或 calendarDuration 标量组成。'TimeStep'
参数的值指定连续行时间之间的时间长度。导入函数使用时间步长值来计算固定间隔的行时间。
当您使用 'TimeStep'
指定时间表的行时间向量时,默认的第一个行时间(开始时间)为零秒。要设置非零的开始时间,请指定 'StartTime'
名称-值对组。
如果 'TimeStep'
是日历持续时间值,则 'StartTime'
必须为日期时间值。
数据类型: duration
| calendarDuration
StartTime
— 行时间的开始时间
日期时间标量 | 持续时间标量
行时间的开始时间,指定为由 StartTime
和一个日期时间标量或持续时间标量组成的逗号分隔对组。
要定义时间表的时间向量,请使用 'StartTime'
和 'SampleRate'
或 'TimeStep'
名称-值对组参数。
开始时间的数据类型决定行时间向量的数据类型。
如果开始时间是日期时间值,则时间表的行时间是日期时间值。
如果开始时间是持续时间值,则行时间是持续时间。
数据类型: datetime
| duration
VariableNamingRule
— 保留变量名称的标志
"modify"
(默认) | "preserve"
保留变量名称的标志,指定为 "modify"
或 "preserve"
。
"modify"
- 将无效变量名称(由isvarname
函数确定)转换为有效的 MATLAB 标识符。"preserve"
- 保留作为无效 MATLAB 标识符的变量名称,如包含空白和非 ASCII 字符的变量名称。
从 R2019b 开始,变量名称和行名称可以包含任何字符,包括空格和非 ASCII 字符。此外,它们可以由任何字符(而不仅仅是字母)开头。变量名称和行名称可以不是有效的 MATLAB 标识符(由 isvarname
函数决定)。要保留这些变量名称和行名称,请将 VariableNamingRule
的值设置为 "preserve"
。当 VariableNamingRule
的值从 "modify"
更改为 "preserve"
时,变量名称不会刷新。
数据类型: char
| string
Delimiter
— 字段分隔符
字符串数组 | 字符向量 | 字符向量元胞数组
带分隔符的文本文件中的字段分隔符,指定为字符串数组、字符向量或字符向量元胞数组。
示例: "Delimiter","|"
示例: "Delimiter",[";","*"]
Whitespace
— 要视为空白的字符
字符向量 | 字符串标量
要视为空白的字符,指定为包含一个或多个字符的字符向量或字符串标量。
示例: 'Whitespace',' _'
示例: 'Whitespace','?!.,'
LineEnding
— 行尾字符
["\n","\r","\r\n"]
(默认) | 字符串数组 | 字符向量 | 字符向量元胞数组
行尾字符,指定为字符串数组、字符向量或字符向量元胞数组。
示例: "LineEnding","\n"
示例: "LineEnding","\r\n"
示例: "LineEnding",["\b",":"]
CommentStyle
— 注释样式
字符串数组 | 字符向量 | 字符向量元胞数组
注释样式,指定为字符串数组、字符向量或字符向量元胞数组。对于单行和多行注释,起始标识符必须为第一个非空白字符。对于单行注释,请指定一个标识符,以便将以该标识符开头的行视为注释。对于多行注释,从起始(第一个)标识符到结束(第二个)标识符的行被视为注释。最多只能指定两个由标识符组成的字符向量。
例如,要忽略百分号后面的行作为第一个非空白字符,请将 CommentStyle
指定为 "%"
。
示例: "CommentStyle",["/*"]
示例: "CommentStyle",["/*","*/"]
Encoding
— 字符编码方案
'UTF-8'
| 'ISO-8859-1'
| 'windows-1251'
| 'windows-1252'
| ...
与文件关联的字符编码方案,指定为以逗号分隔的对组,其中包含 'Encoding'
和 'system'
或标准字符编码方案名称。如果您没有指定任何编码,则 readtimetable
函数在读取文件时将使用自动字符集检测来确定编码。
如果除导入选项外您还指定了 'Encoding'
参数,readtimetable
函数将使用为 'Encoding'
指定的值,而覆盖导入选项中定义的编码方案。
示例: 'Encoding','UTF-8'
使用 UTF-8 作为编码。
示例: 'Encoding','system'
使用系统默认编码。
数据类型: char
| string
DurationType
— 持续时间数据的输出数据类型
'duration'
(默认) | 'text'
来自文本文件的持续时间数据的输出数据类型,指定为以逗号分隔的对组,其中包含 'DurationType'
和 'duration'
或 'text'
。
值 | 导入的持续时间数据的类型 |
---|---|
'duration' | MATLAB 有关详细信息,请参阅 |
'text' | 如果将
|
数据类型: char
| string
DateLocale
— 用于读取日期的区域设置
字符向量 | 字符串标量
用于读取日期的区域设置,指定为逗号分隔的对组,其中包含 '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
名称-值对组中指定的字符来区分数字的整数部分和小数部分。
转换为整数数据类型时,带小数部分的数字将被舍入为最接近的整数。
示例: 如果名称-值对组指定为 'DecimalSeparator',','
,则导入函数将文本 "3,14159"
导入为数字 3.14159
。
数据类型: char
| string
ThousandsSeparator
— 表示千分位的字符
字符向量 | 字符串标量
表示数值变量中千分位的字符,指定为字符向量或字符串标量。千分位字符作为视觉分隔符,将数字按三位数一组进行分组。导入函数使用 ThousandsSeparator
名称-值对组中指定的字符来解释要导入的数字。
示例: 如果名称-值对组指定为 'ThousandsSeparator',','
,则导入函数将文本 "1,234,000"
导入为 1234000
。
数据类型: char
| string
TrimNonNumeric
— 删除非数值字符
false
(默认) | true
从数值变量中删除非数值字符,指定为逻辑值 true
或 false
。
示例: 如果名称-值对组指定为 'TrimNonNumeric',true
,则导入函数将 '$500/-'
读取为 500
。
数据类型: logical
ConsecutiveDelimitersRule
— 管理连续分隔符的过程
"split"
| "join"
| "error"
管理带分隔符的文本文件中的连续分隔符的过程,指定为下表中的值之一。
值 | 行为 |
---|---|
"split" | 将连续分隔符拆分为多个字段。 |
"join" | 将多个分隔符合并成一个分隔符。 |
"error" | 返回错误并取消导入操作。 |
LeadingDelimitersRule
— 管理前导分隔符的过程
"keep"
| "ignore"
| "error"
管理带分隔符的文本文件中的前导分隔符的过程,指定为下表中的值之一。
值 | 行为 |
---|---|
"keep" | 保留分隔符。 |
"ignore" | 忽略分隔符。 |
"error" | 返回错误并取消导入操作。 |
TrailingDelimitersRule
— 管理尾部分隔符的过程
'keep'
| 'ignore'
| 'error'
管理带分隔符的文本文件中的尾部分隔符的过程,指定为下表中的值之一。
前导分隔符规则 | 行为 |
---|---|
'keep' | 保留分隔符。 |
'ignore' | 忽略分隔符。 |
'error' | 返回错误并中止导入操作。 |
Sheet
— 要从中读取数据的工作表
''
空字符数组 (默认) | 字符向量 | 字符串标量 | 正整数标量
要从中读取数据的工作表,指定为空字符数组、包含工作表名称的字符向量或字符串标量,或表示工作表索引的正整数标量。根据为 Sheet
属性指定的值,导入函数的行为如下表中所述。
指定的值 | 行为 |
---|---|
'' (默认值) | 从第一个工作表导入数据。 |
名称 | 从具有匹配名称的工作表中导入数据,不考虑电子表格文件中工作表的顺序。 |
整数 | 从由整数指定的位置的工作表导入数据,不考虑电子表格文件中的工作表名称。 |
数据类型: char
| string
| single
| double
UseExcel
— 用于启动 Windows 版 Microsoft Excel 实例的标志
false
(默认) | true
用于在读取电子表格数据时启动 Windows 版 Microsoft Excel 实例的标志,指定为逗号分隔的对组,包含 'UseExcel'
和 true
或 false
。
您可以将 'UseExcel'
参数设置为下列值之一:
true
- 导入函数在读取文件时启动 Microsoft Excel 的实例。false
- 导入函数在读取文件时不启动 Microsoft Excel 的实例。在此模式下操作时,导入函数功能支持的文件格式和交互式功能(例如公式和宏)有所不同。
UseExcel |
|
|
---|---|---|
支持的文件格式 |
|
|
支持交互功能,例如公式和宏 | 是 | 否 |
从 Windows 平台上的电子表格文件中读取时,如果您想启动 Microsoft Excel 实例,则将 'UseExcel'
参数设置为 true
。
AttributeSuffix
— 属性后缀
'Attribute'
(默认) | 字符向量 | 字符串标量
属性后缀,指定为逗号分隔的对组,包含 'AttributeSuffix'
和一个字符向量或字符串标量。此参数指定读取函数追加到与输入 XML 文件中的属性对应的所有表变量的后缀。如果未指定 'AttributeSuffix'
,则读取函数默认将后缀 'Attribute'
附加到与输入 XML 文件中的属性对应的所有变量名称。
示例: 'AttributeSuffix','_att'
ImportAttributes
— 导入属性
逻辑值 1
或 true
(默认) | 逻辑值 0
或 false
导入属性,指定为逗号分隔的对组,包含 'ImportAttributes'
和 1
(true
) 或 0
(false
)。如果指定 false
,则读取函数不会将输入文件中的 XML 属性作为输出表中的变量导入。
示例: 'ImportAttributes',false
RowNodeName
— 表行 XML 节点名称
字符向量 | 字符串数组
表行 XML 节点名称,指定为逗号分隔的对组,包含 'RowNodeName'
和一个字符向量或字符串标量。此参数指定界定输出表行的 XML 节点名称。
示例: 'RowNodeName','XMLNodeName'
RowSelector
— 表行 XPath 表达式
字符向量 | 字符串标量
表行 XPath 表达式,指定为字符向量或字符串标量,读取函数使用它来选择输出表的各个行。您必须将 RowSelector
指定为有效的 XPath 版本 1.0 表达式。
示例: 'RowSelector','/RootNode/ChildNode'
VariableNodeNames
— 表变量 XML 节点名称
字符向量元胞数组 | 字符串数组
表变量 XML 节点名称,指定为以逗号分隔的对组,包含 'VariableNodeNames'
和一个字符向量元胞数组或字符串数组。此参数指定读取函数用于标识输出表中作为变量读取的 XML 节点的 XML 节点名称。
示例: 'VariableNodeNames',{'XMLNodeName1','XMLNodeName2'}
示例: 'VariableNodeNames',"XMLNodeName"
示例: 'VariableNodeNames',["XMLNodeName1","XMLNodeName2"]
VariableSelectors
— 表变量 XPath 表达式
字符向量元胞数组 | 字符串数组
表变量 XPath 表达式,指定为字符向量元胞数组或字符串数组,读取函数使用它来选择表变量。您必须将 VariableSelectors
指定为有效的 XPath 版本 1.0 表达式。
示例: 'VariableSelectors',{'/RootNode/ChildNode'}
示例: 'VariableSelectors',"/RootNode/ChildNode"
示例: 'VariableSelectors',["/RootNode/ChildNode1","/RootNode/ChildNode2"]
TableNodeName
— 表 XML 节点名称
字符向量 | 字符串标量
表 XML 节点名称,指定为逗号分隔的对组,其中包含 'TableNodeName'
和一个字符向量或字符串标量。此参数指定读取函数应读取到表的输入结构体中的节点。
示例: 'TableNodeName','NodeName'
TableSelector
— 表数据 XPath 表达式
字符向量 | 字符串标量
表数据 XPath 表达式,指定为字符向量或字符串标量,读取函数使用它来选择输出表数据。您必须将 TableSelector
指定为有效的 XPath 版本 1.0 表达式。
示例: 'TableSelector','/RootNode/ChildNode'
VariableUnitsSelector
— 变量单位 XPath 表达式
字符向量 | 字符串标量
变量单位 XPath,指定为字符向量或字符串标量,读取函数使用它来选择表变量单位。您必须将 VariableUnitsSelector
指定为有效的 XPath 版本 1.0 表达式。
示例: 'VariableUnitsSelector','/RootNode/ChildNode'
VariableDescriptionsSelector
— 变量描述 XPath 表达式
字符向量 | 字符串标量
变量描述 XPath 表达式,指定为字符向量或字符串标量,读取函数使用它来选择表变量描述。您必须将 VariableDescriptionsSelector
指定为有效的 XPath 版本 1.0 表达式。
示例: 'VariableDescriptionsSelector','/RootNode/ChildNode'
RepeatedNodeRule
— 处理重复 XML 节点的过程
'addcol'
(默认) | 'ignore'
| 'error'
处理表的给定行中重复 XML 节点的过程,指定为 'addcol'
、'ignore'
或 'error'
。
重复节点规则 | 行为 |
---|---|
'addcol' | 在表中的变量标题下为重复节点添加列。将 |
'ignore' | 跳过导入重复节点。 |
'error' | 显示错误消息并中止导入操作。 |
示例: 'RepeatedNodeRule','ignore'
RegisteredNamespaces
— 注册的 XML 命名空间前缀集
字符串数组
注册的 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 10
data = readtable('myFile.xml', 'VariableSelectors', '(//table/var)[1]')
data = table var ___ 1
版本历史记录
在 R2019a 中推出
另请参阅
函数
实时编辑器任务
App
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)