readtable
基于文件创建表
说明
通过从文件中读取列向数据来创建表。T
= readtable(filename
)
readtable
基于文件的扩展名确定文件格式:
.txt
、.dat
或.csv
(带分隔符的文本文件).xls
、.xlsb
、.xlsm
、.xlsx
、.xltm
、.xltx
或.ods
(电子表格文件).xml
(可扩展标记语言 (XML) 文件).docx
(Microsoft® Word 文档文件).html
、.xhtml
或.htm
(超文本标记语言 (HTML) 文件)
对于文本和电子表格文件,readtable
为该文件中的每列在 T
中创建一个变量并从文件的第一行中读取变量名称。对于 XML 文件,readtable
在 T
中为检测为表变量的每个元素或属性节点创建一个变量。变量名称对应于元素和属性名称。对于 Microsoft Word 文档文件,默认情况下 readtable
从文档中的第一个表导入数据,为该文件中的每列在 T
中创建一个变量并从该表的第一行中读取变量名称。对于 HTML 文件,默认情况下 readtable
从第一个 <TABLE>
元素导入数据,为该文件中的每列在 T
中创建一个变量并从该表的第一行中读取变量名称。
默认情况下,readtable
会根据在输入文件的每列中检测到的数据值来创建具有适当数据类型的变量。
基于文件创建一个表,并通过一个或多个名称-值对组参数指定其他选项。例如,您可以指定 T
= readtable(___,Name,Value
)readtable
是将文件的第一行读取为变量名称还是数据。
要为数据设置特定的导入选项,您可以使用 opts
对象,也可以指定名称-值对组。当您指定除 opts
之外的名称-值对组时,readtable
仅支持下列名称-值对组:
文本和电子表格参数 -
ReadVariableNames
、ReadRowNames
仅文本参数 -
DateLocale
、Encoding
仅电子表格参数 -
Sheet
、UseExcel
示例
基于文本文件创建表
加载文件 myCsvTable.dat
并在文本编辑器中预览其内容。屏幕截图如下所示。请注意,该文件包含逗号分隔的列向数据。
filename = 'myCsvTable.dat';
基于逗号分隔的文本文件创建表。生成的表 T
为文件中的每一列包含一个变量,readtable
将文件第一行中的项视为变量名称。
T = readtable(filename)
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
忽略标题并填充缺失值
从 R2020a 开始,readtable
函数读取输入文件的方式就好像它自动对该文件调用 detectImportOptions
函数一样。它可以检测数据类型,丢弃多余的标题行,并填充缺失值。
例如,在文本编辑器中预览文件 headersAndMissing.txt
。该文件有一个列名行,还有一个标题行。最后两行有空缺,前面的各行包含数据值。
基于该文件创建一个表。readtable
函数将丢弃标题。此外,它还用适当的缺失值来填补空缺 - 对于数值变量,用 NaN
值;对于文本,用空字符向量。
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' } {0x0 char} NaN 64 119 0
要还原以前的版本的默认行为,请指定 'Format','auto'
名称-值对组参数。readtable
会将标题作为数据读取,因此,它会将所有表变量均转换为文本。
T = readtable('headersAndMissing.txt','Format','auto')
T=6×6 table
LastName Gender Age Height Weight Smoker
___________ __________ __________ _______ _______ ___________
{'string' } {'string'} {'int' } {'int'} {'int'} {'boolean'}
{'Wu' } {'M' } {'38' } {'71' } {'176'} {'1' }
{'Johnson'} {'M' } {'43' } {'69' } {'163'} {'0' }
{'Sanchez'} {'F' } {'38' } {'64' } {'131'} {'0' }
{'Brown' } {'F' } {0x0 char} {'67' } {'133'} {'0' }
{'Picard' } {0x0 char} {0x0 char} {'64' } {'119'} {'0' }
有关详细信息,请参阅本页的“兼容性注意事项”部分。
基于文本文件创建表,无列标题
在文本编辑器中预览文件 mySpaceDelimTable.txt
。屏幕截图如下所示。请注意,该文件包含空格分隔的列向数据。
基于以空格分隔的文本文件创建一个表。由于文件的第一行不包含可检测到的列名称,因此 readtable
函数将分配默认的变量名称 Var1
到 Var5
。
T = readtable('mySpaceDelimTable.txt')
T=3×5 table
Var1 Var2 Var3 Var4 Var5
_____ ____ ____ ______ _________
{'M'} 45 45 {'NY'} {'true' }
{'F'} 41 32 {'CA'} {'false'}
{'M'} 40 34 {'MA'} {'false'}
基于文本文件创建格式表
加载文件 myCsvTable.dat
并在文本编辑器中预览其内容。屏幕截图如下所示。请注意,该文件包含逗号分隔的列向数据。
filename = 'myCsvTable.dat';
基于逗号分隔的文本文件创建表。将前两列导入为字符向量,将第三列导入为 uint32
,将接下来的两列导入为双精度浮点数。将最后一列的条目导入为字符向量。
T = readtable(filename,'Format','%s%s%u%f%f%s')
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'}
对于字符向量元胞数组,转换设定符为 %s
,对于 double
,转换设定符为 %f
,对于 uint32
,转换设定符为 %u
。
从文本文件读取外语日期
从文件读取以德语表示的日期,再用以英语表示的日期形式,将其添加到一个表中。
在文本编辑器中预览文件 german_dates.txt
。屏幕截图如下所示。请注意,第一列值包含德语的日期,第二列和第三列是数值。
使用 readtable
读取示例文件。对于日期,转换设定符为 %D
,对于浮点值,转换设定符为 %f
。使用 FileEncoding
名称-值对组参数指定文件编码。使用 DateLocale
名称-值对组参数指定日期格式和区域设置。
T = readtable('german_dates.txt',... 'Format','%{dd MMMM yyyy}D %f %f',... 'FileEncoding','ISO-8859-15',... 'DateLocale','de_DE')
T=3×3 table
Var1 Var2 Var3
________________ ____ _____
01 January 2014 20.2 100.5
01 February 2014 21.6 102.7
01 March 2014 20.7 99.8
基于包含行名称的电子表格创建表
基于包含第一行的变量名称和第一列的行名称的电子表格创建表。
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
查看该表的 DimensionNames
属性。
T.Properties.DimensionNames
ans = 1x2 cell
{'LastName'} {'Variables'}
'LastName'
是电子表格第一行第一列中的名称。
从电子表格中读取特定范围的数据
使用电子表格 patients.xls
的指定区域中的数据创建表。使用 C2
和 E6
两个对角之间的 5×3 矩形区域内的数据。不要将该区域的第一行用作变量名称。
T = readtable('patients.xls',... 'Range','C2:E6',... 'ReadVariableNames',false)
T = Var1 Var2 Var3 ____ ___________________________ ____ 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
T
包含默认的变量名称。
检测并使用针对文本文件的导入选项
创建导入选项,定制多个变量的数据类型,然后读取数据。
根据文本文件创建导入选项对象。
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
检查变量 TaxiIn
和 TaxiOut
的 Type
属性。
getvaropts(opts,{'TaxiIn','TaxiOut'})
ans = 1x2 TextVariableImportOptions array with properties: Name Type FillValue TreatAsMissing QuoteRule Prefixes Suffixes EmptyFieldRule WhitespaceRule
将变量 TaxiIn
和 TaxiOut
的类型更改为 double
。
opts = setvartype(opts,{'TaxiIn','TaxiOut'},'double');
指定要导入和检查的变量的子集。
opts.SelectedVariableNames = {'TaxiIn','TaxiOut'};
使用 readtable
函数以及选项对象导入选定的变量。显示表的摘要。
T = readtable('airlinesmall.csv',opts);
summary(T)
Variables: TaxiIn: 123523x1 double Values: Min 0 Median 5 Max 1451 NumMissing 37383 TaxiOut: 123523x1 double Values: Min 0 Median 13 Max 755 NumMissing 37364
检测并使用针对电子表格文件的导入选项
检测针对电子表格文件的导入选项,指定要导入的变量,然后读取数据。
根据文件创建导入选项对象。
opts = detectImportOptions('patients.xls')
opts = SpreadsheetImportOptions with properties: Sheet Properties: Sheet: '' Replacement Properties: MissingRule: 'fill' ImportErrorRule: 'fill' 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
修改选项对象以指定要导入的变量。
opts.SelectedVariableNames = {'Systolic','Diastolic'};
使用 readtable
以及选项对象导入指定的变量。
T = readtable('patients.xls',opts);
summary(T)
Variables: Systolic: 100x1 double Values: Min 109 Median 122 Max 138 Diastolic: 100x1 double Values: Min 68 Median 81.5 Max 99
读取包含任意变量名称的表格数据
您可以读取表格数据,同时保留包含任何字符的变量名称,包括空格和非 ASCII 字符。首先,创建一个具有任意变量名称的表,并将该表写入文本文件。然后,读回表格数据,同时保留原始变量名称。
创建包含任意变量名称的表,并将表格数据写入文件 'sampletable.txt'
。
LastName = {'Sanchez';'Johnson';'Li';'Diaz';'Brown'}; Age = [38;43;38;40;49]; Smoker = logical([1;0;1;0;1]); varNames = {'Last Name','Age','Smoker (1 or 0)'}; T = table(LastName,Age,Smoker,'VariableNames',varNames)
T=5×3 table
Last Name Age Smoker (1 or 0)
___________ ___ _______________
{'Sanchez'} 38 true
{'Johnson'} 43 false
{'Li' } 38 true
{'Diaz' } 40 false
{'Brown' } 49 true
writetable(T,'sampletable.txt')
使用 readtable
读回表格数据。默认情况下,MATLAB® 将任何包含空格和非 ASCII 字符的变量名称转换为有效的 MATLAB® 标识符。例如,MATLAB® 将变量名称 'Last Name'
转换为 'LastName'
,将 'Smoker (1 or 0)'
转换为 'Smoker_1or0_'
。要在保留变量名称的同时读取表格数据,请将 'VariableNamingRule'
参数设置为 preserve
。
T_preserve = readtable('sampletable.txt',"VariableNamingRule","preserve")
T_preserve=5×3 table
Last Name Age Smoker (1 or 0)
___________ ___ _______________
{'Sanchez'} 38 1
{'Johnson'} 43 0
{'Li' } 38 1
{'Diaz' } 40 0
{'Brown' } 49 1
从文件中读取十六进制和二进制数字
您可以从文件中读取十六进制和二进制数字,并将它们作为数值变量存储在表中。readtable
函数会自动读取分别包含 0x
和 0b
前缀的十六进制和二进制数字。数值使用整数数据类型存储。您也可以使用导入选项来读取不带前缀的这些数字。
在文本编辑器中预览 hexAndBinary.txt
文件。它的一些列包含带前缀的十六进制和二进制数字,还有一列包含不带前缀的这些数字。
使用 readtable
读取文件。该函数检测具有 0x
和 0b
前缀的数字,并将它们作为整数存储。第三列没有前缀,因此其值被视为文本。
T = readtable('hexAndBinary.txt')
T=3×4 table
Var1 Var2 Var3 Var4
_____ ____ ________ ___________
255 255 {'C7F9'} {'Device1'}
256 4 {'05BF'} {'Device2'}
43981 129 {'F00F'} {'Device3'}
readtable
函数将数值存储在不同整数类(uint16
和 uint8
)中,因为 T.Var1
的值需要 8 位以上的存储空间。
class(T.Var1)
ans = 'uint16'
class(T.Var2)
ans = 'uint8'
要指定用于存储从十六进制和二进制数字导入的数值的数据类型,请使用 'HexType'
和 'BinaryType'
名称-值对组参数。将值存储为有符号 32 位整数。
T = readtable('hexAndBinary.txt','HexType','int32','BinaryType','int32'); class(T.Var1)
ans = 'int32'
class(T.Var2)
ans = 'int32'
您可以使用导入选项来检测不带前缀的十六进制和二进制数字,并为它们指定存储。为 hexAndBinary.txt
创建一个导入选项对象。
opts = detectImportOptions('hexAndBinary.txt')
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: 'UTF-8' Replacement Properties: MissingRule: 'fill' ImportErrorRule: 'fill' ExtraColumnsRule: 'addvars' Variable Import Properties: Set types by name using setvartype VariableNames: {'Var1', 'Var2', 'Var3' ... and 1 more} VariableTypes: {'auto', 'auto', 'char' ... and 1 more} SelectedVariableNames: {'Var1', 'Var2', 'Var3' ... and 1 more} VariableOptions: Show all 4 VariableOptions Access VariableOptions sub-properties using setvaropts/getvaropts VariableNamingRule: 'modify' Location Properties: DataLines: [1 Inf] VariableNamesLine: 0 RowNamesColumn: 0 VariableUnitsLine: 0 VariableDescriptionsLine: 0 To display a preview of the table, use preview
要指定第三列应作为十六进制值导入,即使缺少前缀也要导入,请使用 setvaropts
函数来修改表中第三个变量的变量类型。将变量类型设置为 int32
。
opts = setvaropts(opts,3,'NumberSystem','hex','Type','int32')
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: 'UTF-8' Replacement Properties: MissingRule: 'fill' ImportErrorRule: 'fill' ExtraColumnsRule: 'addvars' Variable Import Properties: Set types by name using setvartype VariableNames: {'Var1', 'Var2', 'Var3' ... and 1 more} VariableTypes: {'auto', 'auto', 'int32' ... and 1 more} SelectedVariableNames: {'Var1', 'Var2', 'Var3' ... and 1 more} VariableOptions: Show all 4 VariableOptions Access VariableOptions sub-properties using setvaropts/getvaropts VariableNamingRule: 'modify' Location Properties: DataLines: [1 Inf] VariableNamesLine: 0 RowNamesColumn: 0 VariableUnitsLine: 0 VariableDescriptionsLine: 0 To display a preview of the table, use preview
读取文件并将第三列作为数值(而不是文本)导入。
T = readtable('hexAndBinary.txt',opts)
T=3×4 table
Var1 Var2 Var3 Var4
_____ ____ _____ ___________
255 255 51193 {'Device1'}
256 4 1471 {'Device2'}
43981 129 61455 {'Device3'}
为 XML 文件创建 XML 导入选项
为 XML 文件创建 XML 导入选项,指定要导入的变量,然后读取数据。
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> <Student ID="S201351"> <Name FirstName="Salim" LastName="Copeland" /> <Age>19</Age> <Year>Sophomore</Year> <Address> <Street xmlns="https://www.mathworks.com">3388 Moore Avenue</Street> <City>Fort Worth</City> <State>TX</State> </Address> <Major>Business</Major> <Minor>Japanese Language</Minor> </Student> <Student ID="S201351"> <Name FirstName="Salim" LastName="Copeland" /> <Age>20</Age> <Year>Sophomore</Year> <Address> <Street xmlns="https://www.mathworks.com">3388 Moore Avenue</Street> <City>Fort Worth</City> <State>TX</State> </Address> <Major>Business</Major> <Minor>Japanese Language</Minor> </Student> <Student ID="54600"> <Name FirstName="Dania" LastName="Burt" /> <Age>22</Age> <Year>Senior</Year> <Address> <Street xmlns="https://www.mathworks.com">22 Angie Drive</Street> <City>Los Angeles</City> <State>CA</State> </Address> <Major>Mechanical Engineering</Major> <Minor>Architecture</Minor> </Student> <Student ID="453197"> <Name FirstName="Rikki" LastName="Gunn" /> <Age>21</Age> <Year>Junior</Year> <Address> <Street xmlns="https://www.mathworks.com">65 Decatur Lane</Street> <City>Trenton</City> <State>ME</State> </Address> <Major>Economics</Major> <Minor>Art History</Minor> </Student> </Students>
从文件创建一个 XMLImportOptions
对象。将 VariableSelectors
的值指定为 //@FirstName
以选择要作为表变量导入的 FirstName
元素节点。
opts = xmlImportOptions("VariableSelectors","//@FirstName")
opts = XMLImportOptions with properties: Replacement Properties: MissingRule: "fill" ImportErrorRule: "fill" RepeatedNodeRule: "addcol" Variable Import Properties: Set types by name using setvartype VariableNames: "Var1" VariableTypes: "char" SelectedVariableNames: "Var1" VariableOptions: Show all 1 VariableOptions Access VariableOptions sub-properties using setvaropts/getvaropts VariableNamingRule: "preserve" Location Properties: TableSelector: <missing> RowSelector: <missing> VariableSelectors: "//@FirstName" VariableUnitsSelector: <missing> VariableDescriptionsSelector: <missing> RowNamesSelector: <missing> RegisteredNamespaces: [0x2 string]
使用 readtable
以及选项对象导入指定的变量。
T = readtable("students.xml",opts)
T=7×1 table
Var1
__________
{'Priya' }
{'Conor' }
{'Morgan'}
{'Salim' }
{'Salim' }
{'Dania' }
{'Rikki' }
注册自定义 XML 命名空间前缀
使用 RegisteredNamespaces
名称-值参数将自定义 XML 命名空间前缀注册到输入文件中的现有命名空间 URL。
从 XML 文件创建一个 XMLImportOptions
对象。将 Street
元素节点的 XPath 表达式指定为 'VariableSelectors'
的值,并将前缀 myPrefix
注册到属于 Street
节点的 URL。
opts = detectImportOptions("students.xml","RegisteredNamespaces", ["myPrefix","https://www.mathworks.com"],... "VariableSelectors","//myPrefix:Street")
opts = XMLImportOptions with properties: Replacement Properties: MissingRule: "fill" ImportErrorRule: "fill" RepeatedNodeRule: "addcol" Variable Import Properties: Set types by name using setvartype VariableNames: "Street" VariableTypes: "string" SelectedVariableNames: "Street" VariableOptions: Show all 1 VariableOptions Access VariableOptions sub-properties using setvaropts/getvaropts VariableNamingRule: "preserve" Location Properties: TableSelector: <missing> RowSelector: <missing> VariableSelectors: "//myPrefix:Street" VariableUnitsSelector: <missing> VariableDescriptionsSelector: <missing> RowNamesSelector: <missing> RegisteredNamespaces: ["myPrefix" "https://www.mathworks.com"]
使用 readtable
函数以及选项对象导入选定的变量。
T2 = readtable("students.xml",opts)
T2=7×1 table
Street
___________________
"591 Spring Lane"
"4641 Pearl Street"
"30 Highland Road"
"3388 Moore Avenue"
"3388 Moore Avenue"
"22 Angie Drive"
"65 Decatur Lane"
从 Microsoft Word 文档中读取特定表
默认情况下,readtable
函数从 Microsoft Word 文档文件中读取第一个表。文件 MaintenanceReport.docx
包含两个表。第二个表的最后一行包含一个其合并列与表变量不匹配的单元格。
通过将 TableIndex
选项设置为 2
来读取第二个表。要跳过包含具有合并列的单元格的行,请将 MergedCellColumnRule
选项设置为 'omitrow'
。
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"
从 HTML 网页读取表
使用 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
Var1 Var2
________________ ____________________________
"readtable" "Create table from file"
"writetable" "Write table to file"
"readtimetable" "Create timetable from file"
"writetimetable" "Write timetable to file"
输入参数
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
| WordDocumentImportOptions
| HTMLDocumentImportOptions
文件导入选项,指定为由 detectImportOptions
函数创建的 SpreadsheetImportOptions
、DelimitedTextImportOptions
、FixedWidthImportOptions
、XMLImportOptions
、WordDocumentImportOptions
或 HTMLDocumentImportOptions
对象。opts
对象包含控制数据导入过程的属性。有关每个对象的属性的详细信息,请参阅相应的对象页。
文件类型 | 输出 |
---|---|
电子表格文件 | SpreadsheetImportOptions 对象(仅对 Sheet 、DataRange 和 VariableNames 属性可用) |
文本文件 | DelimitedTextImportOptions 对象 |
等宽文本文件 | FixedWidthImportOptions 对象 |
XML 文件 | XMLImportOptions 对象 |
Microsoft Word 文档文件 | WordDocumentImportOptions 对象 |
HTML 文件 | HTMLImportOptions 对象 |
名称-值参数
将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参数名称,Value
是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: 'ReadVariableNames',false
指示文件的第一行与变量名称不对应。
FileType
— 文件类型
'spreadsheet'
| 'text'
| 'delimitedtext'
| 'fixedwidth'
| 'xml'
| 'worddocument'
| 'html'
文件类型,指定为以逗号分隔的对组,该对组由 'FileType'
和下列值之一组成。
值 | 导入选项 |
---|---|
'spreadsheet' | |
'text' | |
'delimitedtext' |
|
'fixedwidth' |
|
'xml' |
|
'worddocument' |
|
'html' |
|
当 filename
不包含文件扩展名时,或当扩展名不是以下项之一时,请使用 'FileType'
名称-值对组参数:
.txt
、.dat
或.csv
(文本文件).xls
、.xlsb
、.xlsm
、.xlsx
、.xltm
、.xltx
或.ods
(电子表格文件).xml
(XML 文件).docx
(Microsoft Word 文档文件).html
、.xhtml
或.htm
(HTML 文件)
示例: 'FileType','text'
数据类型: char
| string
ReadRowNames
— 读取第一列以作为行名称的指示符
false
(默认) | true
| 0
| 1
读取第一列以作为行名称的指示符,指定为逗号分隔的对组,包含 'ReadRowNames'
和 false
、true
、0
或 1
。
指示符 | 描述 |
---|---|
| 当要读取的区域第一列包含的是数据而不是表的行名称时使用。 |
| 当要读取的区域第一列包含表的行名称时使用。 |
未指定 | 如果未指定,readtable 将假定为 false 。 |
注意:如果 'ReadVariableNames'
和 'ReadRowNames'
逻辑指示符都为 true
,则 readtable
将读取的区域第一行第一列中的名称保存为属性 T.Properties.DimensionNames
中的第一个维度名称。
如果除 opts
导入选项外您还指定了 ReadRowNames
参数,readtable
的行为将因您的指定而异:
如果
ReadRowNames
为true
,则通过使用导入选项对象的RowNamesRange
或RowNameColumn
属性从指定的文件中读取行名称。如果
ReadRowNames
为false
,则不导入行名称。
示例: 'ReadRowNames',true
Delimiter
— 字段分隔符
字符向量 | 字符向量元胞数组 | 字符串
字段分隔符,指定为由 'Delimiter'
以及一个字符向量、字符向量元胞数组或字符串组成的逗号分隔对组。使用任何有效字符(如逗号 ','
或句点 '.'
)指定 Delimiter
。
下表列出了一些常用的字段分隔符。
设定符 | 字段分隔符 |
---|---|
| 逗号 |
| 空格 |
| 制表符 |
| 分号 |
| 垂直条 |
未指定 | 如果未指定, |
要将连续分隔符视为单个分隔符,请将 Delimiter
指定为字符向量元胞数组。您还必须指定 MultipleDelimsAsOne
选项。
示例: 'Delimiter',','
或 'Delimiter','comma'
数据类型: char
| string
| cell
LeadingDelimitersRule
— 管理前导分隔符的过程
'keep'
| 'ignore'
| 'error'
管理带分隔符的文本文件中的前导分隔符的过程,指定为下表中的值之一。
前导分隔符规则 | 行为 |
---|---|
'keep' | 保留分隔符。 |
'ignore' | 忽略分隔符。 |
'error' | 返回错误并中止导入操作。 |
示例: 'LeadingDelimitersRule','keep'
TrailingDelimitersRule
— 管理尾部分隔符的过程
'keep'
| 'ignore'
| 'error'
管理带分隔符的文本文件中的尾部分隔符的过程,指定为下表中的值之一。
前导分隔符规则 | 行为 |
---|---|
'keep' | 保留分隔符。 |
'ignore' | 忽略分隔符。 |
'error' | 返回错误并中止导入操作。 |
示例: 'TrailingDelimitersRule','keep'
ConsecutiveDelimitersRule
— 处理连续分隔符的过程
'split'
| 'join'
| 'error'
处理带分隔符的文本文件中连续分隔符的过程,指定为下表中的值之一。
连续分隔符规则 | 行为 |
---|---|
'split' | 将连续分隔符拆分为多个字段。 |
'join' | 将多个分隔符合并成一个分隔符。 |
'error' | 返回错误并中止导入操作。 |
示例: 'ConsecutiveDelimitersRule','split'
数据类型: char
| string
MultipleDelimsAsOne
— 多分隔符处理
0 (false)
(默认) | 1 (true)
多分隔符处理,指定为由 'MultipleDelimsAsOne'
和 true
/false
组成的逗号分隔对组。如果为 true
,则导入函数将连续分隔符当作一个分隔符处理。由空白分隔的重复分隔符也被当作一个分隔符处理。您还必须指定 Delimiter
选项。
示例: 'MultipleDelimsAsOne',1
NumHeaderLines
— 标题行数
0
| 正整数
文件开头要跳过的标题行数,指定为以逗号分隔的对组,其中包含 'NumHeaderLines'
和 0
或一个正整数。如果未指定,readtable
将自动检测要跳过的行数。
示例: 'NumHeaderLines',2
数据类型: single
| double
TreatAsMissing
— 要作为空值处理的占位符文本
字符向量 | 字符向量元胞数组 | 字符串 | 字符串数组
要作为空值处理的占位符文本,指定为逗号分隔的对组,其中包含 'TreatAsMissing'
和一个字符向量、字符向量元胞数组、字符串或字符串数组。与这些字符对应的表元素设置为 NaN
。
'TreatAsMissing'
仅应用于表中的数值列,而 readtable
不接受数值文字,例如 '-99'
。
示例: 'TreatAsMissing','N/A'
或 'TreatAsMissing',"N/A"
将数值列内的 N/A
设置为 NaN
。
示例: 'TreatAsMissing',{'.','NA','N/A'}
或 'TreatAsMissing',[".","NA","N/A"]
将数值列内的 .
、NA
和 N/A
设置为 NaN
。
数据类型: char
| string
MissingRule
— 管理缺失数据的过程
'fill'
(默认) | 'error'
| 'omitrow'
| 'omitvar'
管理缺失数据的过程,指定为下表中的值之一。
缺失规则 | 行为 |
---|---|
'fill' | 用
|
'error' | 停止导入并显示一条错误消息,指出缺失的记录和字段。 |
'omitrow' | 忽略包含缺失数据的行。 |
'omitvar' | 忽略包含缺失数据的变量。 |
示例: 'MissingRule','omitrow'
数据类型: char
| string
TextType
— 导入的文本数据的类型
"string"
| "char"
导入文本数据的类型,指定为以下值之一:
"string"
- 将文本数据作为字符串数组导入。"char"
- 将文本数据作为字符向量导入。
示例: "TextType","char"
DatetimeType
— 导入日期时间数据的类型
'datetime'
(默认) | 'text'
| 'exceldatenum'
(仅限电子表格文件)
导入日期时间数据的类型,指定为以逗号分隔的对组,其中包含 'DatetimeType'
和下列值之一:'datetime'
、'text'
或 'exceldatenum'
。值 'exceldatenum'
仅适用于电子表格文件,对文本文件无效。
值 | 导入日期时间数据的类型 |
---|---|
'datetime' | MATLAB 有关详细信息,请参阅 |
'text' | 如果将
|
'exceldatenum' | Excel 日期序列值 日期序列值是一个数字,它等于从给定的参照日期开始计算的天数。Excel 日期序列值与 MATLAB 日期序列值使用不同的参照日期。有关 Excel 日期的详细信息,请参阅 Excel 中的 1900 和 1904 日期系统之间的差异。 |
示例: 'DatetimeType','datetime'
数据类型: char
| string
VariableNamingRule
— 保留变量名称的标志
"modify"
(默认) | "preserve"
保留变量名称的标志,指定为 "modify"
或 "preserve"
。
"modify"
- 将无效变量名称(由isvarname
函数确定)转换为有效的 MATLAB 标识符。"preserve"
- 保留作为无效 MATLAB 标识符的变量名称,如包含空白和非 ASCII 字符的变量名称。
从 R2019b 开始,变量名称和行名称可以包含任何字符,包括空格和非 ASCII 字符。此外,它们可以由任何字符(而不仅仅是字母)开头。变量名称和行名称可以不是有效的 MATLAB 标识符(由 isvarname
函数决定)。要保留这些变量名称和行名称,请将 VariableNamingRule
的值设置为 "preserve"
。当 VariableNamingRule
的值从 "modify"
更改为 "preserve"
时,变量名称不会刷新。
示例: "VariableNamingRule","preserve"
数据类型: char
| string
ImportErrorRule
— 处理导入错误的过程
'fill'
(默认) | 'error'
| 'omitrow'
| 'omitvar'
处理导入错误的过程,指定为下表中的值之一。
导入错误规则 | 行为 |
---|---|
'fill' | 用
|
'error' | 停止导入并显示一条错误消息,指出导致出错的记录和字段。 |
'omitrow' | 忽略发生错误的行。 |
'omitvar' | 忽略发生错误的变量。 |
示例: 'ImportErrorRule','omitvar'
数据类型: char
| string
WebOptions
— HTTP
或 HTTPS
请求选项
weboptions
对象
HTTP
或 HTTPS
请求选项,指定为 weboptions
对象。当指定的 filename
是包含协议类型 "http://"
或 "https://"
的 Internet URL 时,由 weboptions
对象确定如何导入数据。
ReadVariableNames
— 读取第一行作为变量名称
true
| false
| 1
| 0
读取第一行以作为变量名称的指示符,指定为逗号分隔的对组,包含 'ReadVariableNames'
和 true
、false
、1
或 0
。如果未指定,readtable
将自动检测是否存在变量名称。
指示符 | 描述 |
---|---|
| 当要读取的区域的第一行包含表格的变量名称时使用。 |
| 当要读取的区域的第一行包含表格中的数据时使用。 |
未指定 | 如果未指定,readtable 将自动检测 true 或 false ,并进行相应的处理。 |
注意:如果 'ReadVariableNames'
和 'ReadRowNames'
逻辑指示符都为 true
,则 readtable
将读取的区域第一行第一列中的名称保存为属性 T.Properties.DimensionNames
中的第一个维度名称。
如果除 opts
导入选项外您还指定了 ReadVariableNames
参数,readtable
的行为将因您的指定而异:
如果
ReadVariableNames
为true
,则通过使用导入选项对象的VariableNamesRange
或VariableNamesLine
属性从指定的文件中读取变量名称。如果
ReadVariableNames
为false
,则从导入选项对象的VariableNames
属性中读取变量名称。
示例: 'ReadVariableNames',true
ExpectedNumVariables
— 需要的变量数目
正整数
需要的变量数目,指定为包含 'ExpectedNumVariables'
和正整数的逗号分隔对组。如果未指定,则导入函数会自动检测变量数目。
示例: 'ExpectedNumVariables',5
数据类型: single
| double
VariableWidths
— 变量的字段宽度
正整数值向量
等宽文本文件中变量的字段宽度,指定为正整数值向量。该向量中的每个正整数对应于一个字段中构成变量的字符数。对于 VariableNames
属性中指定的每个变量,VariableWidths
属性中均包含一个对应的条目。
示例: 'VariableWidths',[10,7,4,26,7]
Whitespace
— 要视为空白的字符
字符向量 | 字符串标量
要视为空白的字符,指定为包含一个或多个字符的字符向量或字符串标量。
示例: 'Whitespace',' _'
示例: 'Whitespace','?!.,'
EmptyLineRule
— 处理空行的方式
'skip'
| 'read'
| 'error'
处理数据中的空行的方式,指定为 'skip'
、'read'
或 'error'
。导入函数将空白解释为空。
空行规则 | 行为 |
---|---|
'skip' | 跳过空行。 |
'read' | 导入空行。导入函数根据 VariableWidths 、VariableOptions 、MissingRule 中指定的值和其他相关属性(例如 Whitespace )来解析空行。 |
'error' | 显示错误消息并中止导入操作。 |
示例: 'EmptyLineRule','skip'
数据类型: char
| string
VariableNamesLine
— 变量名称的位置
0
(默认) | 正整数标量
变量名称的位置,指定为正整数标量。VariableNamesLine
属性指定变量名称所在的行号。
如果 VariableNamesLine
指定为 0,则不导入变量名称。否则,将从指定的行中导入变量名称。
示例: 'VariableNamesLine',6
数据类型: single
| double
| uint8
| uint16
| uint32
| uint64
PartialFieldRule
— 处理不完整字段的过程
'keep'
| 'fill'
| 'omitrow'
| 'omitvar'
| 'wrap'
| 'error'
处理数据中不完整字段的过程,指定为下表中的值之一。
不完整字段规则 | 行为 |
---|---|
'keep' | 保留不完整字段数据并将文本转换为正确的数据类型。 在某些情况下,当导入函数无法解释不完整数据时,可能会发生转换错误。 |
'fill' | 用
|
'omitrow' | 忽略包含不完整数据的行。 |
'omitvar' | 忽略包含不完整数据的变量。 |
'wrap' | 开始读取下一行字符。 |
'error' | 显示错误消息并中止导入操作。 |
示例: 'PartialFieldRule','keep'
数据类型: char
| string
VariableUnitsLine
— 变量单位的位置
0
(默认) | 正整数标量
变量单位的位置,指定为正整数标量。VariableUnitsLine
属性指定变量单位所在的行号。
如果 VariableUnitsLine
指定为 0,则不导入变量单位。否则,将从指定的行中导入变量单位。
示例: 'VariableUnitsLine',8
数据类型: single
| double
| uint8
| uint16
| uint32
| uint64
VariableDescriptionsLine
— 变量描述的位置
0
(默认) | 正整数标量
变量描述的位置,指定为正整数标量。VariableDescriptionsLine
属性指定变量描述所在的行号。
如果 VariableDescriptionsLine
指定为 0,则不导入变量描述。否则,将从指定的行中导入变量描述。
示例: 'VariableDescriptionsLine',7
数据类型: single
| double
| uint8
| uint16
| uint32
| uint64
ExtraColumnsRule
— 处理附加列的过程
'addvars'
| 'ignore'
| 'wrap'
| 'error'
处理数据中的附加列的过程,指定为下表中的值之一。
附加列规则 | 行为 |
---|---|
'addvars' | 要导入附加列,需要创建新变量。如果有 注意:附加列作为 |
'ignore' | 忽略附加列数据。 |
'wrap' | 将附加列数据换行到新记录中。此操作不会更改变量的数量。 |
'error' | 显示错误消息并中止导入操作。 |
示例: 'ExtraColumnsRule','addvars'
数据类型: char
| string
Format
— 列格式
字符向量 | 字符串 | 'auto'
文件的列格式,指定为逗号分隔的对组,其中包含 'Format'
和一个字符向量或字符串标量(由一个或多个转换设定符组成)或 'auto'
。转换设定符与 textscan
函数接受的设定符相同。
指定该格式可以显著加快一些大文件的处理速度。如果不为 Format
指定一个值,则 readtable
将使用 %q
解释非数值列。%q
设定符会读取文本并在适当情况下忽略双引号 ("
)。
如果您没有指定
'Format'
名称-值对组,则readtable
函数的行为就像您使用了detectImportOptions
函数的结果来导入数据一样。有关此行为导致的结果的详细信息,请参阅兼容性注意事项。如果您指定
'Format','auto'
,则创建的变量是double
数组、字符向量元胞数组或datetime
数组,具体取决于数据。如果整列都是数值,则将变量作为double
数组导入。如果一列中有任一元素不是数值,则将这些变量作为字符向量元胞数组导入,或作为datetime
数组导入(如果值表示日期时间)。
示例: 'Format','auto'
数据类型: char
| string
EmptyValue
— 空数值字段的返回值
NaN
(默认) | 数值标量
被分隔的文本文件中空数值字段的返回值,指定为由 'EmptyValue'
和一个数值标量组成的逗号分隔对组。
示例: 'EmptyValue',0
CollectOutput
— 确定数据串联的逻辑指示符
false
(默认) | true
确定数据串联的逻辑指示符,指定为由 'CollectOutput'
和 true
/false
组成的逗号分隔对组。如果为 true
,则导入函数会将同一 MATLAB 基础类的连续输出元胞串联为单个数组。
示例: 'CollectOutput',true
CommentStyle
— 指定要忽略的文本的符号
字符向量 | 字符向量元胞数组 | 字符串 | 字符串数组
用于指定要忽略的文本的符号,指定为逗号分隔的对组,其中包含 'CommentStyle'
和一个字符向量、字符向量元胞数组、字符串或字符串数组。
例如,指定一个字符(如 '%'
)以忽略同一行上此符号后面的文本。指定一个包含两个字符向量的元胞数组(如 {'/*','*/'}
),以忽略这些序列之间的任何文本。
MATLAB 仅检查位于每个字段开头而不是字段中的注释。
示例: 'CommentStyle',{'/*','*/'}
数据类型: char
| string
ExponentCharacter
— 指数字符
'eEdD'
(默认) | 字符向量 | 字符串
指数字符,指定为由 "ExponentCharacter"
和一个字符向量或字符串组成的逗号分隔对组。默认的指数字符为 e
、E
、d
和 D
。
示例: "ExponentCharacter","eE"
数据类型: char
| string
LineEnding
— 行尾字符
字符向量 | 字符串
行尾字符,指定为由 'LineEnding'
和一个字符向量或字符串组成的逗号分隔对组。该字符向量必须为 '\r\n'
,或须指定单个字符。常用的行尾字符是换行符 ('\n'
) 或回车符 ('\r'
)。如果您指定 '\r\n'
,则导入函数会将 \r
或 \n
以及两者的组合 (\r\n
) 视为行尾字符。
默认的行尾序列是 \n
、\r
或 \r\n
,具体取决于您的文件的内容。
如果文件最后一行的结尾有缺失值和行尾序列,则导入函数会对这些字段返回空值。这样可确保输出元胞数组 C
中的各个元胞的大小相同。
示例: 'LineEnding',':'
数据类型: 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
Encoding
— 字符编码方案
'UTF-8'
| 'ISO-8859-1'
| 'windows-1251'
| 'windows-1252'
| ...
与文件关联的字符编码方案,指定为以逗号分隔的对组,其中包含 'Encoding'
和 'system'
或标准字符编码方案名称。如果您没有指定任何编码,则 readtable
函数在读取文件时将使用自动字符集检测来确定编码。
如果除导入选项外您还指定了 'Encoding'
参数,readtable
函数将使用为 'Encoding'
指定的值,而覆盖导入选项中定义的编码方案。
示例: 'Encoding','UTF-8'
使用 UTF-8 作为编码。
示例: 'Encoding','system'
使用系统默认编码。
数据类型: char
| string
DurationType
— 持续时间数据的输出数据类型
'duration'
(默认) | 'text'
来自文本文件的持续时间数据的输出数据类型,指定为以逗号分隔的对组,其中包含 'DurationType'
和 'duration'
或 'text'
。
值 | 导入的持续时间数据的类型 |
---|---|
'duration' | MATLAB 有关详细信息,请参阅 |
'text' | 如果将
|
示例: 'DurationType','text'
数据类型: char
| string
HexType
— 十六进制数据的输出数据类型
'auto'
(默认) | 'text'
| 'int8'
| 'int16'
| ...
十六进制数据的输出数据类型,指定为以逗号分隔的对组,其中包含 'HexType'
和下表中列出的值之一。
输入文件以文本形式表示十六进制值,使用 0x
或 0X
作为前缀,以字符 0
-9
、a
-f
和 A
-F
作为数字。(大写和小写字母表示相同的数字 - 例如,'0xf'
和 '0xF'
都表示 15
。)
导入函数将十六进制值转换为由 'HexType'
的值指定的数据类型。
| 输出表变量的数据类型 |
---|---|
| 自动检测到的数据类型 |
| 未更改的输入文本 |
| 8 位有符号整数 |
| 16 位有符号整数 |
| 32 位有符号整数 |
| 64 位有符号整数 |
| 8 位无符号整数 |
| 16 位无符号整数 |
| 32 位无符号整数 |
| 64 位无符号整数 |
示例: 'HexType','uint16'
将输出表中表示十六进制值的文本(如 '0xFF'
)转换为 16 位无符号整数(如 255
)。
数据类型: char
| string
BinaryType
— 二进制数据的输出数据类型
'auto'
(默认) | 'text'
| 'int8'
| 'int16'
| ...
二进制数据的输出数据类型,指定为以逗号分隔的对组,其中包含 'BinaryType'
和下表中列出的值之一。
输入文件以文本形式表示二进制值,使用 0b
或 0B
作为前缀,以字符 0
和 1
作为数字。
导入函数将二进制值转换为由 'BinaryType'
的值指定的数据类型。
| 输出表变量的数据类型 |
---|---|
| 自动检测到的数据类型 |
| 未更改的输入文本 |
| 8 位有符号整数 |
| 16 位有符号整数 |
| 32 位有符号整数 |
| 64 位有符号整数 |
| 8 位无符号整数 |
| 16 位无符号整数 |
| 32 位无符号整数 |
| 64 位无符号整数 |
示例: 'BinaryType','uint16'
将输出表中表示二进制值的文本(如 '0b11111111'
)转换为 16 位无符号整数(如 255
)。
数据类型: char
| string
FileType
— 文件类型
'spreadsheet'
| 'text'
| 'delimitedtext'
| 'fixedwidth'
| 'xml'
| 'worddocument'
| 'html'
文件类型,指定为以逗号分隔的对组,该对组由 'FileType'
和下列值之一组成。
值 | 导入选项 |
---|---|
'spreadsheet' | |
'text' | |
'delimitedtext' |
|
'fixedwidth' |
|
'xml' |
|
'worddocument' |
|
'html' |
|
当 filename
不包含文件扩展名时,或当扩展名不是以下项之一时,请使用 'FileType'
名称-值对组参数:
.txt
、.dat
或.csv
(文本文件).xls
、.xlsb
、.xlsm
、.xlsx
、.xltm
、.xltx
或.ods
(电子表格文件).xml
(XML 文件).docx
(Microsoft Word 文档文件).html
、.xhtml
或.htm
(HTML 文件)
示例: 'FileType','text'
数据类型: char
| string
ReadRowNames
— 读取第一列以作为行名称的指示符
false
(默认) | true
| 0
| 1
读取第一列以作为行名称的指示符,指定为逗号分隔的对组,包含 'ReadRowNames'
和 false
、true
、0
或 1
。
指示符 | 描述 |
---|---|
| 当要读取的区域第一列包含的是数据而不是表的行名称时使用。 |
| 当要读取的区域第一列包含表的行名称时使用。 |
未指定 | 如果未指定,readtable 将假定为 false 。 |
注意:如果 'ReadVariableNames'
和 'ReadRowNames'
逻辑指示符都为 true
,则 readtable
将读取的区域第一行第一列中的名称保存为属性 T.Properties.DimensionNames
中的第一个维度名称。
如果除 opts
导入选项外您还指定了 ReadRowNames
参数,readtable
的行为将因您的指定而异:
如果
ReadRowNames
为true
,则通过使用导入选项对象的RowNamesRange
或RowNameColumn
属性从指定的文件中读取行名称。如果
ReadRowNames
为false
,则不导入行名称。
示例: 'ReadRowNames',true
TreatAsMissing
— 要作为空值处理的占位符文本
字符向量 | 字符向量元胞数组 | 字符串 | 字符串数组
要作为空值处理的占位符文本,指定为逗号分隔的对组,其中包含 'TreatAsMissing'
和一个字符向量、字符向量元胞数组、字符串或字符串数组。与这些字符对应的表元素设置为 NaN
。
'TreatAsMissing'
仅应用于表中的数值列,而 readtable
不接受数值文字,例如 '-99'
。
示例: 'TreatAsMissing','N/A'
或 'TreatAsMissing',"N/A"
将数值列内的 N/A
设置为 NaN
。
示例: 'TreatAsMissing',{'.','NA','N/A'}
或 'TreatAsMissing',[".","NA","N/A"]
将数值列内的 .
、NA
和 N/A
设置为 NaN
。
数据类型: char
| string
MissingRule
— 管理缺失数据的过程
'fill'
(默认) | 'error'
| 'omitrow'
| 'omitvar'
管理缺失数据的过程,指定为下表中的值之一。
缺失规则 | 行为 |
---|---|
'fill' | 用
|
'error' | 停止导入并显示一条错误消息,指出缺失的记录和字段。 |
'omitrow' | 忽略包含缺失数据的行。 |
'omitvar' | 忽略包含缺失数据的变量。 |
示例: 'MissingRule','omitrow'
数据类型: char
| string
Range
— 要读取的工作表的部分
字符向量 | 字符串标量
要读取的工作表部分,指示为由逗号分隔的对组指定的矩形区域,其中包含 'Range'
和一个采用以下格式之一的字符向量或字符串标量。
指定 Range 的方式 | 描述 |
---|---|
起始单元格 | 将数据的起始单元格指定为字符向量、字符串标量或二元素数值向量。
根据起始单元格,导入函数通过从起始单元格开始导入,并在到达最后一个空行或页脚范围时结束,从而自动检测数据范围。 例如: |
矩形范围 | 使用语法 示例: |
未指定或为空 | 如果未指定, 示例: 注意:使用范围是指电子表格中实际包含数据的矩形部分。 |
行范围 | 您可以通过使用 Excel 行标志符指定开始行和结束行来标识范围。然后, 示例: |
列范围 | 您可以通过使用 Excel 列标志符指定开始列和结束列来标识范围。然后, 示例: |
Excel 中的命名范围 | 在 Excel 中,您可以创建名称来标识电子表格中的范围。例如,您可以选择电子表格的一个矩形部分,并将其命名为 示例: |
示例: 'Range'
, 'A1:F10'
示例: 'Range'
, "A1:F10"
—
数据类型: char
| string
DataRange
— 数据的位置
字符向量 | 字符串标量 | 正整数标量 | 正整数标量数组 | 字符向量元胞数组 | 字符串数组
要导入的数据的位置,指定为字符向量、字符串标量、字符向量元胞数组、字符串数组、正整数标量或由正整数标量组成的 N
×2
数组。使用以下形式之一指定 DataRange
。
值 | 行为 |
---|---|
起始单元格或起始行 | 使用 Excel 根据起始单元格,导入函数通过从起始单元格开始导入,并在到达最后一个空行或页脚范围时结束,从而自动检测数据范围。 也可以使用正标量行索引指定包含数据的第一行。 根据指定的行索引,导入函数通过从指定的第一行开始读取,一直到数据的最后或页脚范围,从而自动检测数据范围。 例如: |
矩形范围 | 使用矩形范围格式指定确切范围,其中 导入函数只读取指定范围内包含的数据。指定范围内的任何空字段都作为缺失单元导入。 列数必须与 示例: |
行范围或列范围 | 通过使用 Excel 行号标识起始行和结束行来指定范围。 根据指定的行范围,导入函数通过从第一个非空列开始读取,一直到数据的最后,从而自动检测列范围,并为每一列创建一个变量。 示例: 也可以通过使用 Excel 列字母或列号标识起始列和结束列来指定范围。 根据指定的列范围,导入函数通过从第一个非空行开始读取,一直到数据的最后或页脚范围,从而自动检测行范围。 指定范围内的列数必须与 示例: |
多个行范围 | 使用包含 包含多个行范围的有效数组必须满足以下条件:
示例: |
未指定或为空 | 不获取任何数据。 示例: |
示例: 'DataRange'
, 'B2:H15'
数据类型: char
| string
| cell
| single
| double
RowNamesRange
— 行名称的位置
字符向量 | 字符串标量 | 正整数标量 | ''
空字符数组
行名称的位置,指定为字符向量、字符串标量、正整数标量或空字符数组。将 RowNamesRange
指定为下表中的值之一。
值 | 行为 |
---|---|
| 使用 Excel 导入函数为数据中的每个变量标识一个名称。 示例: |
矩形范围 | 使用矩形范围格式指定确切范围,其中
示例: |
行范围 | 通过使用 Excel 行号标识起始行和结束行来指定范围。 行名称必须在单独一列中。 示例: |
数字索引 | 使用正标量列索引指定包含行名称的列。 示例: |
未指定或为空 | 指示没有行名称。 示例: |
示例: 'RowNamesRange'
, 'A1:H1'
数据类型: char
| single
| double
VariableNamesRange
— 变量名称的位置
字符向量 | 字符串标量 | 正整数标量 | ''
空字符数组
变量名称的位置,指定为字符向量、字符串标量、正整数标量或空字符数组。将 VariableNamesRange
指定为下表中的值之一。
值 | 行为 |
---|---|
| 使用 Excel 导入函数为数据中的每个变量读取一个名称。 示例: |
矩形范围 | 使用矩形范围格式指定确切范围,其中 列数必须与 示例: |
行范围 | 通过使用 Excel 行号标识起始行和结束行来指定范围。 必须为一行。 示例: |
数字索引 | 使用正标量行索引指定包含变量名称的行。 示例: |
未指定或为空 | 指示没有变量名称。 示例: |
示例: 'VariableNamesRange'
, 'A1:A15'
数据类型: char
| single
| double
VariableUnitsRange
— 变量单位的位置
字符向量 | 字符串标量 | 正整数标量 | ''
空字符数组
变量单位的位置,指定为字符向量、字符串标量、正整数标量或空字符数组。将 VariableUnitsRange
指定为下表中的值之一。
值 | 行为 |
---|---|
| 使用 Excel 导入函数为数据中的每个变量读取一个单位。 示例: |
矩形范围 | 使用矩形范围格式指定确切范围,其中 列数必须与 示例: |
行范围 | 通过使用 Excel 行号标识起始行和结束行来指定范围。 必须为一行。 示例: |
数字索引 | 使用正标量行索引指定包含数据单位的行。 示例: |
未指定或为空 | 指示没有变量单位。 示例: |
示例: 'VariableUnitsRange'
, 'A1:A5'
数据类型: char
| string
| single
| double
VariableDescriptionsRange
— 变量描述的位置
字符向量 | 字符串标量 | ''
空字符数组
变量描述的位置,指定为字符向量、字符串标量、正整数标量或空字符数组。将 VariableDescriptionRange
指定为下表中的值之一。
值 | 行为 |
---|---|
| 使用 Excel 导入函数为数据中的每个变量读取一个描述。 示例: |
矩形范围 | 使用矩形范围格式指定确切范围,其中 列数必须与 示例: |
行范围 | 通过使用 Excel 行号标识起始行和结束行来指定范围。 必须为一行。 示例: |
数字索引 | 使用正标量行索引指定包含描述的行。 示例: |
未指定或为空 | 指示没有变量描述。 示例: |
示例: 'VariableDescriptionsRange'
, 'B1:B15'
数据类型: char
| string
| single
| double
TextType
— 导入的文本数据的类型
"string"
| "char"
导入文本数据的类型,指定为以下值之一:
"string"
- 将文本数据作为字符串数组导入。"char"
- 将文本数据作为字符向量导入。
示例: "TextType","char"
DatetimeType
— 导入日期时间数据的类型
'datetime'
(默认) | 'text'
| 'exceldatenum'
(仅限电子表格文件)
导入日期时间数据的类型,指定为以逗号分隔的对组,其中包含 'DatetimeType'
和下列值之一:'datetime'
、'text'
或 'exceldatenum'
。值 'exceldatenum'
仅适用于电子表格文件,对文本文件无效。
值 | 导入日期时间数据的类型 |
---|---|
'datetime' | MATLAB 有关详细信息,请参阅 |
'text' | 如果将
|
'exceldatenum' | Excel 日期序列值 日期序列值是一个数字,它等于从给定的参照日期开始计算的天数。Excel 日期序列值与 MATLAB 日期序列值使用不同的参照日期。有关 Excel 日期的详细信息,请参阅 Excel 中的 1900 和 1904 日期系统之间的差异。 |
示例: 'DatetimeType','datetime'
数据类型: char
| string
VariableNamingRule
— 保留变量名称的标志
"modify"
(默认) | "preserve"
保留变量名称的标志,指定为 "modify"
或 "preserve"
。
"modify"
- 将无效变量名称(由isvarname
函数确定)转换为有效的 MATLAB 标识符。"preserve"
- 保留作为无效 MATLAB 标识符的变量名称,如包含空白和非 ASCII 字符的变量名称。
从 R2019b 开始,变量名称和行名称可以包含任何字符,包括空格和非 ASCII 字符。此外,它们可以由任何字符(而不仅仅是字母)开头。变量名称和行名称可以不是有效的 MATLAB 标识符(由 isvarname
函数决定)。要保留这些变量名称和行名称,请将 VariableNamingRule
的值设置为 "preserve"
。当 VariableNamingRule
的值从 "modify"
更改为 "preserve"
时,变量名称不会刷新。
示例: "VariableNamingRule","preserve"
数据类型: char
| string
ImportErrorRule
— 处理导入错误的过程
'fill'
(默认) | 'error'
| 'omitrow'
| 'omitvar'
处理导入错误的过程,指定为下表中的值之一。
导入错误规则 | 行为 |
---|---|
'fill' | 用
|
'error' | 停止导入并显示一条错误消息,指出导致出错的记录和字段。 |
'omitrow' | 忽略发生错误的行。 |
'omitvar' | 忽略发生错误的变量。 |
示例: 'ImportErrorRule','omitvar'
数据类型: char
| string
WebOptions
— HTTP
或 HTTPS
请求选项
weboptions
对象
HTTP
或 HTTPS
请求选项,指定为 weboptions
对象。当指定的 filename
是包含协议类型 "http://"
或 "https://"
的 Internet URL 时,由 weboptions
对象确定如何导入数据。
ReadVariableNames
— 读取第一行作为变量名称
true
| false
| 1
| 0
读取第一行以作为变量名称的指示符,指定为逗号分隔的对组,包含 'ReadVariableNames'
和 true
、false
、1
或 0
。如果未指定,readtable
将自动检测是否存在变量名称。
指示符 | 描述 |
---|---|
| 当要读取的区域的第一行包含表格的变量名称时使用。 |
| 当要读取的区域的第一行包含表格中的数据时使用。 |
未指定 | 如果未指定,readtable 将自动检测 true 或 false ,并进行相应的处理。 |
注意:如果 'ReadVariableNames'
和 'ReadRowNames'
逻辑指示符都为 true
,则 readtable
将读取的区域第一行第一列中的名称保存为属性 T.Properties.DimensionNames
中的第一个维度名称。
如果除 opts
导入选项外您还指定了 ReadVariableNames
参数,readtable
的行为将因您的指定而异:
如果
ReadVariableNames
为true
,则通过使用导入选项对象的VariableNamesRange
或VariableNamesLine
属性从指定的文件中读取变量名称。如果
ReadVariableNames
为false
,则从导入选项对象的VariableNames
属性中读取变量名称。
示例: 'ReadVariableNames',true
ExpectedNumVariables
— 需要的变量数目
正整数
需要的变量数目,指定为包含 'ExpectedNumVariables'
和正整数的逗号分隔对组。如果未指定,则导入函数会自动检测变量数目。
示例: 'ExpectedNumVariables',5
数据类型: single
| double
Sheet
— 要读取的工作表
1
(默认) | 正整数 | 字符向量 | 字符串
要读取的工作表,指定为逗号分隔的对组,其中包含 'Sheet'
和一个正整数(指示工作表索引)或字符向量或字符串(包含工作表名称)。工作表名称不能包含冒号 (:
)。要确定电子表格文件中工作表的名称,请使用 sheets = sheetnames(filename)
。有关详细信息,请参阅 sheetnames
。
如果除 opts
导入选项外您还指定了 Sheet
参数,readtable
函数将使用为 Sheet
参数指定的值,而覆盖导入选项中定义的工作表名称。
示例: 'Sheet'
, 2
示例: 'Sheet'
, 'MySheetName'
示例: 'Sheet'
, "MySheetName"
数据类型: char
| string
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
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
。
示例: 'UseExcel',true
FileType
— 文件类型
'spreadsheet'
| 'text'
| 'delimitedtext'
| 'fixedwidth'
| 'xml'
| 'worddocument'
| 'html'
文件类型,指定为以逗号分隔的对组,该对组由 'FileType'
和下列值之一组成。
值 | 导入选项 |
---|---|
'spreadsheet' | |
'text' | |
'delimitedtext' |
|
'fixedwidth' |
|
'xml' |
|
'worddocument' |
|
'html' |
|
当 filename
不包含文件扩展名时,或当扩展名不是以下项之一时,请使用 'FileType'
名称-值对组参数:
.txt
、.dat
或.csv
(文本文件).xls
、.xlsb
、.xlsm
、.xlsx
、.xltm
、.xltx
或.ods
(电子表格文件).xml
(XML 文件).docx
(Microsoft Word 文档文件).html
、.xhtml
或.htm
(HTML 文件)
示例: 'FileType','text'
数据类型: char
| string
ReadRowNames
— 读取第一列以作为行名称的指示符
false
(默认) | true
| 0
| 1
读取第一列以作为行名称的指示符,指定为逗号分隔的对组,包含 'ReadRowNames'
和 false
、true
、0
或 1
。
指示符 | 描述 |
---|---|
| 当要读取的区域第一列包含的是数据而不是表的行名称时使用。 |
| 当要读取的区域第一列包含表的行名称时使用。 |
未指定 | 如果未指定,readtable 将假定为 false 。 |
注意:如果 'ReadVariableNames'
和 'ReadRowNames'
逻辑指示符都为 true
,则 readtable
将读取的区域第一行第一列中的名称保存为属性 T.Properties.DimensionNames
中的第一个维度名称。
如果除 opts
导入选项外您还指定了 ReadRowNames
参数,readtable
的行为将因您的指定而异:
如果
ReadRowNames
为true
,则通过使用导入选项对象的RowNamesRange
或RowNameColumn
属性从指定的文件中读取行名称。如果
ReadRowNames
为false
,则不导入行名称。
示例: 'ReadRowNames',true
TreatAsMissing
— 要作为空值处理的占位符文本
字符向量 | 字符向量元胞数组 | 字符串 | 字符串数组
要作为空值处理的占位符文本,指定为逗号分隔的对组,其中包含 'TreatAsMissing'
和一个字符向量、字符向量元胞数组、字符串或字符串数组。与这些字符对应的表元素设置为 NaN
。
'TreatAsMissing'
仅应用于表中的数值列,而 readtable
不接受数值文字,例如 '-99'
。
示例: 'TreatAsMissing','N/A'
或 'TreatAsMissing',"N/A"
将数值列内的 N/A
设置为 NaN
。
示例: 'TreatAsMissing',{'.','NA','N/A'}
或 'TreatAsMissing',[".","NA","N/A"]
将数值列内的 .
、NA
和 N/A
设置为 NaN
。
数据类型: char
| string
MissingRule
— 管理缺失数据的过程
'fill'
(默认) | 'error'
| 'omitrow'
| 'omitvar'
管理缺失数据的过程,指定为下表中的值之一。
缺失规则 | 行为 |
---|---|
'fill' | 用
|
'error' | 停止导入并显示一条错误消息,指出缺失的记录和字段。 |
'omitrow' | 忽略包含缺失数据的行。 |
'omitvar' | 忽略包含缺失数据的变量。 |
示例: 'MissingRule','omitrow'
数据类型: char
| string
TextType
— 导入的文本数据的类型
"string"
| "char"
导入文本数据的类型,指定为以下值之一:
"string"
- 将文本数据作为字符串数组导入。"char"
- 将文本数据作为字符向量导入。
示例: "TextType","char"
DatetimeType
— 导入日期时间数据的类型
'datetime'
(默认) | 'text'
| 'exceldatenum'
(仅限电子表格文件)
导入日期时间数据的类型,指定为以逗号分隔的对组,其中包含 'DatetimeType'
和下列值之一:'datetime'
、'text'
或 'exceldatenum'
。值 'exceldatenum'
仅适用于电子表格文件,对文本文件无效。
值 | 导入日期时间数据的类型 |
---|---|
'datetime' | MATLAB 有关详细信息,请参阅 |
'text' | 如果将
|
'exceldatenum' | Excel 日期序列值 日期序列值是一个数字,它等于从给定的参照日期开始计算的天数。Excel 日期序列值与 MATLAB 日期序列值使用不同的参照日期。有关 Excel 日期的详细信息,请参阅 Excel 中的 1900 和 1904 日期系统之间的差异。 |
示例: 'DatetimeType','datetime'
数据类型: char
| string
VariableNamingRule
— 保留变量名称的标志
"modify"
(默认) | "preserve"
保留变量名称的标志,指定为 "modify"
或 "preserve"
。
"modify"
- 将无效变量名称(由isvarname
函数确定)转换为有效的 MATLAB 标识符。"preserve"
- 保留作为无效 MATLAB 标识符的变量名称,如包含空白和非 ASCII 字符的变量名称。
从 R2019b 开始,变量名称和行名称可以包含任何字符,包括空格和非 ASCII 字符。此外,它们可以由任何字符(而不仅仅是字母)开头。变量名称和行名称可以不是有效的 MATLAB 标识符(由 isvarname
函数决定)。要保留这些变量名称和行名称,请将 VariableNamingRule
的值设置为 "preserve"
。当 VariableNamingRule
的值从 "modify"
更改为 "preserve"
时,变量名称不会刷新。
示例: "VariableNamingRule","preserve"
数据类型: char
| string
ImportErrorRule
— 处理导入错误的过程
'fill'
(默认) | 'error'
| 'omitrow'
| 'omitvar'
处理导入错误的过程,指定为下表中的值之一。
导入错误规则 | 行为 |
---|---|
'fill' | 用
|
'error' | 停止导入并显示一条错误消息,指出导致出错的记录和字段。 |
'omitrow' | 忽略发生错误的行。 |
'omitvar' | 忽略发生错误的变量。 |
示例: 'ImportErrorRule','omitvar'
数据类型: char
| string
WebOptions
— HTTP
或 HTTPS
请求选项
weboptions
对象
HTTP
或 HTTPS
请求选项,指定为 weboptions
对象。当指定的 filename
是包含协议类型 "http://"
或 "https://"
的 Internet URL 时,由 weboptions
对象确定如何导入数据。
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'
VariableUnitsSelector
— 变量单位 XPath 表达式
字符向量 | 字符串标量
变量单位 XPath,指定为字符向量或字符串标量,读取函数使用它来选择表变量单位。您必须将 VariableUnitsSelector
指定为有效的 XPath 版本 1.0 表达式。
示例: 'VariableUnitsSelector','/RootNode/ChildNode'
VariableDescriptionsSelector
— 变量描述 XPath 表达式
字符向量 | 字符串标量
变量描述 XPath 表达式,指定为字符向量或字符串标量,读取函数使用它来选择表变量描述。您必须将 VariableDescriptionsSelector
指定为有效的 XPath 版本 1.0 表达式。
示例: 'VariableDescriptionsSelector','/RootNode/ChildNode'
RowNamesSelector
— 表行名称 XPath 表达式
字符向量 | 字符串标量
表行名称 XPath 表达式,指定为字符向量或字符串标量,读取函数使用它来选择表行的名称。您必须将 RowNamesSelector
指定为有效的 XPath 版本 1.0 表达式。
示例: 'RowNamesSelector','/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"]
TableSelector
— 表数据 XPath 表达式
字符向量 | 字符串标量
表数据 XPath 表达式,指定为字符向量或字符串标量,读取函数使用它来选择输出表数据。您必须将 TableSelector
指定为有效的 XPath 版本 1.0 表达式。
示例: 'TableSelector','/RootNode/ChildNode'
FileType
— 文件类型
'spreadsheet'
| 'text'
| 'delimitedtext'
| 'fixedwidth'
| 'xml'
| 'worddocument'
| 'html'
文件类型,指定为以逗号分隔的对组,该对组由 'FileType'
和下列值之一组成。
值 | 导入选项 |
---|---|
'spreadsheet' | |
'text' | |
'delimitedtext' |
|
'fixedwidth' |
|
'xml' |
|
'worddocument' |
|
'html' |
|
当 filename
不包含文件扩展名时,或当扩展名不是以下项之一时,请使用 'FileType'
名称-值对组参数:
.txt
、.dat
或.csv
(文本文件).xls
、.xlsb
、.xlsm
、.xlsx
、.xltm
、.xltx
或.ods
(电子表格文件).xml
(XML 文件).docx
(Microsoft Word 文档文件).html
、.xhtml
或.htm
(HTML 文件)
示例: 'FileType','text'
数据类型: char
| string
ReadRowNames
— 读取第一列以作为行名称的指示符
false
(默认) | true
| 0
| 1
读取第一列以作为行名称的指示符,指定为逗号分隔的对组,包含 'ReadRowNames'
和 false
、true
、0
或 1
。
指示符 | 描述 |
---|---|
| 当要读取的区域第一列包含的是数据而不是表的行名称时使用。 |
| 当要读取的区域第一列包含表的行名称时使用。 |
未指定 | 如果未指定,readtable 将假定为 false 。 |
注意:如果 'ReadVariableNames'
和 'ReadRowNames'
逻辑指示符都为 true
,则 readtable
将读取的区域第一行第一列中的名称保存为属性 T.Properties.DimensionNames
中的第一个维度名称。
如果除 opts
导入选项外您还指定了 ReadRowNames
参数,readtable
的行为将因您的指定而异:
如果
ReadRowNames
为true
,则通过使用导入选项对象的RowNamesRange
或RowNameColumn
属性从指定的文件中读取行名称。如果
ReadRowNames
为false
,则不导入行名称。
示例: 'ReadRowNames',true
TreatAsMissing
— 要作为空值处理的占位符文本
字符向量 | 字符向量元胞数组 | 字符串 | 字符串数组
要作为空值处理的占位符文本,指定为逗号分隔的对组,其中包含 'TreatAsMissing'
和一个字符向量、字符向量元胞数组、字符串或字符串数组。与这些字符对应的表元素设置为 NaN
。
'TreatAsMissing'
仅应用于表中的数值列,而 readtable
不接受数值文字,例如 '-99'
。
示例: 'TreatAsMissing','N/A'
或 'TreatAsMissing',"N/A"
将数值列内的 N/A
设置为 NaN
。
示例: 'TreatAsMissing',{'.','NA','N/A'}
或 'TreatAsMissing',[".","NA","N/A"]
将数值列内的 .
、NA
和 N/A
设置为 NaN
。
数据类型: char
| string
MissingRule
— 管理缺失数据的过程
'fill'
(默认) | 'error'
| 'omitrow'
| 'omitvar'
管理缺失数据的过程,指定为下表中的值之一。
缺失规则 | 行为 |
---|---|
'fill' | 用
|
'error' | 停止导入并显示一条错误消息,指出缺失的记录和字段。 |
'omitrow' | 忽略包含缺失数据的行。 |
'omitvar' | 忽略包含缺失数据的变量。 |
示例: 'MissingRule','omitrow'
数据类型: char
| string
EmptyRowRule
— 应用于表中空行的规则
"skip"
(默认) | "read"
| "error"
应用于表中空行的规则,指定为以下各项之一:
"skip"
- 跳过空行。"read"
- 读取空行。"error"
- 在表检测期间忽略空行,在读取时报错。
示例: "EmptyRowRule","read"
EmptyColumnRule
— 应用于表中空列的规则
"skip"
(默认) | "read"
| "error"
应用于表中空列的规则,指定为以下各项之一:
"skip"
- 跳过空列。"read"
- 读取空列。"error"
- 在表检测期间忽略空列,在读取时报错。
示例: "EmptyColumnRule","error"
TextType
— 导入的文本数据的类型
"string"
| "char"
导入文本数据的类型,指定为以下值之一:
"string"
- 将文本数据作为字符串数组导入。"char"
- 将文本数据作为字符向量导入。
示例: "TextType","char"
DatetimeType
— 导入日期时间数据的类型
'datetime'
(默认) | 'text'
| 'exceldatenum'
(仅限电子表格文件)
导入日期时间数据的类型,指定为以逗号分隔的对组,其中包含 'DatetimeType'
和下列值之一:'datetime'
、'text'
或 'exceldatenum'
。值 'exceldatenum'
仅适用于电子表格文件,对文本文件无效。
值 | 导入日期时间数据的类型 |
---|---|
'datetime' | MATLAB 有关详细信息,请参阅 |
'text' | 如果将
|
'exceldatenum' | Excel 日期序列值 日期序列值是一个数字,它等于从给定的参照日期开始计算的天数。Excel 日期序列值与 MATLAB 日期序列值使用不同的参照日期。有关 Excel 日期的详细信息,请参阅 Excel 中的 1900 和 1904 日期系统之间的差异。 |
示例: 'DatetimeType','datetime'
数据类型: char
| string
VariableNamingRule
— 保留变量名称的标志
"modify"
(默认) | "preserve"
保留变量名称的标志,指定为 "modify"
或 "preserve"
。
"modify"
- 将无效变量名称(由isvarname
函数确定)转换为有效的 MATLAB 标识符。"preserve"
- 保留作为无效 MATLAB 标识符的变量名称,如包含空白和非 ASCII 字符的变量名称。
从 R2019b 开始,变量名称和行名称可以包含任何字符,包括空格和非 ASCII 字符。此外,它们可以由任何字符(而不仅仅是字母)开头。变量名称和行名称可以不是有效的 MATLAB 标识符(由 isvarname
函数决定)。要保留这些变量名称和行名称,请将 VariableNamingRule
的值设置为 "preserve"
。当 VariableNamingRule
的值从 "modify"
更改为 "preserve"
时,变量名称不会刷新。
示例: "VariableNamingRule","preserve"
数据类型: char
| string
ImportErrorRule
— 处理导入错误的过程
'fill'
(默认) | 'error'
| 'omitrow'
| 'omitvar'
处理导入错误的过程,指定为下表中的值之一。
导入错误规则 | 行为 |
---|---|
'fill' | 用
|
'error' | 停止导入并显示一条错误消息,指出导致出错的记录和字段。 |
'omitrow' | 忽略发生错误的行。 |
'omitvar' | 忽略发生错误的变量。 |
示例: 'ImportErrorRule','omitvar'
数据类型: char
| string
WebOptions
— HTTP
或 HTTPS
请求选项
weboptions
对象
HTTP
或 HTTPS
请求选项,指定为 weboptions
对象。当指定的 filename
是包含协议类型 "http://"
或 "https://"
的 Internet URL 时,由 weboptions
对象确定如何导入数据。
TableIndex
— 要读取的表的索引
1
(默认) | 正整数
要从包含多个表的 Microsoft Word 文档或 HTML 文件中读取的表的索引,指定为正整数。
当您指定 TableIndex
时,软件会自动将 TableSelector
设置为等效的 XPath 表达式。
示例: 'TableIndex',2
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
MergedCellColumnRule
— 处理具有合并列的单元格的过程
"placeleft"
(默认) | "placeright"
| "duplicate"
| "omitrow"
| "error"
处理具有合并列的单元格的过程,指定为下表中的值之一。
导入错误规则 | 行为 |
---|---|
"placeleft" | 将数据放在最左边的单元格中,并用
|
"placeright" | 将数据放在最右边的单元格中,并用
|
"duplicate" | 在所有单元格中复制数据。 |
"omitrow" | 忽略发生错误的行。 |
"error" | 显示错误消息并中止导入操作。 |
示例: 'MergedCellColumnRule',"placeright"
MergedCellRowRule
— 处理具有合并行的单元格的过程
"placeleft"
(默认) | "placeright"
| "duplicate"
| "omitrow"
| "error"
处理具有合并行的单元格的过程,指定为下表中的值之一。
导入错误规则 | 行为 |
---|---|
"placetop" | 将数据放在顶部单元格中,并用
|
"placebottom" | 将数据放在底部单元格中,并用
|
"duplicate" | 在所有单元格中复制数据。 |
"omitvar" | 忽略发生合并行的变量。 |
"error" | 显示错误消息并中止导入操作。 |
示例: 'MergedCellRowRule',"duplicate"
VariableNamesRow
— 包含变量名称的行
非负整数
包含变量名称的行,指定为非负整数。
如果您没有指定
VariableNamesRow
,则软件会根据ReadVariableNames
参数读取变量名称。如果
VariableNamesRow
为0
,则软件不会导入变量名称。否则,软件将从指定的行导入变量名称。
示例: 'VariableNamesRow',2
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
VariableUnitsRow
— 包含变量单位的行
0
(默认) | 非负整数
包含变量单位的行,指定为非负整数。
如果 VariableUnitsRow
为 0
,则软件不会导入变量单位。否则,软件从指定的行导入变量单位。
示例: 'VariableUnitsRow',3
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
VariableDescriptionsRow
— 包含变量描述的行
0
(默认) | 非负整数
包含变量描述的行,指定为非负整数。
如果 VariableDescriptionsRow
为 0
,则软件不会导入变量描述。否则,软件将从指定的行导入变量描述。
示例: 'VariableDescriptionsRow',4
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
TableSelector
— 表数据 XPath 表达式
字符向量 | 字符串标量
表数据 XPath 表达式,指定为字符向量或字符串标量,读取函数使用它来选择输出表数据。您必须将 TableSelector
指定为有效的 XPath 版本 1.0 表达式。
示例: 'TableSelector','/RootNode/ChildNode'
FileType
— 文件类型
'spreadsheet'
| 'text'
| 'delimitedtext'
| 'fixedwidth'
| 'xml'
| 'worddocument'
| 'html'
文件类型,指定为以逗号分隔的对组,该对组由 'FileType'
和下列值之一组成。
值 | 导入选项 |
---|---|
'spreadsheet' | |
'text' | |
'delimitedtext' |
|
'fixedwidth' |
|
'xml' |
|
'worddocument' |
|
'html' |
|
当 filename
不包含文件扩展名时,或当扩展名不是以下项之一时,请使用 'FileType'
名称-值对组参数:
.txt
、.dat
或.csv
(文本文件).xls
、.xlsb
、.xlsm
、.xlsx
、.xltm
、.xltx
或.ods
(电子表格文件).xml
(XML 文件).docx
(Microsoft Word 文档文件).html
、.xhtml
或.htm
(HTML 文件)
示例: 'FileType','text'
数据类型: char
| string
ReadRowNames
— 读取第一列以作为行名称的指示符
false
(默认) | true
| 0
| 1
读取第一列以作为行名称的指示符,指定为逗号分隔的对组,包含 'ReadRowNames'
和 false
、true
、0
或 1
。
指示符 | 描述 |
---|---|
| 当要读取的区域第一列包含的是数据而不是表的行名称时使用。 |
| 当要读取的区域第一列包含表的行名称时使用。 |
未指定 | 如果未指定,readtable 将假定为 false 。 |
注意:如果 'ReadVariableNames'
和 'ReadRowNames'
逻辑指示符都为 true
,则 readtable
将读取的区域第一行第一列中的名称保存为属性 T.Properties.DimensionNames
中的第一个维度名称。
如果除 opts
导入选项外您还指定了 ReadRowNames
参数,readtable
的行为将因您的指定而异:
如果
ReadRowNames
为true
,则通过使用导入选项对象的RowNamesRange
或RowNameColumn
属性从指定的文件中读取行名称。如果
ReadRowNames
为false
,则不导入行名称。
示例: 'ReadRowNames',true
TreatAsMissing
— 要作为空值处理的占位符文本
字符向量 | 字符向量元胞数组 | 字符串 | 字符串数组
要作为空值处理的占位符文本,指定为逗号分隔的对组,其中包含 'TreatAsMissing'
和一个字符向量、字符向量元胞数组、字符串或字符串数组。与这些字符对应的表元素设置为 NaN
。
'TreatAsMissing'
仅应用于表中的数值列,而 readtable
不接受数值文字,例如 '-99'
。
示例: 'TreatAsMissing','N/A'
或 'TreatAsMissing',"N/A"
将数值列内的 N/A
设置为 NaN
。
示例: 'TreatAsMissing',{'.','NA','N/A'}
或 'TreatAsMissing',[".","NA","N/A"]
将数值列内的 .
、NA
和 N/A
设置为 NaN
。
数据类型: char
| string
MissingRule
— 管理缺失数据的过程
'fill'
(默认) | 'error'
| 'omitrow'
| 'omitvar'
管理缺失数据的过程,指定为下表中的值之一。
缺失规则 | 行为 |
---|---|
'fill' | 用
|
'error' | 停止导入并显示一条错误消息,指出缺失的记录和字段。 |
'omitrow' | 忽略包含缺失数据的行。 |
'omitvar' | 忽略包含缺失数据的变量。 |
示例: 'MissingRule','omitrow'
数据类型: char
| string
EmptyRowRule
— 应用于表中空行的规则
"skip"
(默认) | "read"
| "error"
应用于表中空行的规则,指定为以下各项之一:
"skip"
- 跳过空行。"read"
- 读取空行。"error"
- 在表检测期间忽略空行,在读取时报错。
示例: "EmptyRowRule","read"
EmptyColumnRule
— 应用于表中空列的规则
"skip"
(默认) | "read"
| "error"
应用于表中空列的规则,指定为以下各项之一:
"skip"
- 跳过空列。"read"
- 读取空列。"error"
- 在表检测期间忽略空列,在读取时报错。
示例: "EmptyColumnRule","error"
TextType
— 导入的文本数据的类型
"string"
| "char"
导入文本数据的类型,指定为以下值之一:
"string"
- 将文本数据作为字符串数组导入。"char"
- 将文本数据作为字符向量导入。
示例: "TextType","char"
DatetimeType
— 导入日期时间数据的类型
'datetime'
(默认) | 'text'
| 'exceldatenum'
(仅限电子表格文件)
导入日期时间数据的类型,指定为以逗号分隔的对组,其中包含 'DatetimeType'
和下列值之一:'datetime'
、'text'
或 'exceldatenum'
。值 'exceldatenum'
仅适用于电子表格文件,对文本文件无效。
值 | 导入日期时间数据的类型 |
---|---|
'datetime' | MATLAB 有关详细信息,请参阅 |
'text' | 如果将
|
'exceldatenum' | Excel 日期序列值 日期序列值是一个数字,它等于从给定的参照日期开始计算的天数。Excel 日期序列值与 MATLAB 日期序列值使用不同的参照日期。有关 Excel 日期的详细信息,请参阅 Excel 中的 1900 和 1904 日期系统之间的差异。 |
示例: 'DatetimeType','datetime'
数据类型: char
| string
VariableNamingRule
— 保留变量名称的标志
"modify"
(默认) | "preserve"
保留变量名称的标志,指定为 "modify"
或 "preserve"
。
"modify"
- 将无效变量名称(由isvarname
函数确定)转换为有效的 MATLAB 标识符。"preserve"
- 保留作为无效 MATLAB 标识符的变量名称,如包含空白和非 ASCII 字符的变量名称。
从 R2019b 开始,变量名称和行名称可以包含任何字符,包括空格和非 ASCII 字符。此外,它们可以由任何字符(而不仅仅是字母)开头。变量名称和行名称可以不是有效的 MATLAB 标识符(由 isvarname
函数决定)。要保留这些变量名称和行名称,请将 VariableNamingRule
的值设置为 "preserve"
。当 VariableNamingRule
的值从 "modify"
更改为 "preserve"
时,变量名称不会刷新。
示例: "VariableNamingRule","preserve"
数据类型: char
| string
ImportErrorRule
— 处理导入错误的过程
'fill'
(默认) | 'error'
| 'omitrow'
| 'omitvar'
处理导入错误的过程,指定为下表中的值之一。
导入错误规则 | 行为 |
---|---|
'fill' | 用
|
'error' | 停止导入并显示一条错误消息,指出导致出错的记录和字段。 |
'omitrow' | 忽略发生错误的行。 |
'omitvar' | 忽略发生错误的变量。 |
示例: 'ImportErrorRule','omitvar'
数据类型: char
| string
WebOptions
— HTTP
或 HTTPS
请求选项
weboptions
对象
HTTP
或 HTTPS
请求选项,指定为 weboptions
对象。当指定的 filename
是包含协议类型 "http://"
或 "https://"
的 Internet URL 时,由 weboptions
对象确定如何导入数据。
TableIndex
— 要读取的表的索引
1
(默认) | 正整数
要从包含多个表的 Microsoft Word 文档或 HTML 文件中读取的表的索引,指定为正整数。
当您指定 TableIndex
时,软件会自动将 TableSelector
设置为等效的 XPath 表达式。
示例: 'TableIndex',2
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
MergedCellColumnRule
— 处理具有合并列的单元格的过程
"placeleft"
(默认) | "placeright"
| "duplicate"
| "omitrow"
| "error"
处理具有合并列的单元格的过程,指定为下表中的值之一。
导入错误规则 | 行为 |
---|---|
"placeleft" | 将数据放在最左边的单元格中,并用
|
"placeright" | 将数据放在最右边的单元格中,并用
|
"duplicate" | 在所有单元格中复制数据。 |
"omitrow" | 忽略发生错误的行。 |
"error" | 显示错误消息并中止导入操作。 |
示例: 'MergedCellColumnRule',"placeright"
MergedCellRowRule
— 处理具有合并行的单元格的过程
"placeleft"
(默认) | "placeright"
| "duplicate"
| "omitrow"
| "error"
处理具有合并行的单元格的过程,指定为下表中的值之一。
导入错误规则 | 行为 |
---|---|
"placetop" | 将数据放在顶部单元格中,并用
|
"placebottom" | 将数据放在底部单元格中,并用
|
"duplicate" | 在所有单元格中复制数据。 |
"omitvar" | 忽略发生合并行的变量。 |
"error" | 显示错误消息并中止导入操作。 |
示例: 'MergedCellRowRule',"duplicate"
VariableNamesRow
— 包含变量名称的行
非负整数
包含变量名称的行,指定为非负整数。
如果您没有指定
VariableNamesRow
,则软件会根据ReadVariableNames
参数读取变量名称。如果
VariableNamesRow
为0
,则软件不会导入变量名称。否则,软件将从指定的行导入变量名称。
示例: 'VariableNamesRow',2
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
VariableUnitsRow
— 包含变量单位的行
0
(默认) | 非负整数
包含变量单位的行,指定为非负整数。
如果 VariableUnitsRow
为 0
,则软件不会导入变量单位。否则,软件从指定的行导入变量单位。
示例: 'VariableUnitsRow',3
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
VariableDescriptionsRow
— 包含变量描述的行
0
(默认) | 非负整数
包含变量描述的行,指定为非负整数。
如果 VariableDescriptionsRow
为 0
,则软件不会导入变量描述。否则,软件将从指定的行导入变量描述。
示例: 'VariableDescriptionsRow',4
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
TableSelector
— 表数据 XPath 表达式
字符向量 | 字符串标量
表数据 XPath 表达式,指定为字符向量或字符串标量,读取函数使用它来选择输出表数据。您必须将 TableSelector
指定为有效的 XPath 版本 1.0 表达式。
示例: 'TableSelector','/RootNode/ChildNode'
提示
XLSX 格式的大文件有时会加载缓慢。为了获得更好的导入和导出性能,Microsoft 推荐您使用 XLSB 格式。
使用 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
扩展功能
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
用法说明和限制:
基于线程的环境支持文本文件和电子表格文件工作流。
版本历史记录
在 R2013b 中推出R2023a: 在基于线程的环境中使用函数
此函数支持文本文件和电子表格文件工作流的基于线程的环境。
R2020a: 默认情况下使用 detectImportOptions
函数的结果导入表格数据
默认情况下,readtable
函数使用 detectImportOptions
函数的结果来导入表格数据。本质上,这两个函数的调用行为相同。
T = readtable(filename) T = readtable(filename,detectImportOptions(filename))
在 R2020a 中,readtable
的默认行为与其以前版本中的默认行为有几个不同之处。
输入字段或行的描述 |
| 在以前版本中的默认行为 |
---|---|---|
第一行不包含作为输出表变量名称分配的文本 | 将名称 | 将第一行数据值转换为输出表变量的名称 |
多行文本作为标题行 |
|
|
空字段 | 视为检测到的数据类型的缺失值 | 视为空字符向量或字符串 |
引号中的值 | 视为检测到的数据类型 | 视为文本 |
无法转换的文本 | 视为检测到的数据类型的缺失值 | 视为文本 |
数值字符后跟非数值字符,两者之间没有分隔符 | 将字符视为非数值 | 将数值字符和非数值字符视作由分隔符隔开 |
输入文本文件的行具有不同数量的分隔符 | 返回具有额外变量的输出表 | 引发错误消息 |
要使用 R2019b 及之前的默认行为调用 readtable
,请使用 'Format','auto'
名称-值对组参数。
T = readtable(filename,'Format','auto')
另请参阅
函数
writetable
|table
|textscan
|detectImportOptions
|preview
|readtimetable
|readcell
|readmatrix
|readvars
|setvaropts
实时编辑器任务
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)