主要内容

本页翻译不是最新的。点击此处可查看最新英文版本。

readtable

基于文件创建表

说明

T = readtable(filename) 通过从文本文件、电子表格(包括 Microsoft® Excel®)文件、XML 文件、HTML 文件或 Microsoft Word 文档中读取列向数据来创建表。readtable 检测数据元素,如分隔符和数据类型,以确定如何导入数据。

示例

T = readtable(filename,Name=Value) 使用一个或多个名称-值参量指定选项。例如,通过使用 ReadVariableNames 名称-值参量,可以将文件的第一行作为变量名称或数据读取。

示例

T = readtable(filename,opts) 使用导入选项对象 opts 指定的选项创建表。使用导入选项对象来配置 readtable 解读文件的方式。与名称-值参量相比,导入选项对象在文件导入配置上可以提供更多的控制、更好的性能,并可重复使用。

示例

T = readtable(filename,opts,Name=Value) 使用导入选项对象和名称-值参量创建表。如果除了导入选项对象之外还指定名称-值参量,则 readtable 对文本文件仅支持 ReadVariableNamesReadRowNamesDateLocaleEncoding 名称-值参量,对电子表格文件仅支持 ReadVariableNamesReadRowNamesSheetUseExcel 名称-值参量。

示例

全部折叠

将文本文件的内容导入表中。生成的表为文件中的每一列包含一个变量,并使用文件第一行中的条目作为变量名。

File contents of myCsvTable.dat

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  

使用电子表格的指定区域中的数据创建表。使用 C2E6 两个对角之间的 5×3 矩形区域内的数据。不要将该区域的第一行用作变量名称。结果表改用默认变量名称。

T = readtable("patients.xls",Range="C2:E6",ReadVariableNames=false)
T=5×3 table
    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 

使用导入选项对象配置 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    

将 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>

首先,使用 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=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 文档中的表导入 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
          Var1                      Var2            
    ________________    ____________________________

    "readtable"         "Create table from file"    
    "writetable"        "Write table to file"       
    "readtimetable"     "Create timetable from file"
    "writetimetable"    "Write timetable to file"   

输入参数

全部折叠

要读取的文件的名称,指定为字符串标量或字符向量。readtable 支持从文本、电子表格、XML、Microsoft Word 和 HTML 文件中读取数据。

如果 filename 不包含扩展名,请使用 FileType 名称-值参量来指示文件格式。默认情况下,readtable 会根据在输入文件的每列中检测到的数据值来创建具有适当数据类型的变量。

根据文件的位置,filename 可以采用下列形式之一。

位置

形式

当前文件夹或 MATLAB® 路径上的文件夹

指定 filename 中文件的名称。

示例:"myFile.txt"

文件夹中的文件

如果该文件不在当前文件夹或 MATLAB 路径下的文件夹中,则在 filename 中指定完整或相对路径名称。

例如:"C:\myFolder\myFile.xlsx"

示例:"dataDir\myFile.txt"

Internet URL

如果文件指定为 Internet 统一资源定位器 (URL),则 filename 必须包含协议类型 "http://""https://"

例如:"http://hostname/path_to_file/my_data.csv"

远程位置

如果文件存储在远程位置,则 filename 必须包含用以下格式指定的文件的完整路径:

scheme_name://path_to_file/my_file.ext

根据远程位置,scheme_name 可以是下表中的值之一。

远程位置scheme_name
Amazon S3™s3
Windows Azure® Blob 存储wasb, wasbs
HDFS™hdfs

有关详细信息,请参阅处理远程数据

示例: "s3://bucketname/path_to_file/my_file.csv"

示例: "wasbs://path_to_file/my_file.csv"

示例: "hdfs:///path_to_file/my_file.csv"

文本文件

  • 扩展名为 .txt.dat.csv 的文件读取为带分隔符的文本文件。

  • 默认情况下,readtable 为文件中的每列创建一个表变量,并从文件的第一行读取变量名称。对于数值变量,空字段转换为 NaN,对于文本变量,则转换为空字符向量。文件中的空白被忽略。

  • 文本文件中的所有行必须有相同数量的分隔符。

有关常用的文本文件工作流,请参阅将数据从文本文件导入表

电子表格文件

  • 扩展名为 .xls.xlsb.xlsm.xlsx.xltm.xltx.ods 的文件读取为电子表格文件。

  • 默认情况下,readtable 为文件中的每列创建一个表变量,并从文件的第一行读取变量名称。

  • 在安装了 Microsoft Excel 软件的 Windows® 系统上,readtable 能够读取您的 Excel 版本可识别的任何 Excel 电子表格文件格式。如果您的系统没有 Windows 版 Microsoft Excel 或者您正在使用 MATLAB Online™,则 readtableUseExcel 属性设置为 false 的情况下运行,并且只读取具有 .xls.xlsm.xlsx.xltm.xltx 扩展名的文件。

  • XLSX 格式的大文件有时会加载缓慢。为了获得更好的导入和导出性能,Microsoft 推荐您使用 XLSB 格式。

有关常用的电子表格文件工作流,请参阅将电子表格数据读入到表中

XML 文件

(自 R2021a 起)

  • 扩展名为 .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 对象
XML 文件XMLImportOptions 对象
Microsoft Word 文档WordDocumentImportOptions 对象
HTML 文件HTMLImportOptions 对象

有关如何控制导入的详细信息,请参阅Control How MATLAB Imports Your Data

名称-值参数

全部展开

Name1=Value1,...,NameN=ValueN 的形式指定可选参量对组,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

示例: readtable(filename,ReadVariableNames=false) 指定将文件的第一行作为数据而不是变量名称读取。

数据和标题位置

全部展开

文件开头要跳过的标题行数,指定为非负整数。如果未指定此名称-值参量,readtable 会自动检测要跳过的行数。

变量名称和数据的读取从第一个非标题行开始。

数据类型: single | double

要从文件中读取的范围,指定为以下形式之一的字符串标量、字符向量或数值向量。

指定 Range 的方式 描述

"Cell"[row col]

起始元素

将数据的起始元素指定为以下值之一:

  • 字符串标量或字符向量,包含使用电子表格 A1 表示法的列字母和行号。例如,A5 是第 A 列与第 5 行相交处的元素的标识符。

  • 二元素数值向量,形式为 [row col],表示起始行和列。

readtable 根据起始元素自动检测数据范围,从起始元素开始导入,并在到达最后一个空行时结束。

例如:"A5"

示例:[5 1]

"Corner1:Corner2"[r1 c1 r2 c2]

矩形范围

将数据的矩形范围指定为以下值之一:

  • "Corner1:Corner2" 形式的字符串标量或字符向量,其中 Corner1Corner2 是定义区域的两个对角。例如,"D2:H4" 表示文件中两个角落 D2H4 之间的 3×5 矩形区域。Range 名称-值参量使用电子表格 A1 表示法,不区分大小写。

  • [r1 c1 r2 c2] 形式的四元素数值向量,指示起始行、起始列、结束行和结束列。例如,[2 3 15 13] 表示文件中第 2 行到第 15 行和第 3 列到第 13 列之间的 14×11 矩形区域。

readtable 仅读取指定范围内包含的数据。指定范围内的任何空字段都作为缺失值导入。

列数必须与 ExpectedNumVariables 名称-值参量中的指定的数字匹配。

示例:"D2:H4"

示例:[2 3 15 13]

"Row1:Row2"

行范围

使用行号以 "Row1:Row2" 形式的字符串标量或字符向量指定起始行和结束行。

根据指定的行范围,readtable 通过从第一个非空列开始读取,一直到数据的最后,从而自动检测列范围,并为每一列创建一个变量。

示例:"1:7" 读取第 1 行到第 7 行(包括这两行)中的所有列。

"Column1:Column2"

列范围

使用 A1 表示法的列字母以 "Column1:Column2" 形式的字符串标量或字符向量指定起始列和结束列。

readtable 根据指定的列范围自动检测行范围,从第一个非空行开始读取,一直到数据的最后。

列数必须与 ExpectedNumVariables 名称-值参量中的指定的数字匹配。

示例:"A:F" 读取 A 到 F 列(包括这两列)中的所有行。

"NamedRange"

命名范围(仅限电子表格)

您可以创建名称来标识电子表格中的范围。例如,您可以选择电子表格的一个矩形部分,并将其命名为 "myTable"。如果电子表格具有命名范围,则 readtable 可以使用其名称读取该范围。

""

未指定或为空

如果未指定此名称-值参量,readtable 会自动检测使用的范围。

注意:使用范围是指文件中实际包含数据的矩形部分。readtable 通过删减不包含数据的前导和尾随的行和列,自动检测使用范围。只包含空白的文本被视为数据,并会在使用范围内被捕获。

数据的位置,指定为以下形式之一的字符串标量、字符向量、正整数或 N×2 正整数数组。

指定 DataRange 的方式描述

"Cell"

起始单元格

使用 A1 表示法将数据的起始单元格指定为包含列字母和行号的字符串标量或字符向量。例如,A5 是第 A 列与第 5 行相交处的单元格的标识符。

readtable 根据起始单元格自动检测数据范围,从起始单元格开始导入,并在到达最后一个空行或页脚范围时结束。

例如:"A5"

n

起始行

使用正行索引指定包含数据的起始行。

readtable 根据指定的行索引自动检测数据范围,从指定的第一行开始读取,一直到数据的最后或页脚范围。

示例:5

"Corner1:Corner2"

矩形范围

使用 "Corner1:Corner2" 形式指定该范围,其中 Corner1Corner2 是定义区域的两个对角。

readtable 仅读取指定范围内包含的数据。指定范围内的任何空字段都作为缺失值导入。

例如:"A5:K50"

"Row1:Row2"

行范围

使用行号以 "Row1:Row2" 形式的字符串标量或字符向量指定起始行和结束行。

根据指定的行范围,readtable 通过从第一个非空列开始读取,一直到数据的最后,从而自动检测列范围,并为每一列创建一个变量。

例如:"5:500"

"Column1:Column2"

列范围

使用 A1 表示法的列字母以 "Column1:Column2" 形式的字符串标量或字符向量指定起始列和结束列。

readtable 根据指定的列范围自动检测行范围,从第一个非空行开始读取,一直到数据的最后。

例如:"A:K"

[n1 n2; n3 n4; ...]

多个行范围

使用包含 N 个不同行范围的 N×2 数组指定多个行范围。

包含多个行范围的有效数组必须满足以下条件:

  • 按递增顺序指定行范围。

  • 仅包含不重叠的行范围。

仅支持对数值数组中的最后一个行范围使用 Inf

示例:[1 3; 5 6; 8 Inf]

""

不读取任何数据。

例如:""

要读取的工作表,指定为正整数(指示工作表索引)或者指定为字符串标量或字符向量(包含工作表名称)。默认情况下,readtable 读取第一个工作表。

如果指定字符串标量或字符向量,则工作表名称不能包含冒号 (:)。要确定电子表格文件中工作表的名称,请使用 sheets = sheetnames(filename)。有关详细信息,请参阅 sheetnames

如果除 opts 外您还指定了 Sheetreadtable 函数将使用为 Sheet 参量指定的值,而覆盖导入选项中定义的工作表名称。

示例: 2

示例: "MySheetName"

要从一个包含多个表的文件中读取的表的索引,指定为正整数。默认情况下,readtable 读取第一个表。

如果指定 TableIndexreadtable 函数会自动将 TableSelector 设置为等效的 XPath 表达式。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

要读取的表的 XPath 表达式,指定为字符串标量或字符向量。您必须将 TableSelector 指定为有效的 XPath 版本 1.0 表达式。

选取操作语法
选择其名称与您要选择的节点匹配的每个节点,而无论它在文档中的位置如何。在名称前加两个正斜杠 (//) 前缀。
选择属于元素节点的属性的值。在属性前加 at 符号 (@) 前缀。
在一组节点中选择一个特定节点。在方括号 ([]) 中提供要选择的节点的索引。
指定运算的优先级。在要首先计算的表达式前后添加圆括号。

如果未指定此名称-值参量,readtable 会检测表的位置。

示例: "//table[1]"

要读取的表数据的 XML 节点名称,指定为字符串标量或字符向量。

跨列合并单元格的规则,指定为下表中的值之一。

导入规则行为
"placeleft"

将数据放在最左侧单元格中,并基于 MissingRule 的值用 FillValue 属性的内容填充其余单元格。如果 MissingRule"fill"(默认值),则使用 FillValue 填充单元格。

您可以在要导入的变量的 VariableImportOptions 对象中设置 FillValue 属性。有关设置 FillValue 属性的详细信息,请参阅 setvaropts

"placeright"

将数据放在最右侧单元格中,并基于 MissingRule 的值用 FillValue 属性的内容填充其余单元格。如果 MissingRule"fill"(默认值),则使用 FillValue 填充单元格。

您可以在要导入的变量的 VariableImportOptions 对象中设置 FillValue 属性。有关设置 FillValue 属性的详细信息,请参阅 setvaropts

"duplicate"

在所有单元格中复制数据。

"omitrow"忽略出现合并单元格的行。
"error"显示错误消息并取消导入操作。

跨行合并单元格的规则,指定为下表中的值之一。

导入规则行为
"placetop"

将数据放在顶部单元格中,并基于 MissingRule 的值用 FillValue 属性的内容填充其余单元格。如果 MissingRule"fill"(默认值),则使用 FillValue 填充单元格。

您可以在要导入的变量的 VariableImportOptions 对象中设置 FillValue 属性。有关设置 FillValue 属性的详细信息,请参阅 setvaropts

"placebottom"

将数据放在底部单元格中,并基于 MissingRule 的值用 FillValue 属性的内容填充其余单元格。如果 MissingRule"fill"(默认值),则使用 FillValue 填充单元格。

您可以在要导入的变量的 VariableImportOptions 对象中设置 FillValue 属性。有关设置 FillValue 属性的详细信息,请参阅 setvaropts

"duplicate"

在所有单元格中复制数据。

"omitvar"省略出现合并单元格的变量。
"error"显示错误消息并取消导入操作。

变量

全部展开

是否读取变量名称,指定为数值或逻辑值 1 (true) 或 0 (false)。如果未指定此名称-值参量,readtable 会自动检测在标题行后是否存在变量名称。

指示符

描述

true

读取变量名称。

如果您还指定导入选项对象 opts,则 readtable 使用 optsVariableNamesRangeVariableNamesLine 属性来标识变量名称的位置。

false

不读取变量名称。创建 "Var1",...,"VarN" 形式的默认变量名称,其中 N 是变量的数量。

如果您还指定导入选项对象 opts,则 readtable 使用 optsVariableNames 属性创建变量名称。

未指定

自动检测区域是否包含变量名称。

如果 ReadVariableNamesReadRowNames 都为 true,则 readtable 将读取的区域第一行第一列中的名称保存为属性 T.Properties.DimensionNames 中的第一个维度名称。

变量名称的规则,指定为以下值之一:

  • "modify" - 将无效变量名称(由 isvarname 函数确定)转换为有效的 MATLAB 标识符。此值是文本文件和电子表格文件的默认值。

  • "preserve" - 保留作为无效 MATLAB 标识符的变量名称,如包含空白和非 ASCII 字符的变量名称。此值是 XML、Microsoft Word 和 HTML 文件的默认值。

变量名称和行名称可以不是有效的 MATLAB 标识符。它们可以包含任何字符,包括空格和非 ASCII 字符。此外,它们可以由任何字符(而不仅仅是字母)开头。

预期的变量数,指定为非负整数。如果未指定此名称-值参量,readtable 会自动检测变量数。

变量名称的位置,指定为非负整数。

如果 VariableNamesLine0,则 readtable 不导入变量名称。否则,readtable 将从指定的行中导入变量名称。

如果存在变量名称,且 VariableNamesLineReadVariableNames 均未指定,则 readtable 检测哪一行包含变量名称并导入它们。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

变量名称的位置,指定为以下形式之一的字符串标量、字符向量或正整数。

指定 VariableNamesRange 的方式描述

"Cell"

起始单元格

使用 A1 表示法将变量名称的起始单元格指定为包含列字母和行号的字符串标量或字符向量。

示例:"A5" 标识列 A 和行 5 相交处的单元格。

"Corner1:Corner2"

矩形范围

使用 "Corner1:Corner2" 形式指定该范围,其中 Corner1Corner2 是定义变量名称区域的两个对角。

范围只能跨一行。

例如:"A5:K5"

n

数值索引

使用正行索引指定包含变量名称的行。

示例:5

"Row1:Row2"

行范围

使用 "Row1:Row2" 形式指定该范围,其中 Row1Row2 是相同的行索引。

变量名称必须在一行中。

例如:"5:5"

""

未指定或为空

指示没有变量名称。

例如:""

数据类型: string | char | single | double

变量名称的位置,指定为非负整数。

如果 VariableNamesRow0,则 readtable 不导入变量名称。否则,readtable 将从指定的行中导入变量名称。

如果未指定 VariableNamesRow,且 ReadVariableNamestrue(默认值),则 readtable 导入变量名称。如果两者均未指定,则 readtable 检测是否有一行包含要导入的变量名称。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

要作为表变量读取的 XML 节点的名称,指定为字符串数组或字符向量元胞数组。如果嵌套节点具有相同的名称,则 VariableNodeNames 选择位于顶层的节点。

示例: ["XMLNodeName1","XMLNodeName2"]

要读取的变量的 XPath 表达式,指定为字符串数组或字符向量元胞数组。您必须将 VariableSelectors 指定为有效的 XPath 版本 1.0 表达式。

使用 XPath 表达式指定要导入的 XML 输入文件的元素。例如,假设您要导入 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>

选取操作语法示例
选择其名称与您要选择的节点匹配的每个节点,而无论它在文档中的位置如何。在名称前加两个正斜杠 (//) 前缀。

选择每个名为 var 的节点。

T = readtable("myFile.xml",VariableSelectors="//var")
选择属于元素节点的属性的值。在属性前加 at 符号 (@) 前缀。

选择 table 节点的 category 属性的值。

T = readtable("myFile.xml",VariableSelectors="//table/@category")
在一组节点中选择一个特定节点。在方括号 ([]) 中提供要选择的节点的索引。

选择每个 var 节点的第一个 table 节点。

T = readtable("myFile.xml",VariableSelectors="//table/var[1]")
指定运算的优先级。在要首先计算的表达式前后添加圆括号。

选择每个 var 节点的第一个 table 节点。

T = readtable("myFile.xml",VariableSelectors="//table/var[1]")

选择第一个 table 节点的第一个 var 节点。

T = readtable("myFile.xml",VariableSelectors="(//table/var)[1]")

如果未指定此名称-值参量,readtable 会检测变量的位置。

是否串联数据,指定为数值或逻辑值 1 (true) 或 0 (false)。如果 CollectOutputtrue,则 readtable 会将同一 MATLAB 基础类的连续输出元胞串联为单个数组。

全部展开

是否读取第一列作为行名称,指定为数值或逻辑值 1 (true) 或 0 (false)。

描述

true

从要读取的区域的第一列读取行名称。

如果您还指定导入选项对象 opts,则 readtable 使用 optsRowNamesColumnRowNamesRangeRowNamesSelector 属性来标识行名称的位置。

false

从区域的第一列读取数据并且不创建行名称。

如果 ReadVariableNamesReadRowNames 都为 true,则 readtable 将读取的区域第一行第一列中的名称保存为属性 T.Properties.DimensionNames 中的第一个维度名称。

行名称的位置,指定为非负整数。

如果 RowNamesColumn0,则 readtable 不导入行名称。否则,readtable 从指定列导入行名称。

如果未指定 RowNamesColumn,且 ReadRowNamestrue,则 readtable 将第一列作为行名称导入。

行名称的位置,指定为以下形式之一的字符串标量、字符向量或正整数。

指定 RowNamesRange 的方式描述

"Cell"

起始单元格

使用 A1 表示法将行名称的起始单元格指定为包含列字母和行号的字符串标量或字符向量。

从起始单元格开始,readtable 为数据中的每行标识一个名称。

示例:"A5" 标识列 A 和行 5 相交处的单元格。

"Corner1:Corner2"

矩形范围

使用 "Corner1:Corner2" 形式指定该范围,其中 Corner1Corner2 是定义行名称区域的两个对角。

行数必须与数据行的数量匹配,并且范围只能跨一列。

例如:"A5:A50"

"Column1:Column1"

列范围

使用 "Column1:Column1" 形式指定该范围,其中 Column1Column2 是相同的列字母。

行名称必须在单独一列中。

示例:"A:A"

n

数值索引

使用正列索引指定包含行名称的列。

示例:5

""

未指定或为空

指示没有行名称。

例如:""

数据类型: string | char | single | double

行名称的 XPath 表达式,指定为字符串标量或字符向量。您必须将 RowNamesSelector 指定为有效的 XPath 版本 1.0 表达式。

如果未指定此名称-值参量,readtable 不会导入行名称。

示例: "/RootNode/ChildNode"

用于从表中选择各行的 XPath 表达式,指定为字符串标量或字符向量。您必须将 RowSelector 指定为有效的 XPath 版本 1.0 表达式。

如果未指定此名称-值参量,readtable 会检测行的位置。

示例: "/RootNode/ChildNode"

指定行的 XML 节点,指定为字符串标量或字符向量。

数据类型

全部展开

导入文本数据的类型,指定为以下值之一:

  • "char" - 将文本数据作为字符向量导入。此值是文本文件和电子表格文件的默认值。

  • "string" - 将文本数据作为字符串数组导入。此值是 XML、Microsoft Word 和 HTML 文件的默认值。

导入的日期时间数据的类型,指定为下表中的值之一。

生成的数据类型
"datetime"

MATLAB datetime 数据类型

"text"

数据类型取决于 TextType 的值。

  • 如果 TextType"char",则日期是字符向量元胞数组。

  • 如果 TextType"string",则日期是字符串数组。

"exceldatenum"

Excel 日期序列值

此值仅对电子表格文件有效。

日期序列值是一个数字,它等于从给定的参照日期开始计算的天数。Excel 日期序列值与 MATLAB 日期序列值使用不同的参照日期。有关 Excel 日期的详细信息,请参阅 Excel 中的 1900 和 1904 日期系统之间的差异

导入的持续时间数据的类型,指定为下表中的值之一。

生成的数据类型
"duration"

MATLAB duration 数据类型

"text"

数据类型取决于 TextType 的值。

  • 如果 TextType"char",则持续时间数据是字符向量元胞数组。

  • 如果 TextType"string",则持续时间数据是字符串数组。

导入的十六进制数据的类型,指定为下表中的值之一。

生成的数据类型

"auto"

检测到的数据类型;readtable 确定可以表示所有变量值的最小整数类型。

"text"

未更改的输入文本

"int8"

8 位有符号整数

"int16"

16 位有符号整数

"int32"

32 位有符号整数

"int64"

64 位有符号整数

"uint8"

8 位无符号整数

"uint16"

16 位无符号整数

"uint32"

32 位无符号整数

"uint64"

64 位无符号整数

输入文件能够以文本形式表示十六进制值,使用 0x0X 作为前缀,以字符 0-9a-fA-F 作为数字。大写和小写字母表示相同的数字 - 例如,"0xf""0xF" 都表示 15。

导入的二进制数据的类型,指定为下表中的值之一。

生成的数据类型

"auto"

检测到的数据类型;readtable 确定可以表示所有变量值的最小整数类型。

"text"

未更改的输入文本

"int8"

8 位有符号整数

"int16"

16 位有符号整数

"int32"

32 位有符号整数

"int64"

64 位有符号整数

"uint8"

8 位无符号整数

"uint16"

16 位无符号整数

"uint32"

32 位无符号整数

"uint64"

64 位无符号整数

输入文件能够以文本形式表示二进制值,使用 0b0B 作为前缀,以字符 01 作为数字。例如,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)。例如,如果 TrimNonNumerictrue,则 readtable"$500/-" 读取为 500

数值变量中的小数分隔符,指定为字符串标量或单字符字符向量。分隔符用于区分数值的整数部分和小数部分。例如,如果分隔符是 ",",则 readtable 将文本 "3,14159" 作为数值 3.14159 导入。

当转换为整数数据类型时,readtable 将具有小数部分的数值舍入到最接近的整数。DecimalSeparator 不接受数字作为值。

数值变量中的千分位字符,指定为字符串标量或字符向量。千分位字符作为视觉分隔符,用于每隔三位对数值进行分组。例如,如果千分位字符是 ",",则 readtable 将文本 "1,234,000" 作为 1234000 导入。

指数字符,指定为字符串标量或字符向量。默认的指数字符为 eEdD

示例: "eE"

数据清洗

全部展开

视为缺失值的占位符文本,指定为字符串数组、字符向量或字符向量元胞数组。readtable 将此占位符文本对应的表元素作为与元素数据类型关联的缺失值导入。

示例: "N/A"

示例: [".","NA","N/A"]

导入错误的规则,指定为下表中的值之一。当 readtable 无法将文本元素转换为预期的数据类型时,会发生导入错误。

导入错误规则行为
"fill"

FillValue 属性的内容替代出现错误的数据。

您可以在要导入的变量的 VariableImportOptions 对象中设置 FillValue 属性。有关设置 FillValue 属性的详细信息,请参阅 setvaropts

"error"显示错误消息并取消导入操作。
"omitrow"忽略发生错误的行。
"omitvar"忽略发生错误的变量。

缺失数据的规则,指定为下表中的值之一。

缺失规则行为
"fill"

FillValue 属性的内容替代缺失的数据。

您可以在要导入的变量的 VariableImportOptions 对象中设置 FillValue 属性。有关设置 FillValue 属性的详细信息,请参阅 setvaropts

"error"显示错误消息并取消导入操作。
"omitrow"忽略包含缺失数据的行。
"omitvar"忽略包含缺失数据的变量。

对于文本文件,如果行中不存在预期字段,则认为数据缺失。由于缺失字段会导致行的后续元素移动字段,因此缺失的字段在行的末尾解释。

对于电子表格文件,如果行中的预期字段没有数据,并且字段类型为空白或空,则认为数据缺失。

对于 XML 文件,如果预期节点不存在,则认为数据缺失。

对于 Microsoft Word 文件,如果行中不存在预期字段,则认为数据缺失。

对于 HTML 文件,如果行中不存在预期字段,则认为数据缺失。

数据中附加列的规则,指定为下表中的值之一。如果一行的列数多于预期,则 readtable 认为存在附加列。

附加列规则行为
"addvars"

要导入附加列,需要创建新变量。如果有 N 个附加列,将以 "ExtraVar1","ExtraVar2",...,"ExtraVarN" 的形式导入新变量。

readtable 将附加列作为数据类型为 char 的文本导入。

"ignore"忽略附加列数据。
"wrap"将附加列数据换行到新记录中。此操作不会更改变量的数量。
"error"显示错误消息并取消导入操作。

带分隔符的文本文件中空数值字段的返回值,指定为 NaN 或数值标量。

示例: 0

数据中空行的规则,指定为下表中的值之一。如果一行仅包含空白字符,则 readtable 认为它是空行。

空行规则行为
"skip"跳过空行。
"read"导入空行。readtable 使用 VariableWidthsVariableOptionsMissingRule 中指定的值及其他相关参量(如 Whitespace)来解析空行。
"error"显示错误消息并取消导入操作。

数据中空行的规则,指定为下表中的值之一。

空行规则行为
"skip"跳过空行。
"read"导入空行。readtable 使用 VariableWidthsVariableOptionsMissingRule 和其他相关参量(如 Whitespace)中指定的值解析空行。
"error"显示错误消息并取消导入操作。

数据中空列的规则,指定为下表中的值之一。

空列规则行为
"skip"跳过空列。
"read"导入空列。readtable 使用 VariableWidthsVariableOptionsMissingRule 和其他相关参量(如 Whitespace)中指定的值解析空列。
"error"显示错误消息并取消导入操作。

数据中部分字段的规则,指定为下表中的值之一。如果一个字段到达行尾的字符数少于预期宽度,则 readtable 认为该字段为部分填充。此名称-值参量仅适用于具有固定宽度的字段。

不完整字段规则行为
"keep"

保留不完整字段数据并将文本转换为正确的数据类型。

如果 readtable 无法解释部分数据,可能会发生转换错误。

"fill"

FillValue 属性的内容替代缺失的数据。

您可以在要导入的变量的 VariableImportOptions 对象中设置 FillValue 属性。有关设置 FillValue 属性的详细信息,请参阅 setvaropts

"omitrow"忽略包含不完整数据的行。
"omitvar"忽略包含不完整数据的变量。
"wrap"开始读取下一行字符。
"error"显示错误消息并取消导入操作。

文件信息

全部展开

文件的类型,指定为此表中的一个值。

文件类型
"spreadsheet"电子表格文件
"text"文本文件
"delimitedtext"带分隔符的文本文件
"fixedwidth"等宽文本文件
"xml"XML 文件
"worddocument"Microsoft Word 文档
"html"HTML 文件

filename 不包含文件扩展名或其扩展名不在此列表中时,指定此名称-值参量:

  • .txt.dat.csv(文本文件)

  • .xls.xlsb.xlsm.xlsx.xltm.xltx.ods(电子表格文件)

  • .xml(适用于 XML 文件)

  • .docxMicrosoft Word 文档)

  • .html.xhtml.htm(HTML 文件)

与文件关联的字符编码方案,指定为 "system" 或标准字符编码方案名称。如果您没有指定任何编码,则 readtable 函数在读取文件时将使用自动字符集检测来确定编码。

如果除导入选项对象 opts 外您还指定了 Encoding 参量,则参量值会覆盖在导入选项中定义的编码。

读取电子表格数据时是否启动适用于 Windows 的 Microsoft Excel 实例,指定为数值或逻辑值 1 (true) 或 0 (false)。

基于此参量,readtable 支持不同文件格式和交互式功能,如公式和宏。

支持

如果 UseExceltrue

如果 UseExcelfalse

支持的文件格式

.xls, .xlsb, .xlsm, .xlsx, .xltm, .xltx, .ods

.xls, .xlsm, .xlsx, .xltm, .xltx

支持交互功能,例如公式和宏

UseExcel 在非交互式自动化环境中不受支持。

自 R2022a 起

HTTPHTTPS 请求选项,指定为 weboptions 对象。当指定的 filename 是包含协议类型 "http://""https://" 的 Internet URL 时,由 weboptions 对象确定如何导入数据。

文本解析

全部展开

字段分隔符,指定为字符串数组、字符向量或字符向量元胞数组。将 Delimiter 指定为任何有效字符(如逗号 "," 或句点 ".")。

下表列出了一些常用的字段分隔符。

设定符

字段分隔符

","

"comma"

逗号

" "

"space"

空格

"\t"

"tab"

制表符

";"

"semi"

分号

"|"

"bar"

垂直条

未指定

如果未指定此名称-值参量,readtable 会自动检测分隔符。

要将多个字符视为单个分隔符,请将 Delimiter 指定为字符串数组或字符向量元胞数组。如果要将未知数量的连续分隔符视为一个分隔符,请指定 ConsecutiveDelimitersRule="join"

Delimiter 仅对带分隔符的文本文件有效,而对等宽文本文件无效。

行尾字符,指定为字符串数组、字符向量或字符向量元胞数组。常见的行尾字符包括换行符 ("\n") 和回车符 ("\r")。如果指定 "\r\n",则 readtable 会将两者的组合 (\r\n) 视为行尾字符。如果指定 {"\r\n", "\r", "\n"},则 \r\n\r\n 都被视为行尾字符。

默认的行尾序列是 \n\r\r\n,具体取决于您的文件的内容。

视为空白的字符,指定为包含一个或多个字符的字符串标量或字符向量。

下表显示如何表示无法使用普通文本输入的特殊字符。

特殊字符

表示形式

百分号

%%

反斜杠

\\

警报

\a

退格符

\b

换页符

\f

换行符

\n

回车符

\r

水平制表符

\t

垂直制表符

\v

其 Unicode® 数值可以通过十六进制数 N 表示的字符

\xN

其 Unicode 数值可以通过八进制数 N 表示的字符

\N

示例: " _"

示例: "?!.,"

要忽略的文本的注释指示符,指定为字符串数组、字符向量或字符向量元胞数组。

例如,指定一个字符(如 "%")以忽略同一行上该字符后面的文本。指定字符串数组(如 ["/*","*/"])以忽略序列之间的任何文本。

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 数组(如果值表示日期和时间)。

XML 解析

全部展开

是否将 XML 属性作为变量导入输出表中,指定为数值或逻辑值 1 (true) 或 0 (false)。默认情况下,readtable 将 XML 属性作为变量导入输出表中。

用于区分输出表中属性和元素的后缀,指定为字符串标量或字符向量。此参量指定 readtable 追加到与输入 XML 文件中的属性对应的所有表变量的后缀。如果未指定 AttributeSuffix,则 readtable 将后缀 "Attribute" 追加到与输入 XML 文件中的属性对应的所有变量名称。

示例: "_att"

表的给定行中的重复 XML 节点的规则,指定为下表中的值之一。

规则

行为

"addcol"

为变量中的每个重复节点添加列以在关联变量中创建一个矩阵。"addcol" 不会为重复节点在表中创建一个单独变量。

例如:

输入数据

    <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 命名空间前缀集,指定为由前缀及其关联 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"])

变量元数据

全部展开

变量单位的位置,指定为非负整数。

如果 VariableUnitsLine0,则 readtable 不导入变量单位。否则,readtable 将从指定的行中导入变量单位。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

变量单位的位置,指定为以下形式之一的字符串标量、字符向量或正整数。

指定 VariableUnitsRange 的方式描述

"Cell"

起始单元格

使用 A1 表示法将变量单位的起始单元格指定为包含列字母和行号的字符串标量或字符向量。

从起始单元格开始,readtable 为数据中的每个变量标识一个单位。

示例:"A5" 标识列 A 和行 5 相交处的单元格。

"Corner1:Corner2"

矩形范围

使用 "Corner1:Corner2" 形式指定该范围,其中 Corner1Corner2 是定义变量单位区域的两个对角。

范围只能跨一行。

例如:"A5:K5"

n

数值索引

使用正行索引指定包含变量单位的行。

示例:5

"Row1:Row2"

行范围

使用 "Row1:Row2" 形式指定该范围,其中 Row1Row2 是相同的行索引。

变量单位必须在一行中。

例如:"5:5"

""

未指定或为空

指示没有变量单位。

例如:""

数据类型: string | char | single | double

变量单位的位置,指定为非负整数。

如果 VariableUnitsRow0,则 readtable 不导入变量单位。否则,readtable 将从指定的行中导入变量单位。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

变量单位的 XPath 表达式,指定为 readtable 用于选择表变量单位的字符串标量或字符向量。您必须将 VariableUnitsSelector 指定为有效的 XPath 版本 1.0 表达式。

如果未指定此名称-值参量,readtable 不导入变量单位。

示例: "/RootNode/ChildNode"

示例: "//table[1]/units/"

变量描述的位置,指定为非负整数。

如果 VariableDescriptionsLine0,则 readtable 不导入变量描述。否则,readtable 将从指定的行中导入变量描述。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

变量描述的位置,指定为以下形式之一的字符串标量、字符向量或正整数。

指定 VariableDescriptionsRange 的方式描述

"Cell"

起始单元格

使用 A1 表示法将变量描述的起始单元格指定为包含列字母和行号的字符串标量或字符向量。

从起始单元格开始,readtable 为数据中的每个变量标识一个描述。

示例:"A5" 标识列 A 和行 5 相交处的单元格。

"Corner1:Corner2"

矩形范围

使用 "Corner1:Corner2" 形式指定该范围,其中 Corner1Corner2 是定义变量描述区域的两个对角。

范围只能跨一行。

例如:"A5:K5"

"Row1:Row2"

行范围

使用 "Row1:Row2" 形式指定该范围,其中 Row1Row2 是相同的行索引。

变量描述必须在一行中。

例如:"5:5"

n

数值索引

使用正行索引指定包含描述的行。

示例:5

""

未指定或为空

指示没有变量描述。

例如:""

数据类型: string | char | single | double

变量描述的位置,指定为非负整数。

如果 VariableDescriptionsRow0,则 readtable 不导入变量描述。否则,readtable 将从指定的行中导入变量描述。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

变量描述的 XPath 表达式,指定为字符串标量或字符向量。您必须将 VariableDescriptionsSelector 指定为有效的 XPath 版本 1.0 表达式。

如果未指定此名称-值参量,readtable 不导入变量描述。

示例: "/RootNode/RowNode/@Name"

示例: "//table[1]/descriptions/*"

输出参量

全部折叠

输出表,以表形式返回。该表可以存储元数据,例如描述、变量单位、变量名称和行名称。有关详细信息,请参阅 table 的“属性”部分。

扩展功能

全部展开

版本历史记录

在 R2013b 中推出

全部展开