readtable
基于文件创建表
语法
说明
使用一个或多个名称-值参量指定选项。例如,您可以通过使用 T = readtable(filename,Name=Value)TextType 名称-值参量指定将文本数据作为字符向量或字符串数组导入。
使用导入选项对象和名称-值参量创建表。如果除了导入选项对象之外还指定名称-值参量,则 T = readtable(filename,opts,Name=Value)readtable 对文本文件仅支持 ReadVariableNames、ReadRowNames、DateLocale 和 Encoding 名称-值参量,对电子表格文件仅支持 ReadVariableNames、ReadRowNames、Sheet 和 UseExcel 名称-值参量。
示例
将文本文件的内容导入表中。生成的表为文件中的每一列包含一个变量,并使用文件第一行中的条目作为变量名。
T = readtable("myCsvTable.dat")T=5×6 table
LastName Gender Age Height Weight Smoker
____________ ______ ___ ______ ______ ______
{'Smith' } {'M'} 38 71 176 1
{'Johnson' } {'M'} 43 69 163 0
{'Williams'} {'F'} 38 64 131 0
{'Jones' } {'F'} 40 67 133 0
{'Brown' } {'F'} 49 64 119 0
从包含数据间隙的文本文件创建表。默认情况下,readtable 会用适当的缺失值来填充间隙。
T = readtable("headersAndMissing.txt")T=5×6 table
LastName Gender Age Height Weight Smoker
___________ __________ ___ ______ ______ ______
{'Wu' } {'M' } 38 71 176 1
{'Johnson'} {'M' } 43 69 163 0
{'Sanchez'} {'F' } 38 64 131 0
{'Brown' } {'F' } NaN 67 133 0
{'Picard' } {0×0 char} NaN 64 119 0
要忽略有数据间隙的行,请指定 MissingRule 名称-值参量。
T = readtable("headersAndMissing.txt",MissingRule="omitrow")
T=3×6 table
LastName Gender Age Height Weight Smoker
___________ ______ ___ ______ ______ ______
{'Wu' } {'M'} 38 71 176 1
{'Johnson'} {'M'} 43 69 163 0
{'Sanchez'} {'F'} 38 64 131 0
使用导入选项对象配置 readtable 解释文件的方式。例如,使用导入选项对象仅读取文本文件的一部分内容。
首先,使用 detectImportOptions 创建一个导入选项对象来检测文本文件的各个方面,包括变量名称和类型、分隔符以及空白字符。在本例中,detectImportOptions 会创建一个 DelimitedTextImportOptions 对象。
opts = detectImportOptions("airlinesmall.csv")opts =
DelimitedTextImportOptions with properties:
Format Properties:
Delimiter: {','}
Whitespace: '\b\t '
LineEnding: {'\n' '\r' '\r\n'}
CommentStyle: {}
ConsecutiveDelimitersRule: 'split'
LeadingDelimitersRule: 'keep'
TrailingDelimitersRule: 'ignore'
EmptyLineRule: 'skip'
Encoding: 'ISO-8859-1'
Replacement Properties:
MissingRule: 'fill'
ImportErrorRule: 'fill'
ExtraColumnsRule: 'addvars'
Variable Import Properties: Set types by name using setvartype
VariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
VariableTypes: {'double', 'double', 'double' ... and 26 more}
SelectedVariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
VariableOptions: Show all 29 VariableOptions
Access VariableOptions sub-properties using setvaropts/getvaropts
VariableNamingRule: 'modify'
Location Properties:
DataLines: [2 Inf]
VariableNamesLine: 1
RowNamesColumn: 0
VariableUnitsLine: 0
VariableDescriptionsLine: 0
To display a preview of the table, use preview
通过修改导入选项对象来指定要导入的变量子集。然后,使用 readtable 和导入选项对象导入数据子集。
opts.SelectedVariableNames = ["TaxiIn","TaxiOut"]; T = readtable("airlinesmall.csv",opts);
基于包含第一行的变量名称和第一列的行名称的电子表格创建表。显示表的前五行和前四个变量。
T = readtable("patients.xls",ReadRowNames=true);
T(1:5,1:4)ans=5×4 table
Gender Age Location Height
__________ ___ _____________________________ ______
Smith {'Male' } 38 {'County General Hospital' } 71
Johnson {'Male' } 43 {'VA Hospital' } 69
Williams {'Female'} 38 {'St. Mary's Medical Center'} 64
Jones {'Female'} 40 {'VA Hospital' } 67
Brown {'Female'} 49 {'County General Hospital' } 64
使用电子表格的指定区域中的数据创建表。使用 C2 和 E6 两个对角之间的 5×3 矩形区域内的数据。不要将该区域的第一行用作变量名称。结果表改用默认变量名称。
T = readtable("patients.xls",Range="C2:E6",ReadVariableNames=false)
T=5×3 table
38 'County General Hospital' 71
43 'VA Hospital' 69
38 'St. Mary's Medical Center' 64
40 'VA Hospital' 67
49 'County General Hospital' 64
使用导入选项对象配置 readtable 解释文件的方式。例如,使用导入选项对象仅从电子表格文件中读取指定的变量。
首先,通过使用 detectImportOptions 检测电子表格文件的各个方面(包括变量名称和类型),从文件创建一个导入选项对象。在本例中,detectImportOptions 会创建一个 SpreadsheetImportOptions 对象。
opts = detectImportOptions("patients.xls")opts =
SpreadsheetImportOptions with properties:
Sheet Properties:
Sheet: ''
Replacement Properties:
MissingRule: 'fill'
ImportErrorRule: 'fill'
MergedCellColumnRule: 'placeleft'
MergedCellRowRule: 'placetop'
Variable Import Properties: Set types by name using setvartype
VariableNames: {'LastName', 'Gender', 'Age' ... and 7 more}
VariableTypes: {'char', 'char', 'double' ... and 7 more}
SelectedVariableNames: {'LastName', 'Gender', 'Age' ... and 7 more}
VariableOptions: Show all 10 VariableOptions
Access VariableOptions sub-properties using setvaropts/getvaropts
VariableNamingRule: 'modify'
Range Properties:
DataRange: 'A2' (Start Cell)
VariableNamesRange: 'A1'
RowNamesRange: ''
VariableUnitsRange: ''
VariableDescriptionsRange: ''
To display a preview of the table, use preview
通过修改导入选项对象来指定要导入的变量。然后,使用 readtable 和导入选项对象导入指定的变量。显示表的前 5 行。
opts.SelectedVariableNames = ["Systolic","Diastolic"]; T = readtable("patients.xls",opts); T(1:5,:)
ans=5×2 table
Systolic Diastolic
________ _________
124 93
109 77
125 83
117 75
122 80
将 JSON 文件的内容导入表中。
students.json 文件有三个同级节点,每个节点都包含相同的子节点和属性。
type students.json[
{
"ID": "S11305",
"Name": {
"FirstName": "Priya",
"LastName": "Thompson"
},
"Age": 18.0,
"Year": "Freshman",
"Address": {
"Street": "591 Spring Lane",
"City": "Natick",
"State": "MA"
},
"Major": "Computer Science",
"Minor": "English Literature"
},
{
"ID": "S23451",
"Name": {
"FirstName": "Conor",
"LastName": "Cole"
},
"Age": 18.0,
"Year": "Freshman",
"Address": {
"Street": "4641 Pearl Street",
"City": "San Francisco",
"State": "CA"
},
"Major": "Microbiology",
"Minor": "Public Health"
},
{
"ID": "S119323",
"Name": {
"FirstName": "Morgan",
"LastName": "Yang"
},
"Age": 21.0,
"Year": "Senior",
"Address": {
"Street": "30 Highland Road",
"City": "Detroit",
"State": "MI"
},
"Major": "Political Science"
}
]
首先,使用 detectImportOptions 创建一个 JSONImportOptions 对象,以检测 JSON 文件的各个方面。通过将 VariableSelectors 名称-值参量指定为 Street 对象键的 JSON 指针,仅将街道名称读取到表中。
opts = detectImportOptions("students.json",VariableSelectors="/Address/Street");
然后,使用 readtable 和导入选项对象导入指定的变量。
T = readtable("students.json",opts)T=3×1 table
Street
___________________
"591 Spring Lane"
"4641 Pearl Street"
"30 Highland Road"
将 XML 文件的内容导入表中。
students.xml 文件有三个名为 Student 的同级节点,每个节点都包含相同的子节点和属性。
type students.xml<?xml version="1.0" encoding="utf-8"?>
<Students>
<Student ID="S11305">
<Name FirstName="Priya" LastName="Thompson" />
<Age>18</Age>
<Year>Freshman</Year>
<Address>
<Street xmlns="https://www.mathworks.com">591 Spring Lane</Street>
<City>Natick</City>
<State>MA</State>
</Address>
<Major>Computer Science</Major>
<Minor>English Literature</Minor>
</Student>
<Student ID="S23451">
<Name FirstName="Conor" LastName="Cole" />
<Age>18</Age>
<Year>Freshman</Year>
<Address>
<Street xmlns="https://www.mathworks.com">4641 Pearl Street</Street>
<City>San Francisco</City>
<State>CA</State>
</Address>
<Major>Microbiology</Major>
<Minor>Public Health</Minor>
</Student>
<Student ID="S119323">
<Name FirstName="Morgan" LastName="Yang" />
<Age>21</Age>
<Year>Senior</Year>
<Address>
<Street xmlns="https://www.mathworks.com">30 Highland Road</Street>
<City>Detriot</City>
<State>MI</State>
</Address>
<Major>Political Science</Major>
</Student>
</Students>
首先,使用 detectImportOptions 创建一个 XMLImportOptions 对象来检测 XML 文件的各个方面。通过将 VariableSelectors 名称-值参量指定为 Street 元素节点的 XPath 表达式,仅将街道名称读入表中。通过设置 RegisteredNamespaces 名称-值参量,将自定义命名空间前缀注册到现有命名空间 URL。
opts = detectImportOptions("students.xml",RegisteredNamespaces=["myPrefix","https://www.mathworks.com"], ... VariableSelectors="//myPrefix:Street");
然后,使用 readtable 和导入选项对象导入指定的变量。
T = readtable("students.xml",opts)T=3×1 table
Street
___________________
"591 Spring Lane"
"4641 Pearl Street"
"30 Highland Road"
将 Microsoft Word 文档中的表导入 MATLAB 中的表。在本例中,文档包含两个表,第二个表包含合并的单元格。通过设置 TableIndex 名称-值参量读取第二个表。通过设置 MergedCellColumnRule 名称-值参量,跳过包含合并列的单元格的行。
filename = "MaintenanceReport.docx"; T = readtable(filename,TableIndex=2,MergedCellColumnRule="omitrow")
T=3×5 table
Description Category Urgency Resolution Cost
_____________________________________________________________________ ____________________ ________ __________________ ________
"Items are occasionally getting stuck in the scanner spools." "Mechanical Failure" "Medium" "Readjust Machine" "$45"
"Loud rattling and banging sounds are coming from assembler pistons." "Mechanical Failure" "Medium" "Readjust Machine" "$35"
"There are cuts to the power when starting the plant." "Electronic Failure" "High" "Full Replacement" "$16200"
您也可以使用 TableSelector 名称-值参量选择具有 XPath 选择器的表。要选择 Microsoft Word 文档中包含文本“Descriptio”的表,请使用 XPath 选择器 "//w:tbl[contains(.,'Description')]"。
T = readtable(filename, ... TableSelector="//w:tbl[contains(.,'Description')]", ... MergedCellColumnRule="omitrow")
T=3×5 table
Description Category Urgency Resolution Cost
_____________________________________________________________________ ____________________ ________ __________________ ________
"Items are occasionally getting stuck in the scanner spools." "Mechanical Failure" "Medium" "Readjust Machine" "$45"
"Loud rattling and banging sounds are coming from assembler pistons." "Mechanical Failure" "Medium" "Readjust Machine" "$35"
"There are cuts to the power when starting the plant." "Electronic Failure" "High" "Full Replacement" "$16200"
使用 XPath 选择器 "//TABLE[contains(.,'readtable')]" 从 URL https://www.mathworks.com/help/matlab/text-files.html 中导入第一个包含文本 "readtable" 的表。该表没有标题行,因此将 ReadVariableNames 名称-值参量设置为 false。
url = "https://www.mathworks.com/help/matlab/text-files.html"; T = readtable(url,TableSelector="//TABLE[contains(.,'readtable')]", ... ReadVariableNames=false)
T=4×2 table
"readtable" "Create table from file"
"writetable" "Write table to file"
"readtimetable" "Create timetable from file"
"writetimetable" "Write timetable to file"
输入参数
要读取的文件的名称,指定为字符串标量或字符向量。readtable 支持从文本、电子表格、JSON、XML、Microsoft Word 和 HTML 文件中读取数据。
如果 filename 不包含扩展名,请使用 FileType 名称-值参量来指示文件格式。默认情况下,readtable 会根据在输入文件的每列中检测到的数据值来创建具有适当数据类型的变量。
根据文件的位置,filename 可以采用下列形式之一。
位置 | 形式 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 当前文件夹或 MATLAB® 路径上的文件夹 | 指定 示例: | ||||||||
文件夹中的文件 | 如果该文件不在当前文件夹或 MATLAB 路径下的文件夹中,则在 示例: 示例: | ||||||||
| Internet URL | 如果文件指定为 Internet 统一资源定位器 (URL),则 示例: | ||||||||
远程位置 | 如果文件存储在远程位置,则
根据远程位置,
有关详细信息,请参阅处理远程数据。 示例: 示例: 示例: |
文本文件
扩展名为
.txt、.dat或.csv的文件读取为带分隔符的文本文件。默认情况下,
readtable为文件中的每列创建一个表变量,并从文件的第一行读取变量名称。对于数值变量,空字段转换为NaN,对于文本变量,则转换为空字符向量。文件中的空白被忽略。文本文件中的所有行必须有相同数量的分隔符。
有关常用的文本文件工作流,请参阅将数据从文本文件导入表。
电子表格文件
扩展名为
.xls、.xlsb、.xlsm、.xlsx、.xltm、.xltx或.ods的文件读取为电子表格文件。默认情况下,
readtable为文件中的每列创建一个表变量,并从文件的第一行读取变量名称。在安装了 Microsoft Excel 软件的 Windows® 系统上,
readtable能够读取您的 Excel 版本可识别的任何 Excel 电子表格文件格式。如果您的系统没有 Microsoft 版 Excel Windows 或者您正在使用 MATLAB Online™,则readtable在UseExcel名称-值参量设置为false的情况下运行,并且只读取具有.xls、.xlsm、.xlsx、.xltm和.xltx扩展名的文件。XLSX 格式的大文件有时会加载缓慢。为了获得更好的导入和导出性能,Microsoft 推荐您使用 XLSB 格式。
有关常用的电子表格文件工作流,请参阅将电子表格数据读入到表中。
JSON 文件
(自 R2026a 起)
扩展名为
.json的文件将作为 JavaScript 对象表示法 (JSON) 文件读取。默认情况下,
readtable为检测为表变量的每个对象键创建一个表变量。变量名称对应于 JSON 对象键名称。
XML 文件
扩展名为
.xml的文件读取为可扩展标记语言 (XML) 文件。默认情况下,
readtable为每个检测为表变量的元素或属性节点创建一个表变量。变量名称对应于元素和属性名称。
Microsoft Word 文档
(自 R2021b 起)
扩展名为
.docx的文件读取为 Microsoft Word 文件。默认情况下,
readtable从文档中的第一个表导入数据,为该文件中的每列创建一个表变量并从该表的第一行中读取变量名称。
HTML 文件
(自 R2021b 起)
扩展名为
.html、.xhtml或.htm的文件读取为超文本标记语言 (HTML) 文件。默认情况下,
readtable从第一个<table>元素导入数据,为该表中的每列创建一个表变量并从该表的第一行中读取变量名称。
压缩文件和存档文件
(自 R2025a 起)
压缩文件格式作为文件读取。
存档文件格式被视为文件夹。例如,函数将
mydatafiles.zip解释为文件夹,因此必须在其中指定一个文件,如mydatafiles.zip/file1.xlsx。对于以
.gz扩展名结尾的文件,函数通过使用.gz之前的扩展名来确定文件格式。例如,mydata.csv.gz作为 CSV 文件读取。
文件导入选项,指定为表中的导入选项对象之一,由 detectImportOptions 函数或关联的导入选项函数创建。导入选项对象包含配置数据导入过程的属性。readtable 仅使用每个导入选项对象的相关属性。
| 文件类型 | 导入选项对象 |
|---|---|
| 文本文件 | DelimitedTextImportOptions 对象 |
| 等宽文本文件 | FixedWidthImportOptions 对象 |
| 电子表格文件 | SpreadsheetImportOptions 对象 |
| JSON 文件 | JSONImportOptions 对象 |
| XML 文件 | XMLImportOptions 对象 |
| Microsoft Word 文档 | WordDocumentImportOptions 对象 |
| HTML 文件 | HTMLImportOptions 对象 |
有关如何控制导入的详细信息,请参阅Control How MATLAB Imports Your Data。
名称-值参数
将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
示例: readtable(filename,ReadVariableNames=false) 指定将文件的第一行作为数据而不是变量名称读取。
数据和标题位置
文件开头要跳过的标题行数,指定为非负整数。如果未指定此名称-值参量,readtable 会自动检测要跳过的行数。
变量名称和数据的读取从第一个非标题行开始。
readtable 先处理 NumHeaderLines 的值,然后处理 ReadVariableNames 的值。
数据类型: single | double
要从文件中读取的范围,指定为以下形式之一的字符串标量、字符向量或数值向量。
指定 Range 的方式 | 描述 |
|---|---|
起始元素 | 将数据的起始元素指定为以下值之一:
示例: 示例: |
矩形范围 | 将数据的矩形范围指定为以下值之一:
列数必须与 示例: 示例: |
行范围 | 使用行号以 根据指定的行范围, 示例: |
列范围 | 使用 A1 表示法的列字母以
列数必须与 示例: |
命名范围(仅限电子表格) | 您可以创建名称来标识电子表格中的范围。例如,您可以选择电子表格的一个矩形部分,并将其命名为 |
未指定或为空 | 如果未指定此名称-值参量, 注意:使用范围是指文件中实际包含数据的矩形部分。 |
数据的位置,指定为以下形式之一的字符串标量、字符向量、正整数或 N×2 正整数数组。
指定 DataRange 的方式 | 描述 |
|---|---|
起始单元格 | 使用 A1 表示法将数据的起始单元格指定为包含列字母和行号的字符串标量或字符向量。例如,
示例: |
起始行 | 使用正行索引指定包含数据的起始行。
示例: |
矩形范围 | 使用
示例: |
行范围 | 使用行号以 根据指定的行范围, 示例: |
列范围 | 使用 A1 表示法的列字母以
示例: |
多个行范围 | 使用包含 包含多个行范围的有效数组必须满足以下条件:
仅支持对数值数组中的最后一个行范围使用 示例: |
空 | 不读取任何数据。 示例: |
要读取的工作表,指定为正整数(指示工作表索引)或者指定为字符串标量或字符向量(包含工作表名称)。默认情况下,readtable 读取第一个工作表。
如果指定字符串标量或字符向量,则工作表名称不能包含冒号 (:)。要确定电子表格文件中工作表的名称,请使用 sheets = sheetnames(filename)。有关详细信息,请参阅 sheetnames。
如果除 opts 外您还指定了 Sheet,readtable 函数将使用为 Sheet 参量指定的值,而覆盖导入选项中定义的工作表名称。
示例: 2
示例: "MySheetName"
要从一个包含多个表的文件中读取的表的索引,指定为正整数。默认情况下,readtable 读取第一个表。
如果指定 TableIndex,readtable 函数会自动将 TableSelector 设置为等效的 XPath 表达式。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
要读取的表,指定为字符串标量或字符向量。如果未指定此名称-值参量,readtable 会检测表的位置。
JSON 文件
将要读取的表指定为包含 JSON 指针的字符串标量或字符向量。您必须将 TableSelector 指定为有效的 RFC 6901 JSON 指针。有关详细信息,请参阅 JSON 指针的 IETF 定义。
空字符串 ("") 表示整个 JSON 文件。
示例:TableSelector="/engineID"
XML、Microsoft Word 和 HTML 文件
将要读取的表指定为包含 XPath 表达式的字符串标量或字符向量。您必须将 TableSelector 指定为有效的 XPath 版本 1.0 表达式。
| 选取操作 | 语法 |
|---|---|
| 选择其名称与您要选择的节点匹配的每个节点,而无论它在文档中的位置如何。 | 在名称前加两个正斜杠 (//) 前缀。 |
| 选择属于元素节点的属性的值。 | 在属性前加 at 符号 (@) 前缀。 |
| 在一组节点中选择一个特定节点。 | 在方括号 ([]) 中提供要选择的节点的索引。 |
| 指定运算的优先级。 | 在要首先计算的表达式前后添加圆括号。 |
示例:TableSelector="//table[1]"
要读取的表数据的 JSON 键名称或 XML 节点名称,指定为字符串标量或字符向量。
跨列合并单元格的规则,指定为下表中的值之一。
| 导入规则 | 行为 |
|---|---|
"placeleft" | 将数据放在最左侧单元格中,并基于 您可以在要导入的变量的 |
"placeright" | 将数据放在最右侧单元格中,并基于 您可以在要导入的变量的 |
"duplicate" | 在所有单元格中复制数据。 |
"omitrow" | 忽略出现合并单元格的行。 |
"error" | 显示错误消息并取消导入操作。 |
跨行合并单元格的规则,指定为下表中的值之一。
| 导入规则 | 行为 |
|---|---|
"placetop" | 将数据放在顶部单元格中,并基于 您可以在要导入的变量的 |
"placebottom" | 将数据放在底部单元格中,并基于 您可以在要导入的变量的 |
"duplicate" | 在所有单元格中复制数据。 |
"omitvar" | 省略出现合并单元格的变量。 |
"error" | 显示错误消息并取消导入操作。 |
变量
读取变量名称,指定为数值或逻辑值 1 (true) 或 0 (false)。如果未指定此名称-值参量,readtable 会自动检测是否存在变量名称。
指示符 | 描述 |
|---|---|
| 读取变量名称。 如果您还指定导入选项对象 |
| 不读取变量名称。创建 如果您还指定导入选项对象 |
| 未指定 | 自动检测区域是否包含变量名称。 |
对于文本、电子表格、Microsoft Word 和 HTML 文件,会在标题行后检测变量名称。
对于 JSON 文件,从对象键名称中检测变量名称。对于 XML 文件,从元素节点和属性名称中检测变量名称。 (自 R2026a 起)
如果 ReadVariableNames 和 ReadRowNames 都为 true,则 readtable 将读取的区域第一行第一列中的名称保存为属性值 T.Properties.DimensionNames 中的第一个维度名称。
readtable 先处理 NumHeaderLines 的值,然后处理 ReadVariableNames 的值。
变量名称的规则,指定为以下值之一:
"modify"- 将无效变量名称(由isvarname函数确定)转换为有效的 MATLAB 标识符。此值是文本文件和电子表格文件的默认值。"preserve"- 保留作为无效 MATLAB 标识符的变量名称,如包含空白和非 ASCII 字符的变量名称。此值是 JSON、XML、Microsoft Word 和 HTML 文件的默认值。
变量名称和行名称可以不是有效的 MATLAB 标识符。它们可以包含任何字符,包括空格或非 ASCII 字符。此外,它们可以由任何字符(而不仅仅是字母)开头。
预期的变量数,指定为非负整数。如果未指定此名称-值参量,readtable 会自动检测变量数。
变量名称的位置,指定为非负整数。
如果 VariableNamesLine 为 0,则 readtable 不导入变量名称。否则,readtable 将从指定的行中导入变量名称。
如果存在变量名称,且 VariableNamesLine 和 ReadVariableNames 均未指定,则 readtable 检测哪一行包含变量名称并导入它们。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
变量名称的位置,指定为以下形式之一的字符串标量、字符向量或正整数。
指定 VariableNamesRange 的方式 | 描述 |
|---|---|
起始单元格 | 使用 A1 表示法将变量名称的起始单元格指定为包含列字母和行号的字符串标量或字符向量。 示例: |
矩形范围 | 使用 范围只能跨一行。 示例: |
数值索引 | 使用正行索引指定包含变量名称的行。 示例: |
行范围 | 使用 变量名称必须在一行中。 示例: |
未指定或为空 | 指示没有变量名称。 示例: |
数据类型: string | char | single | double
变量名称的位置,指定为非负整数。
如果 VariableNamesRow 为 0,则 readtable 不导入变量名称。否则,readtable 将从指定的行中导入变量名称。
如果未指定 VariableNamesRow,且 ReadVariableNames 为 true(默认值),则 readtable 导入变量名称。如果两者均未指定,则 readtable 检测是否有一行包含要导入的变量名称。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
要作为表变量读取的 JSON 键名和 XML 节点名称,指定为字符串数组或字符向量元胞数组。如果嵌套节点具有相同的名称,则 VariableNodeNames 选择位于顶层的节点。
示例: VariableNodeNames=["XMLNodeName1","XMLNodeName2"]
要读取的变量,指定为字符串数组、字符向量或字符向量元胞数组。如果未指定此名称-值参量,readtable 会检测变量的位置。
JSON 文件
(自 R2026a 起)
将要读取的变量指定为包含 JSON 指针的字符串数组、字符向量或字符向量元胞数组。您必须将 VariableSelectors 指定为有效的 RFC 6901 JSON 指针。有关详细信息,请参阅 JSON 指针的 IETF 定义。
VariableSelectors 值中的星号 (*) 表示选择该对应级别的整个数组。
要将键读取为变量,请在 VariableSelectors 中包含字符串 "Keys"。例如,VariableSelectors=["Keys" "/ID" "/Name/FirstName"]。
空字符串 ("") 表示整个 JSON 文件。
示例:VariableSelectors="/enginetemp"
示例:VariableSelectors=["/enginetemp1","/enginetemp2"]
XML 文件
将要读取的变量指定为包含 XPath 表达式的字符串数组、字符向量或字符向量元胞数组。您必须将 VariableSelectors 指定为有效的 XPath 版本 1.0 表达式。例如,假设您要导入 XML 文件 myFile.xml,该文件具有以下结构:
<data>
<table category="ones">
<var>1</var>
<var>2</var>
</table>
<table category="tens">
<var>10</var>
<var>20</var>
</table>
</data>
| 选取操作 | 语法 | 示例 |
|---|---|---|
| 选择其名称与您要选择的节点匹配的每个节点,而无论它在文档中的位置如何。 | 在名称前加两个正斜杠 (//) 前缀。 | 选择每个名为 T = readtable("myFile.xml",VariableSelectors="//var") |
| 选择属于元素节点的属性的值。 | 在属性前加 at 符号 (@) 前缀。 | 选择 T = readtable("myFile.xml",VariableSelectors="//table/@category") |
| 在一组节点中选择一个特定节点。 | 在方括号 ([]) 中提供要选择的节点的索引。 | 选择每个 T = readtable("myFile.xml",VariableSelectors="//table/var[1]") |
| 指定运算的优先级。 | 在要首先计算的表达式前后添加圆括号。 | 选择每个 T = readtable("myFile.xml",VariableSelectors="//table/var[1]") |
选择第一个 T = readtable("myFile.xml",VariableSelectors="(//table/var)[1]") |
串联数据,指定为数值或逻辑值 1 (true) 或 0 (false)。如果 CollectOutput 为 true,则 readtable 会将同一 MATLAB 基础类的连续输出元胞串联为单个数组。
行
读取第一列作为行名称,指定为数值或逻辑值 1 (true) 或 0 (false)。
值 | 描述 |
|---|---|
| 从要读取的区域的第一列读取行名称。 如果您还指定导入选项对象 |
| 从区域的第一列读取数据并且不创建行名称。 |
如果 ReadVariableNames 和 ReadRowNames 都为 true,则 readtable 将读取的区域第一行第一列中的名称保存为属性 T.Properties.DimensionNames 中的第一个维度名称。
行名称的位置,指定为非负整数。
如果 RowNamesColumn 为 0,则 readtable 不导入行名称。否则,readtable 从指定列导入行名称。
如果未指定 RowNamesColumn,且 ReadRowNames 为 true,则 readtable 将第一列作为行名称导入。
行名称的位置,指定为以下形式之一的字符串标量、字符向量或正整数。
指定 RowNamesRange 的方式 | 描述 |
|---|---|
起始单元格 | 使用 A1 表示法将行名称的起始单元格指定为包含列字母和行号的字符串标量或字符向量。 从起始单元格开始, 示例: |
矩形范围 | 使用 行数必须与数据行的数量匹配,并且范围只能跨一列。 示例: |
列范围 | 使用 行名称必须在单独一列中。 示例: |
数值索引 | 使用正列索引指定包含行名称的列。 示例: |
未指定或为空 | 指示没有行名称。 示例: |
数据类型: string | char | single | double
行名称,指定为字符串标量或字符向量。如果未指定此名称-值参量,readtable 不会导入行名称,除非 ReadRowNames 为 true。
JSON 文件
(自 R2026a 起)
将行名称指定为包含 JSON 指针的字符串标量或字符向量。您必须将 RowNamesSelector 指定为有效的 RFC 6901 JSON 指针。有关详细信息,请参阅 JSON 指针的 IETF 定义。
示例:RowNamesSelector="/engineID"
XML 文件
将行名称指定为包含 XPath 表达式的字符串标量或字符向量。您必须将 RowNamesSelector 指定为有效的 XPath 版本 1.0 表达式。
示例:RowNamesSelector="/RootNode/ChildNode"
用于从表中选择各行的 XPath 表达式,指定为字符串标量或字符向量。您必须将 RowSelector 指定为有效的 XPath 版本 1.0 表达式。
如果未指定此名称-值参量,readtable 会检测行的位置。
示例: "/RootNode/ChildNode"
指定行的 XML 节点,指定为字符串标量或字符向量。
数据类型
导入文本数据的类型,指定为以下值之一:
"char"- 将文本数据作为字符向量导入。此值是文本文件和电子表格文件的默认值。"string"- 将文本数据作为字符串数组导入。此值是 JSON、XML、Microsoft Word 和 HTML 文件的默认值。
导入的日期和时间数据的类型,指定为下表中的值之一。
| 值 | 生成的数据类型 |
|---|---|
"datetime" | MATLAB |
"text" | 数据类型取决于
|
"exceldatenum" | Excel 序列日期值 此值仅对电子表格文件有效。 序列日期值是一个数字,它等于从给定的参照日期开始计算的天数。Excel 序列日期值与 MATLAB 序列日期值使用不同的参照日期。有关 Excel 日期的详细信息,请参阅 Excel 中的 1900 和 1904 日期系统之间的差异。 |
导入的持续时间数据的类型,指定为下表中的值之一。
| 值 | 生成的数据类型 |
|---|---|
"duration" | MATLAB |
"text" | 数据类型取决于
|
导入的十六进制数据的类型,指定为下表中的值之一。
值 | 生成的数据类型 |
|---|---|
| 检测到的数据类型; |
| 未更改的输入文本 |
| 8 位有符号整数 |
| 16 位有符号整数 |
| 32 位有符号整数 |
| 64 位有符号整数 |
| 8 位无符号整数 |
| 16 位无符号整数 |
| 32 位无符号整数 |
| 64 位无符号整数 |
输入文件能够以文本形式表示十六进制值,使用 0x 或 0X 作为前缀,以字符 0-9、a-f 和 A-F 作为数字。大写和小写字母表示相同的数字 - 例如,"0xf" 和 "0xF" 都表示 15。
导入的二进制数据的类型,指定为下表中的值之一。
值 | 生成的数据类型 |
|---|---|
| 检测到的数据类型; |
| 未更改的输入文本 |
| 8 位有符号整数 |
| 16 位有符号整数 |
| 32 位有符号整数 |
| 64 位有符号整数 |
| 8 位无符号整数 |
| 16 位无符号整数 |
| 32 位无符号整数 |
| 64 位无符号整数 |
输入文件能够以文本形式表示二进制值,使用 0b 或 0B 作为前缀,以字符 0 和 1 作为数字。例如,0b11111111 表示 255。
用于读取日期的区域设置,指定为字符串标量或 形式的字符向量,其中:xx_YY
xx是指示语言的小写 ISO 639-1 双字母代码。YY是指示国家/地区的大写 ISO 3166-1 alpha-2 代码。
使用 DateLocale 指定 readtable 解释月份和星期几的名称及缩写所用的区域设置。
下表列出了区域设置的某些常用值。
| 区域设置 | 语言 | 国家/地区 |
|---|---|---|
"de_DE" | 德语 | 德国 |
"en_GB" | 英语 | 英国 |
"en_US" | 英语 | 美国 |
"es_ES" | 西班牙语 | 西班牙 |
"fr_FR" | 法语 | 法国 |
"it_IT" | 意大利语 | 意大利 |
"ja_JP" | 日语 | 日本 |
"ko_KR" | 韩语 | 韩国 |
"nl_NL" | 荷兰 | 荷兰 |
"zh_CN" | 简体中文 | 中国 |
如果除导入选项对象 opts 外您还指定了 DateLocale 参量,则参量值会覆盖在导入选项中定义的区域设置。
是否从数值变量中删除非数值字符,指定为数值或逻辑值 1 (true) 或 0 (false)。例如,如果 TrimNonNumeric 是 true,则 readtable 将 "$500/-" 读取为 500。
数值变量中的小数分隔符,指定为字符串标量或单字符字符向量。分隔符用于区分数值的整数部分和小数部分。例如,如果分隔符是 ",",则 readtable 将文本 "3,14159" 作为数值 3.14159 导入。
当转换为整数数据类型时,readtable 将具有小数部分的数值舍入到最接近的整数。DecimalSeparator 不接受数字作为值。
数值变量中的千分位字符,指定为字符串标量或字符向量。千分位字符作为视觉分隔符,用于每隔三位对数值进行分组。例如,如果千分位字符是 ",",则 readtable 将文本 "1,234,000" 作为 1234000 导入。
指数字符,指定为字符串标量或字符向量。默认的指数字符为 e、E、d 和 D。
示例: "eE"
数据清洗
视为缺失值的占位符文本,指定为字符串数组、字符向量或字符向量元胞数组。readtable 将此占位符文本对应的表元素作为与元素数据类型关联的缺失值导入。
示例: "N/A"
示例: [".","NA","N/A"]
导入错误的规则,指定为下表中的值之一。当 readtable 无法将文本元素转换为预期的数据类型时,会发生导入错误。
| 导入错误规则 | 行为 |
|---|---|
"fill" | 用 您可以在要导入的变量的 |
"error" | 显示错误消息并取消导入操作。 |
"omitrow" | 忽略发生错误的行。 |
"omitvar" | 忽略发生错误的变量。 |
缺失数据的规则,指定为下表中的值之一。
| 缺失规则 | 行为 |
|---|---|
"fill" | 用 您可以在要导入的变量的 |
"error" | 显示错误消息并取消导入操作。 |
"omitrow" | 忽略包含缺失数据的行。 |
"omitvar" | 忽略包含缺失数据的变量。 |
对于文本文件、Microsoft Word 文件和 HTML 文件,如果行中不存在预期字段,则认为数据缺失。由于缺失字段会导致行的后续元素移动字段,因此缺失的字段在行的末尾解释。
对于电子表格文件,如果行中的预期字段没有数据,并且字段类型为空白或空,则被视为数据缺失。
对于 JSON 和 XML 文件,如果预期的节点不存在,则认为数据缺失。
数据中附加列的规则,指定为下表中的值之一。如果一行的列数多于预期,则 readtable 认为存在附加列。
| 附加列规则 | 行为 |
|---|---|
"addvars" | 要导入附加列,需要创建新变量。如果有
|
"ignore" | 忽略附加列数据。 |
"wrap" | 将附加列数据换行到新记录中。此操作不会更改变量的数量。 |
"error" | 显示错误消息并取消导入操作。 |
带分隔符的文本文件中空数值字段的返回值,指定为 NaN 或数值标量。
示例: 0
数据中空行的规则,指定为下表中的值之一。如果一行仅包含空白字符,则 readtable 认为它是空行。
| 空行规则 | 行为 |
|---|---|
"skip" | 跳过空行。 |
"read" | 导入空行。readtable 使用 VariableWidths、VariableOptions、MissingRule 中指定的值及其他相关参量(如 Whitespace)来解析空行。 |
"error" | 显示错误消息并取消导入操作。 |
数据中空行的规则,指定为下表中的值之一。
| 空行规则 | 行为 |
|---|---|
"skip" | 跳过空行。 |
"read" | 导入空行。readtable 使用 VariableWidths、VariableOptions、MissingRule 和其他相关参量(如 Whitespace)中指定的值解析空行。 |
"error" | 显示错误消息并取消导入操作。 |
数据中空列的规则,指定为下表中的值之一。
| 空列规则 | 行为 |
|---|---|
"skip" | 跳过空列。 |
"read" | 导入空列。readtable 使用 VariableWidths、VariableOptions、MissingRule 和其他相关参量(如 Whitespace)中指定的值解析空列。 |
"error" | 显示错误消息并取消导入操作。 |
数据中部分字段的规则,指定为下表中的值之一。如果一个字段到达行尾的字符数少于预期宽度,则 readtable 认为该字段为部分填充。此名称-值参量仅适用于具有固定宽度的字段。
| 不完整字段规则 | 行为 |
|---|---|
"keep" | 保留不完整字段数据并将文本转换为正确的数据类型。 如果 |
"fill" | 用 您可以在要导入的变量的 |
"omitrow" | 忽略包含不完整数据的行。 |
"omitvar" | 忽略包含不完整数据的变量。 |
"wrap" | 开始读取下一行字符。 |
"error" | 显示错误消息并取消导入操作。 |
文件信息
文件的类型,指定为此表中的一个值。
| 值 | 文件类型 |
|---|---|
"spreadsheet" | 电子表格文件 |
"text" | 文本文件 |
"delimitedtext" | 带分隔符的文本文件 |
"fixedwidth" | 等宽文本文件 |
"json" | JSON 文件 |
"xml" | XML 文件 |
"worddocument" | Microsoft Word 文档 |
"html" | HTML 文件 |
当 filename 不包含文件扩展名或其扩展名不在此列表中时,指定此名称-值参量:
.txt、.dat或.csv(文本文件).xls、.xlsb、.xlsm、.xlsx、.xltm、.xltx或.ods(电子表格文件).json(JSON 文件).xml(适用于 XML 文件).docx(Microsoft Word 文档).html、.xhtml或.htm(HTML 文件)
与文件关联的字符编码方案,指定为 "system" 或标准字符编码方案名称。如果您没有指定任何编码,则 readtable 函数在读取文件时将使用自动字符集检测来确定编码。
如果除导入选项对象 opts 外您还指定了 Encoding 参量,则参量值会覆盖在导入选项中定义的编码。
读取电子表格数据时是否启动适用于 Windows 的 Microsoft Excel 实例,指定为数值或逻辑值 1 (true) 或 0 (false)。
基于此参量,readtable 支持不同文件格式和交互式功能,如公式和宏。
支持 | 如果 | 如果 |
|---|---|---|
| 支持的文件格式 |
|
|
支持交互功能,例如公式和宏 | 是 | 否 |
UseExcel 在非交互式自动化环境中不受支持。
自 R2022a 起
HTTP 或 HTTPS 请求选项,指定为 weboptions 对象。当指定的 filename 是包含协议类型 "http://" 或 "https://" 的 Internet URL 时,由 weboptions 对象确定如何导入数据。
文本解析
字段分隔符,指定为字符串数组、字符向量或字符向量元胞数组。将 Delimiter 指定为任何有效字符(如逗号 "," 或句点 ".")。
下表列出了一些常用的字段分隔符。
设定符 | 字段分隔符 |
|---|---|
| 逗号 |
| 空格 |
| 制表符 |
| 分号 |
| 垂直条 |
| 未指定 | 如果未指定此名称-值参量, |
要将多个字符视为单个分隔符,请将 Delimiter 指定为字符串数组或字符向量元胞数组。如果要将未知数量的连续分隔符视为一个分隔符,请指定 ConsecutiveDelimitersRule="join"。
Delimiter 仅对带分隔符的文本文件有效,而对等宽文本文件无效。
行尾字符,指定为字符串数组、字符向量或字符向量元胞数组。常见的行尾字符包括换行符 ("\n") 和回车符 ("\r")。如果指定 "\r\n",则 readtable 会将两者的组合 (\r\n) 视为行尾字符。如果指定 {"\r\n", "\r", "\n"},则 \r、\n 和 \r\n 都被视为行尾字符。
默认的行尾序列是 \n、\r 或 \r\n,具体取决于您的文件的内容。
视为空白的字符,指定为包含一个或多个字符的字符串标量或字符向量。
下表显示如何表示无法使用普通文本输入的特殊字符。
特殊字符 | 表示形式 |
|---|---|
百分号 |
|
反斜杠 |
|
警报 |
|
退格符 |
|
换页符 |
|
换行符 |
|
回车符 |
|
水平制表符 |
|
垂直制表符 |
|
其 Unicode® 数值可以通过十六进制数 |
|
其 Unicode 数值可以通过八进制数 |
|
示例: " _"
示例: "?!.,"
要忽略的文本的注释指示符,指定为字符串数组、字符向量或字符向量元胞数组。
例如,指定一个字符(如 "%")以忽略同一行上该字符后面的文本。指定字符串数组(如 ["/*","*/"])以忽略序列之间的任何文本。
readtable 仅在每行的开头(而不是在行内)检查注释。
示例: ["/*","*/"]
带分隔符的文本文件中的前导分隔符的规则,指定为下表中的值之一。
| 规则 | 行为 |
|---|---|
"keep" | 保留分隔符。 |
"ignore" | 忽略分隔符。 |
"error" | 显示错误消息并取消导入操作。 |
带分隔符的文本文件中的尾部分隔符的规则,指定为下表中的值之一。
| 规则 | 行为 |
|---|---|
"keep" | 保留分隔符。 |
"ignore" | 忽略分隔符。 |
"error" | 显示错误消息并取消导入操作。 |
带分隔符的文本文件中的连续分隔符的规则,指定为下表中的值之一。
| 规则 | 行为 |
|---|---|
"split" | 将连续分隔符拆分为多个字段。 |
"join" | 将多个分隔符合并成一个分隔符。 |
"error" | 显示错误消息并取消导入操作。 |
是否将多个分隔符视为一个分隔符,指定为数值或逻辑值 1 (true) 或 0 (false)。
等宽文本文件中变量的字段宽度,指定为正整数向量。每个整数对应于一个字段中构成变量的字符数。
示例: [10,7,4,26,7]
文件的列格式,指定为字符串标量或包含一个或多个转换设定符的字符向量,或 "auto"。转换设定符与 textscan 函数接受的设定符相同。
指定该格式可以显著加快一些大文件的导入速度。
如果您没有指定 Format,则 readtable 的行为就像您使用了 detectImportOptions 函数的结果来导入数据一样。有关此行为导致的后果的详细信息,请参阅 R2020a 版本历史记录说明。
如果您将 Format 设置为 "auto",则创建的变量是 double 数组、字符向量元胞数组或 datetime 数组,具体取决于数据。如果整列都是数值,则生成的变量为 double 类型。如果一列中有任一元素不是数值,则生成的变量为字符向量元胞数组,或为 datetime 数组(如果值表示日期和时间)。
JSON 和 XML 解析
自 R2026a 起
解析时如何遵守 JSON 标准的严格,指定为以下值之一:
"lenient"- 将AllowComments,AllowInfAndNaN和AllowTrailingCommas的值设置为true。"strict"- 将AllowComments,AllowInfAndNaN和AllowTrailingCommas的值设置为false。
自 R2026a 起
允许输入文件中的注释,指定为以下值之一:
数值或逻辑值
1(true) - 注释在导入过程中不会导致错误。文件中的注释不被视为数据,不会读入 MATLAB。对于单行注释,注释可以“//”开头;对于多行注释,注释可以“/*”开头,以“*/”结尾。数值或逻辑值
0(false) - 注释会在导入过程中导致错误。
自 R2026a 起
读取输入文件中的 Inf 和 NaN 值,指定为以下值之一:
数值或逻辑值
1(true) -Inf和NaN值(包括Infinity、-Inf和-Infinity)会读入 MATLAB 中。数值或逻辑值
0(false) -Inf和NaN值在导入过程中会导致错误。
自 R2026a 起
读取输入文件中的尾部逗号,指定为以下值之一:
数值或逻辑值
1(true) - JSON 数组或 JSON 对象后的尾部逗号不会在导入过程中导致错误。数值或逻辑值
0(false) - 尾部逗号会在导入过程中导致错误。
表的给定行中的重复 JSON (自 R2026a 起) 或 XML 节点的规则,指定为下表中的值之一。对于 JSON 文件,当 VariableSelectors 名称-值参量包含指向数组的 JSON 指针时,此规则适用。数组项被视为重复节点。
规则 | 行为 |
|---|---|
"addcol" | 为变量中的每个重复节点添加列以在关联变量中创建一个矩阵。 例如: 输入 XML 数据 <table>
<row>
<Var1>1</Var1>
<Var2>2</Var2>
<Var3>3</Var3>
<Var1>11</Var1>
<Var1>111</Var1>
</row>
<row>
<Var1>4</Var1>
<Var2>5</Var2>
<Var3>6</Var3>
</row>
<row>
<Var1>7</Var1>
<Var2>8</Var2>
<Var3>9</Var3>
</row>
</table>输出表 Var1 Var2 Var3
_______________ ____ ____
1 11 111 2 3
4 NaN NaN 5 6
7 NaN NaN 8 9 |
"ignore" | 跳过重复节点。 |
"error" | 显示错误消息并取消导入操作。 |
是否将 XML 属性作为变量导入输出表中,指定为数值或逻辑值 1 (true) 或 0 (false)。默认情况下,readtable 将 XML 属性作为变量导入输出表中。
用于区分输出表中属性和元素的后缀,指定为字符串标量或字符向量。此参量指定 readtable 追加到与输入 XML 文件中的属性对应的所有表变量的后缀。如果未指定 AttributeSuffix,则 readtable 将后缀 "Attribute" 追加到与输入 XML 文件中的属性对应的所有变量名称。
示例: "_att"
注册的 XML 命名空间前缀集,指定为由前缀及其关联 URL 组成的 N×2 字符串数组。readtable 在计算 XML 文件中的 XPath 表达式时使用这些前缀。
当您还计算由选择器名称-值参量(如 VariableSelectors)指定的 XPath 表达式时,可以使用 RegisteredNamespaces。
默认情况下,readtable 自动检测用于 XPath 计算的命名空间前缀。要选择具有未声明的命名空间前缀的 XML 节点,请使用 RegisteredNamespaces 名称-值参量为命名空间前缀注册自定义命名空间 URL。例如,在不包含命名空间前缀的 XML 文件中将前缀 myprefix 分配给 URL https://www.mathworks.com。
T = readtable(filename,VariableSelectors="/myprefix:Data", ... RegisteredNamespaces=["myprefix","https://www.mathworks.com"])
变量元数据
变量单位的位置,指定为非负整数。
如果 VariableUnitsLine 是 0,则 readtable 不导入变量单位。否则,readtable 将从指定的行中导入变量单位。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
变量单位的位置,指定为以下形式之一的字符串标量、字符向量或正整数。
指定 VariableUnitsRange 的方式 | 描述 |
|---|---|
起始单元格 | 使用 A1 表示法将变量单位的起始单元格指定为包含列字母和行号的字符串标量或字符向量。 从起始单元格开始, 示例: |
矩形范围 | 使用 范围只能跨一行。 示例: |
数值索引 | 使用正行索引指定包含变量单位的行。 示例: |
行范围 | 使用 变量单位必须在一行中。 示例: |
未指定或为空 | 指示没有变量单位。 示例: |
数据类型: string | char | single | double
变量单位的位置,指定为非负整数。
如果 VariableUnitsRow 是 0,则 readtable 不导入变量单位。否则,readtable 将从指定的行中导入变量单位。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
变量单位,指定为字符串标量或字符向量。如果未指定此名称-值参量,readtable 不导入变量单位。
JSON 文件
(自 R2026a 起)
将变量单位指定为包含 JSON 指针的字符串标量或字符向量。您必须将 VariableUnitsSelector 指定为有效的 RFC 6901 JSON 指针。有关详细信息,请参阅 JSON 指针的 IETF 定义。
示例:VariableUnitsSelector="/statuses/metadata/units"
XML 文件
将变量单位指定为包含 XPath 表达式的字符串标量或字符向量。您必须将 VariableUnitsSelector 指定为有效的 XPath 版本 1.0 表达式。
示例:VariableUnitsSelector="/RootNode/ChildNode"
示例:VariableUnitsSelector="//table[1]/units/"
变量描述的位置,指定为非负整数。
如果 VariableDescriptionsLine 是 0,则 readtable 不导入变量描述。否则,readtable 将从指定的行中导入变量描述。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
变量描述的位置,指定为以下形式之一的字符串标量、字符向量或正整数。
指定 VariableDescriptionsRange 的方式 | 描述 |
|---|---|
起始单元格 | 使用 A1 表示法将变量描述的起始单元格指定为包含列字母和行号的字符串标量或字符向量。 从起始单元格开始, 示例: |
矩形范围 | 使用 范围只能跨一行。 示例: |
行范围 | 使用 变量描述必须在一行中。 示例: |
数值索引 | 使用正行索引指定包含描述的行。 示例: |
未指定或为空 | 指示没有变量描述。 示例: |
数据类型: string | char | single | double
变量描述的位置,指定为非负整数。
如果 VariableDescriptionsRow 是 0,则 readtable 不导入变量描述。否则,readtable 将从指定的行中导入变量描述。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
变量描述,指定为字符串标量或字符向量。如果未指定此名称-值参量,readtable 不导入变量描述。
JSON 文件
(自 R2026a 起)
将变量描述指定为包含 JSON 指针的字符串标量或字符向量。您必须将 VariableDescriptionsSelector 指定为有效的 RFC 6901 JSON 指针。有关详细信息,请参阅 JSON 指针的 IETF 定义。
示例:VariableDescriptionsSelector="/statuses/metadata"
XML 文件
将变量描述指定为包含 XPath 表达式的字符串标量或字符向量。您必须将 VariableDescriptionsSelector 指定为有效的 XPath 版本 1.0 表达式。
示例:VariableDescriptionsSelector="/RootNode/RowNode/@Name"
示例:VariableDescriptionsSelector="//table[1]/descriptions/*"
扩展功能
readtable 函数支持基于线程的环境,但有以下用法说明和限制:
基于线程的环境支持文本文件和电子表格文件工作流。
版本历史记录
在 R2013b 中推出以表的形式读取 JSON 数据。指定可选的名称-值参量以控制导入行为。例如,如果您想要在导入过程中输入 JSON 文件中的注释导致错误,请将 AllowComments 设置为 false。
您可以将压缩和存档文件中的数据作为表读取。
从电子表格导入数据时,您可以使用 MergedCellRowRule 和 MergedCellColumnRule 名称-值参量来指定 readtable 如何导入跨行和列合并的单元格。
要自定义 HTML 和 Microsoft Word 文件的导入选项,请分别使用 htmlImportOptions 和 wordDocumentImportOptions。要自动检测文件中的导入选项,请使用 detectImportOptions 函数。
将 XML 数据作为表读取,并使用可选的名称-值参量控制导入行为。例如,将 ImportAttributes 设置为 false 以忽略属性节点。
此外,您还可以从 Internet URL 读取所有支持的文件类型。将文件名指定为包含协议类型 http:// 或 https:// 的字符串。
不推荐使用 PreserveVariableNames 参量。请改用 VariableNamingRule。指定下列值之一:
'preserve'保留变量名称中的空格和非 ASCII 字符。从 R2019b 开始,表支持包含这些字符的变量名称。'modify'将具有空格和非 ASCII 字符的文本转换为有效的 MATLAB 标识符。
目前没有停止支持 PreserveVariableNames 的计划。
默认情况下,readtable 函数使用 detectImportOptions 函数的结果来导入表格数据。本质上,这两个函数的调用行为相同。
T = readtable(filename) T = readtable(filename,detectImportOptions(filename))
此更改会导致几个行为差异。
输入的描述 | 新默认行为 | 以前的默认行为 |
|---|---|---|
第一行不包含作为输出表变量名称指定的文本。 | 将名称 | 将第一行数据值转换为输出表变量的名称。 |
多行文本作为标题行 |
|
|
空字段 | 视为检测到的数据类型的缺失值。 | 视为空字符向量或字符串。 |
引号中的值 | 视为检测到的数据类型。 | 视为文本。 |
无法转换的文本 | 视为检测到的数据类型的缺失值。 | 视为文本。 |
数值字符后跟非数值字符,两者之间没有分隔符。 | 将字符视为非数值。 | 将数值字符和非数值字符视作由分隔符隔开。 |
输入文本文件的行具有不同数量的分隔符。 | 返回具有额外变量的输出表。 | 显示错误消息。 |
要还原以前的行为,请将 Format 设置为 "auto"。
T = readtable(filename,Format="auto")
现在,以字符 '0x' 为前缀的文本被视为十六进制数据,以 '0b' 为前缀的文本被视为二进制数据。
此外,在读取文本数据时,readtable 现在使用自动字符集检测。
在安装了 Excel 的 Windows 系统上,UseExcel 的默认设置是 false。要保留以前的行为,请将 UseExcel 设置为 true。
T = readtable(filename,UseExcel=true)
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)