Main Content

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

readtimetable

基于文件创建时间表

说明

示例

TT = readtimetable(filename) 通过从文件中读取列向数据来创建时间表。

readtimetable 基于文件的扩展名确定文件格式:

  • .txt.dat.csv(带分隔符的文本文件)

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

  • .xml(适用于可扩展标记语言 (XML) 文件)。

对于文本和电子表格文件,readtimetable 为该文件中的每列在 TT 中创建一个变量并从文件的第一行中读取变量名称。对于 XML 文件,readtimetableT 中为检测为时间表变量的每个元素或属性节点创建一个变量。变量名称对应于元素和属性名称。

readtimetable 将表格数据中 datetimeduration 类型的第一列设置为时间表的行时间。其余列成为时间表的变量。

示例

TT = readtimetable(filename,opts) 还使用导入选项 opts

示例

TT = readtimetable(___,Name,Value) 基于文件创建一个时间表,并通过一个或多个名称-值对组参量指定其他选项。您需要在上述语法的输入参量之后指定名称-值对组。

要为数据设置特定的导入选项,您可以使用 opts 对象,也可以指定名称-值对组。当您指定除 opts 之外的名称-值对组时,readtimetable 仅支持下列名称-值对组:

  • 文本和电子表格参数 - ReadVariableNamesRowTimesSampleRateTimeStepStartTime

  • 仅文本参数 - DateLocaleEncoding

  • 仅电子表格参数 - SheetUseExcel

示例

全部折叠

基于逗号分隔的文本文件创建表。

TT = readtimetable('outages.csv');

显示表的摘要。创建时间表时,如果没有为行时间指定任何参数,则 readtimetable 函数会检测并指定数据中的第一个日期时间变量或持续时间变量 OutageTime 作为行时间变量。其余变量成为时间表的变量。

summary(TT)
RowTimes:

    OutageTime: 1468x1 datetime
        Values:
            Min         01-Feb-2002 12:18:00 
            Median      18-Mar-2010 21:05:30 
            Max         15-Jan-2014 02:41:00 

Variables:

    Region: 1468x1 cell array of character vectors

    Loss: 1468x1 double

        Values:

            Min             0       
            Median          180.26  
            Max             23418   
            NumMissing      604     

    Customers: 1468x1 double

        Values:

            Min             0           
            Median          75765       
            Max             5.9689e+06  
            NumMissing      328         

    RestorationTime: 1468x1 datetime

        Values:

            Min             07-Feb-2002 16:50:00  
            Median          31-Mar-2010 10:54:00  
            Max             18-Sep-2042 23:31:00  
            NumMissing      29                    

    Cause: 1468x1 cell array of character vectors

检测文本文件的导入选项,指定变量类型,然后基于数据创建时间表。

基于文件创建导入选项对象,并检查变量选项。

opts = detectImportOptions('outages.csv');
opts.VariableOptions
ans = 
  1x6 heterogeneous VariableImportOptions (TextVariableImportOptions, DatetimeVariableImportOptions, NumericVariableImportOptions) array with properties:

    Name
    Type
    FillValue
    TreatAsMissing
    QuoteRule
    Prefixes
    Suffixes
    EmptyFieldRule

修改选项对象,为数据中的变量指定所需的数据类型。将变量 RegionCause 的数据类型更改为 categorical。

opts = setvartype(opts,{'Region','Cause'},{'categorical','categorical'});

使用 readtimetable 以及选项对象导入时间表。然后显示该时间表的汇总。

TT = readtimetable('outages.csv',opts);
summary(TT)
RowTimes:

    OutageTime: 1468x1 datetime
        Values:
            Min         01-Feb-2002 12:18:00 
            Median      18-Mar-2010 21:05:30 
            Max         15-Jan-2014 02:41:00 

Variables:

    Region: 1468x1 categorical

        Values:

            MidWest        142   
            NorthEast      557   
            SouthEast      389   
            SouthWest       26   
            West           354   

    Loss: 1468x1 double

        Values:

            Min             0       
            Median          180.26  
            Max             23418   
            NumMissing      604     

    Customers: 1468x1 double

        Values:

            Min             0           
            Median          75765       
            Max             5.9689e+06  
            NumMissing      328         

    RestorationTime: 1468x1 datetime

        Values:

            Min             07-Feb-2002 16:50:00  
            Median          31-Mar-2010 10:54:00  
            Max             18-Sep-2042 23:31:00  
            NumMissing      29                    

    Cause: 1468x1 categorical

        Values:

            attack                294   
            earthquake              2   
            energy emergency      188   
            equipment fault       156   
            fire                   25   
            severe storm          338   
            thunder storm         201   
            unknown                24   
            wind                   95   
            winter storm          145   

从以逗号分隔的文本文件中读取一个表,并使用您选择的行时间变量创建一个时间表。

创建一个导入选项对象并预览表格数据。

opts = detectImportOptions('outages.csv');
preview('outages.csv',opts)
ans=8×6 table
       Region             OutageTime          Loss     Customers       RestorationTime              Cause       
    _____________    ____________________    ______    __________    ____________________    ___________________

    {'SouthWest'}    01-Feb-2002 12:18:00    458.98    1.8202e+06    07-Feb-2002 16:50:00    {'winter storm'   }
    {'SouthEast'}    23-Jan-2003 00:49:00    530.14    2.1204e+05                     NaT    {'winter storm'   }
    {'SouthEast'}    07-Feb-2003 21:15:00     289.4    1.4294e+05    17-Feb-2003 08:14:00    {'winter storm'   }
    {'West'     }    06-Apr-2004 05:44:00    434.81    3.4037e+05    06-Apr-2004 06:10:00    {'equipment fault'}
    {'MidWest'  }    16-Mar-2002 06:18:00    186.44    2.1275e+05    18-Mar-2002 23:23:00    {'severe storm'   }
    {'West'     }    18-Jun-2003 02:49:00         0             0    18-Jun-2003 10:54:00    {'attack'         }
    {'West'     }    20-Jun-2004 14:39:00    231.29           NaN    20-Jun-2004 19:16:00    {'equipment fault'}
    {'West'     }    06-Jun-2002 19:28:00    311.86           NaN    07-Jun-2002 00:51:00    {'equipment fault'}

通过将 RestorationTime 变量指定为时间表的行时间变量来创建一个时间表。然后,显示该时间表的汇总。

TT = readtimetable('outages.csv','RowTimes','RestorationTime');
summary(TT)
RowTimes:

    RestorationTime: 1468x1 datetime
        Values:
            Min             07-Feb-2002 16:50:00 
            Median          31-Mar-2010 10:54:00 
            Max             18-Sep-2042 23:31:00 
            NumMissing      29                   

Variables:

    Region: 1468x1 cell array of character vectors

    OutageTime: 1468x1 datetime

        Values:

            Min       01-Feb-2002 12:18:00
            Median    18-Mar-2010 21:05:30
            Max       15-Jan-2014 02:41:00

    Loss: 1468x1 double

        Values:

            Min             0       
            Median          180.26  
            Max             23418   
            NumMissing      604     

    Customers: 1468x1 double

        Values:

            Min             0           
            Median          75765       
            Max             5.9689e+06  
            NumMissing      328         

    Cause: 1468x1 cell array of character vectors

从电子表格文件创建一个时间表,并格式化输入数据。例如,从文件 quarterlyFinances1999To2019.csv 创建一个时间表,指定时间戳的开始日期和每个时间戳之间的时间,并从数据中删除“$”符号。

quarterlyFinances.png

以时间表形式读取文件 quarterlyFinances1999To2019.csv 中的数据。将连续行时间之间的时间长度指定为一个日历季度,从 1999 年 1 月 1 日开始。将 'VariableNamingRule' 设置为 preserve 以保留变量名称中的空白,并将 'TrimNonNumeric' 设置为 true 以删除数据中数值前的“$”符号。

TT = readtimetable("quarterlyFinances1999To2019.csv","TimeStep", calquarters(1),"StartTime", datetime(1999, 1, 1),...
    "VariableNamingRule", "preserve", "TrimNonNumeric", true);

显示数据的摘要。

summary(TT)
RowTimes:

    Time: 80x1 datetime
        Values:
            Min         01-Jan-1999 
            Median      16-Nov-2008 
            Max         01-Oct-2018 

Variables:

    Net Sales: 80x1 double

        Values:

            Min            35066
            Median    1.0407e+05
            Max       1.7684e+05

    Cost of Sales: 80x1 double

        Values:

            Min        18106  
            Median     48624  
            Max        77742  

    Gross Margin: 80x1 double

        Values:

            Min        14563  
            Median     56719  
            Max        99097  

    Research and Development Expenses: 80x1 double

        Values:

            Min        4904.9 
            Median      24637 
            Max         45234 

    Administrative Expenses: 80x1 double

        Values:

            Min        1047.4 
            Median     2015.3 
            Max        2811.5 

    Total Operating Expenses: 80x1 double

        Values:

            Min        5992.5 
            Median      26518 
            Max         48045 

    Net Income: 80x1 double

        Values:

            Min        7634.3 
            Median      28586 
            Max         51051 

    Total Shares: 80x1 double

        Values:

            Min           822 
            Median     1820.5 
            Max          2710 

    Earnings per Share: 80x1 double

        Values:

            Min          6.52 
            Median     15.515 
            Max         24.62 

输入参数

全部折叠

要读取的文件的名称,指定为字符向量或字符串标量。

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

位置

形式

当前文件夹或 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'

  • 如果 filename 包含文件扩展名,则导入函数基于扩展名确定文件格式。否则,您必须指定 'FileType' 名称-值对组参量以指示文件类型。

  • 在安装了 Microsoft® Excel® 软件的 Windows® 系统上,导入函数读取您的 Excel 版本可识别的任何 Excel 电子表格文件格式。

  • 如果您的系统没有 Windows 版 Excel 或者您正在使用 MATLAB Online™,则导入函数在 UseExcel 属性设置为 false 的情况下运行,并且只读取 .xls, .xlsx, .xlsm, .xltx, and .xltm 文件。

  • 对于分隔的文本文件,导入函数将文件中的空字段转换为 NaN(对于数值变量)或空字符向量(对于文本变量)。文本文件中的所有行必须有相同数量的分隔符。导入函数会忽略文件中的无用空白。

数据类型: char | string

文件导入选项,指定为 detectImportOptions 函数创建的 SpreadsheetImportOptionsDelimitedTextImportOptionsFixedWidthImportOptionsXMLImportOptions 对象。opts 对象包含控制数据导入过程的属性。有关每个对象的属性的详细信息,请参阅相应的对象页。

文件类型输出
电子表格文件SpreadsheetImportOptions 对象(仅对 SheetDataRangeVariableNames 属性可用)
文本文件DelimitedTextImportOptions 对象
等宽文本文件FixedWidthImportOptions 对象
XML 文件XMLImportOptions 对象

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

名称-值参数

将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: 'NumHeaderLines',5 表示表格数据前面的前五行是标题行。

所有支持的文件类型

全部折叠

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

文本和电子表格文件

全部折叠

文件类型,以逗号分隔的对组形式指定,其中包含 'FileType' 以及 'text''spreadsheet'

filename 不包含文件扩展名或扩展名不是以下任一项时,请指定 'FileType' 名称-值对组参量。

  • .txt.dat.csv(带分隔符的文本文件)

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

示例: 'FileType','text'

数据类型: char | string

文件中标题行的数目,指定为以逗号分隔的对组,其中包含 'NumHeaderLines' 和一个正整数。如果未指定,则导入函数会自动检测文件中标题行的数目。

示例: 'NumHeaderLines',7

数据类型: single | double

需要的变量数目,指定为包含 'ExpectedNumVariables' 和正整数的逗号分隔对组。如果未指定,则导入函数会自动检测变量数目。

数据类型: single | double

要从文本文件或电子表格文件中读取的数据部分,指定为以逗号分隔的对组,其中包含 'Range' 和采用以下形式之一的字符向量、字符串标量或数值向量。

指定 Range 的方式描述

起始单元格

'Cell'[row col]

将数据的起始单元格指定为字符向量、字符串标量或二元素数值向量。

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

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

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

例如:'A5'[5 1]

矩形范围

'Corner1:Corner2'[r1 c1 r2 c2]

使用以下形式之一的矩形范围指定要读取的精确范围。

  • 'Corner1:Corner2' - 使用 Corner1Corner2 指定范围,这两个对角以 Excel A1 表示法定义要读取的区域。例如,'C2:N15'

  • [r1 c1 r2 c2] - 使用包含起始行、起始列、结束行和结束列的四元素数值向量指定范围。例如,[2 3 15 13]

导入函数只读取指定范围内包含的数据。指定范围内的任何空字段都作为缺失单元导入。

行范围或列范围

'Row1:Row2''Column1:Column2'

通过使用 Excel 行号标识起始行和结束行来指定范围。

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

例如:'5:500'

也可以通过使用 Excel 列字母或列号标识起始列和结束列来指定范围。

根据指定的列范围,导入函数通过从第一个非空行开始读取,一直到数据的最后或页脚范围,从而自动检测行范围。

指定范围内的列数必须与 ExpectedNumVariables 属性中指定的数字匹配。

例如:'A:K'

起始行号

n

使用正标量行索引指定包含数据的第一行。

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

示例:5

Excel 中的命名范围

'NamedRange'

在 Excel 中,您可以创建名称来标识电子表格中的范围。例如,您可以选择电子表格的一个矩形部分,并将其命名为 'myTable'。如果电子表格中存在此类命名范围,则导入函数可以使用它的名称来读取该范围。

例如:'Range','myTable'

未指定或为空

''

如果未指定,则导入函数会自动检测使用的范围。

例如:'Range',''

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

数据类型: char | string | double

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

  • "string" - 将文本数据作为字符串数组导入。

  • "char" - 将文本数据作为字符向量导入。

示例: "TextType","char"

导入的日期和时间数据的类型,指定为以下值之一:

描述
"datetime"

MATLAB datetime 数据类型

有关详细信息,请参阅 datetime

"text"

如果将 "DatetimeType" 指定为 "text",则导入日期时间数据的类型取决于 "TextType" 参数中指定的值:

  • 如果 "TextType" 设置为 "char",则导入函数会以字符向量元胞数组的形式返回日期。

  • 如果 "TextType" 设置为 "string",则导入函数会以字符串数组形式返回日期。

"exceldatenum"

Excel 日期序列值

"exceldatenum" 仅适用于电子表格文件,对文本文件无效。日期序列值是一个数字,它等于从给定的参照日期开始计算的天数。Excel 日期序列值与 MATLAB 日期序列值使用不同的参照日期。有关 Excel 日期的详细信息,请参阅 Excel 中的 1900 和 1904 日期系统之间的差异

要解释为缺失数据的文本,指定为字符向量、字符串标量、字符向量元胞数组或字符串数组。

示例: 'TreatAsMissing',{'NA','TBD'} 指示导入函数将 NATBD 的任何实例都视为缺失字段。

数据类型: char | string | cell

读取第一行作为变量名称,指定为逗号分隔的对组,包含 'ReadVariableNames'truefalse。如果未指定,导入函数会自动检测变量名称是否存在。

指示符

描述

true

当要读取的区域的第一行包含表的变量名称时使用。导入函数使用检测到的变量名称为 T 中的每列创建一个变量。

false

当要读取的区域的第一行包含表中的数据时使用。导入函数将创建 'Var1',...,'VarN' 形式的默认变量名称,其中 N 是变量的数量。

未指定 未指定时,导入函数会自动检测 truefalse,并相应地继续后续步骤。

opts 之外,当您指定 ReadVariableNames 名称-值对组时,导入函数如下进行。

  • 如果 ReadVariableNames 设置为 true,则导入函数通过使用导入选项对象的 VariableNamesRangeVariableNamesLine 属性从指定的文件中读取变量名称。

  • 如果 ReadVariableNames 设置为 false,则导入函数从导入选项对象的 VariableNames 属性读取变量名称。

数据类型: logical

行时间变量,指定为由 'RowTimes' 和变量名称或时间向量组成的以逗号分隔的对组。

  • 变量名称必须为字符向量或字符串标量,其中包含输入表中任何具有 datetimeduration 值的变量的名称。变量名称指定的变量为行提供行时间标签。输入表的其余变量成为时间表的变量。

  • 时间向量必须为 datetime 向量或 duration 向量。时间向量的元素数必须等于输入表的行数。时间向量中的时间值不必是唯一、已排序或规则的。输入表中的所有变量都成为时间表中的变量。

数据类型: char | string | datetime | duration

行时间的采样率,以逗号分隔的对组形式指定,该对组由 'SampleRate' 和一个正数值标量组成。采样率是输出时间表的时间向量的每秒采样数 (Hz)。

当您使用 'SampleRate' 指定时间表的行时间向量时,默认的第一个行时间(开始时间)为零秒。要设置非零的开始时间,请指定 'StartTime' 名称-值对组。

数据类型: double

行时间之间的时间步,指定为以逗号分隔的对组,由 'TimeStep' 和持续时间标量或 calendarDuration 标量组成。'TimeStep' 参数的值指定连续行时间之间的时间长度。导入函数使用时间步长值来计算固定间隔的行时间。

当您使用 'TimeStep' 指定时间表的行时间向量时,默认的第一个行时间(开始时间)为零秒。要设置非零的开始时间,请指定 'StartTime' 名称-值对组。

如果 'TimeStep' 是日历持续时间值,则 'StartTime' 必须为日期时间值。

数据类型: duration | calendarDuration

行时间的开始时间,指定为由 StartTime 和一个日期时间标量或持续时间标量组成的逗号分隔对组。

要定义时间表的时间向量,请使用 'StartTime''SampleRate''TimeStep' 名称-值对组参量。

开始时间的数据类型决定行时间向量的数据类型。

  • 如果开始时间是日期时间值,则时间表的行时间是日期时间值。

  • 如果开始时间是持续时间值,则行时间是持续时间。

数据类型: datetime | duration

保留变量名称的标志,指定为 "modify""preserve"

  • "modify" - 将无效变量名称(由 isvarname 函数确定)转换为有效的 MATLAB 标识符。

  • "preserve" - 保留作为无效 MATLAB 标识符的变量名称,如包含空白和非 ASCII 字符的变量名称。

从 R2019b 开始,变量名称和行名称可以包含任何字符,包括空格和非 ASCII 字符。此外,它们可以由任何字符(而不仅仅是字母)开头。变量名称和行名称可以不是有效的 MATLAB 标识符(由 isvarname 函数决定)。要保留这些变量名称和行名称,请将 VariableNamingRule 的值设置为 "preserve"。当 VariableNamingRule 的值从 "modify" 更改为 "preserve" 时,变量名称不会刷新。

数据类型: char | string

仅限文本文件

全部折叠

带分隔符的文本文件中的字段分隔符,指定为字符串数组、字符向量或字符向量元胞数组。

示例: "Delimiter","|"

示例: "Delimiter",[";","*"]

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

示例: 'Whitespace',' _'

示例: 'Whitespace','?!.,'

行尾字符,指定为字符串数组、字符向量或字符向量元胞数组。

示例: "LineEnding","\n"

示例: "LineEnding","\r\n"

示例: "LineEnding",["\b",":"]

注释样式,指定为字符串数组、字符向量或字符向量元胞数组。对于单行和多行注释,起始标识符必须为第一个非空白字符。对于单行注释,请指定一个标识符,以便将以该标识符开头的行视为注释。对于多行注释,从起始(第一个)标识符到结束(第二个)标识符的行被视为注释。最多只能指定两个由标识符组成的字符向量。

例如,要忽略百分号后面的行作为第一个非空白字符,请将 CommentStyle 指定为 "%"

示例: "CommentStyle",["/*"]

示例: "CommentStyle",["/*","*/"]

与文件关联的字符编码方案,指定为以逗号分隔的对组,其中包含 'Encoding''system' 或标准字符编码方案名称。如果您没有指定任何编码,则 readtimetable 函数在读取文件时将使用自动字符集检测来确定编码。

如果除导入选项外您还指定了 'Encoding' 参量,readtimetable 函数将使用为 'Encoding' 指定的值,而覆盖导入选项中定义的编码方案。

示例: 'Encoding','UTF-8' 使用 UTF-8 作为编码。

示例: 'Encoding','system' 使用系统默认编码。

数据类型: char | string

来自文本文件的持续时间数据的输出数据类型,指定为以逗号分隔的对组,其中包含 'DurationType''duration''text'

导入的持续时间数据的类型
'duration'

MATLAB duration 数据类型

有关详细信息,请参阅 duration

'text'

如果将 'DurationType' 指定为 'text',则导入的持续时间数据的类型取决于 'TextType' 参数中指定的值:

  • 如果 'TextType' 设置为 'char',则导入函数会以字符向量元胞数组的形式返回持续时间数据。

  • 如果 'TextType' 设置为 'string',则导入函数会以字符串数组的形式返回持续时间数据。

数据类型: char | string

用于读取日期的区域设置,指定为逗号分隔的对组,其中包含 'DateLocale' 和一个 xx_YY 形式的字符向量或字符串标量,其中:

  • YY 是指示国家/地区的大写 ISO 3166-1 alpha-2 代码。

  • xx 是指示语言的小写 ISO 639-1 双字母代码。

下表列出了区域设置的某些常用值。

区域设置 语言国家/地区
'de_DE'德语德国
'en_GB'英语英国
'en_US'英语美国
'es_ES'西班牙语西班牙
'fr_FR'法语法国
'it_IT'意大利语意大利
'ja_JP'日语日本
'ko_KR'韩语韩国
'nl_NL'荷兰荷兰
'zh_CN'简体中文中国

使用 %D 格式设定符来将文本读取为 datetime 值时,请使用 DateLocale 指定导入函数应使用何种区域设置来解释月份和星期几的名称及缩写。

如果除 opts 导入选项外您还指定了 DateLocale 参量,则导入函数将使用为 DateLocale 参量指定的值,而覆盖导入选项中定义的区域设置。

示例: 'DateLocale','ja_JP'

表示数值变量中小数分隔符的字符,指定为字符向量或字符串标量。导入函数使用 DecimalSeparator 名称-值对组中指定的字符来区分数字的整数部分和小数部分。

转换为整数数据类型时,带小数部分的数字将被舍入为最接近的整数。

示例: 如果名称-值对组指定为 'DecimalSeparator',',',则导入函数将文本 "3,14159" 导入为数字 3.14159

数据类型: char | string

表示数值变量中千分位的字符,指定为字符向量或字符串标量。千分位字符作为视觉分隔符,将数字按三位数一组进行分组。导入函数使用 ThousandsSeparator 名称-值对组中指定的字符来解释要导入的数字。

示例: 如果名称-值对组指定为 'ThousandsSeparator',',',则导入函数将文本 "1,234,000" 导入为 1234000

数据类型: char | string

从数值变量中删除非数值字符,指定为逻辑值 truefalse

示例: 如果名称-值对组指定为 'TrimNonNumeric',true,则导入函数将 '$500/-' 读取为 500

数据类型: logical

管理带分隔符的文本文件中的连续分隔符的过程,指定为下表中的值之一。

行为
"split"将连续分隔符拆分为多个字段。
"join"将多个分隔符合并成一个分隔符。
"error"返回错误并取消导入操作。

管理带分隔符的文本文件中的前导分隔符的过程,指定为下表中的值之一。

行为
"keep"保留分隔符。
"ignore"忽略分隔符。
"error"返回错误并取消导入操作。

管理带分隔符的文本文件中的尾部分隔符的过程,指定为下表中的值之一。

前导分隔符规则行为
'keep'保留分隔符。
'ignore'忽略分隔符。
'error'返回错误并中止导入操作。
仅限电子表格文件

全部折叠

要从中读取数据的工作表,指定为空字符数组、包含工作表名称的字符向量或字符串标量,或表示工作表索引的正整数标量。根据为 Sheet 属性指定的值,导入函数的行为如下表中所述。

指定的值行为
''(默认值)从第一个工作表导入数据。
名称从具有匹配名称的工作表中导入数据,不考虑电子表格文件中工作表的顺序。
整数从由整数指定的位置的工作表导入数据,不考虑电子表格文件中的工作表名称。

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

用于在读取电子表格数据时启动 Windows 版 Microsoft Excel 实例的标志,指定为逗号分隔的对组,包含 'UseExcel'truefalse

您可以将 'UseExcel' 参数设置为下列值之一:

  • true - 导入函数在读取文件时启动 Microsoft Excel 的实例。

  • false - 导入函数在读取文件时不启动 Microsoft Excel 的实例。在此模式下操作时,导入函数功能支持的文件格式和交互式功能(例如公式和宏)有所不同。

UseExcel

true

false

支持的文件格式

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

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

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

从 Windows 平台上的电子表格文件中读取时,如果您想启动 Microsoft Excel 实例,则将 'UseExcel' 参数设置为 true

仅 XML 文件

全部折叠

属性后缀,指定为逗号分隔的对组,包含 'AttributeSuffix' 和一个字符向量或字符串标量。此参量指定读取函数追加到与输入 XML 文件中的属性对应的所有表变量的后缀。如果未指定 'AttributeSuffix',则读取函数默认将后缀 'Attribute' 附加到与输入 XML 文件中的属性对应的所有变量名称。

示例: 'AttributeSuffix','_att'

导入属性,指定为逗号分隔的对组,包含 'ImportAttributes'1 (true) 或 0 (false)。如果指定 false,则读取函数不会将输入文件中的 XML 属性作为输出表中的变量导入。

示例: 'ImportAttributes',false

表行 XML 节点名称,指定为逗号分隔的对组,包含 'RowNodeName' 和一个字符向量或字符串标量。此参量指定界定输出表行的 XML 节点名称。

示例: 'RowNodeName','XMLNodeName'

表行 XPath 表达式,指定为字符向量或字符串标量,读取函数使用它来选择输出表的各个行。您必须将 RowSelector 指定为有效的 XPath 版本 1.0 表达式。

示例: 'RowSelector','/RootNode/ChildNode'

表变量 XML 节点名称,指定为以逗号分隔的对组,包含 'VariableNodeNames' 和一个字符向量元胞数组或字符串数组。此参量指定读取函数用于标识输出表中作为变量读取的 XML 节点的 XML 节点名称。

示例: 'VariableNodeNames',{'XMLNodeName1','XMLNodeName2'}

示例: 'VariableNodeNames',"XMLNodeName"

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

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

示例: 'VariableSelectors',{'/RootNode/ChildNode'}

示例: 'VariableSelectors',"/RootNode/ChildNode"

示例: 'VariableSelectors',["/RootNode/ChildNode1","/RootNode/ChildNode2"]

表 XML 节点名称,指定为逗号分隔的对组,其中包含 'TableNodeName' 和一个字符向量或字符串标量。此参量指定读取函数应读取到表的输入结构体中的节点。

示例: 'TableNodeName','NodeName'

表数据 XPath 表达式,指定为字符向量或字符串标量,读取函数使用它来选择输出表数据。您必须将 TableSelector 指定为有效的 XPath 版本 1.0 表达式。

示例: 'TableSelector','/RootNode/ChildNode'

变量单位 XPath,指定为字符向量或字符串标量,读取函数使用它来选择表变量单位。您必须将 VariableUnitsSelector 指定为有效的 XPath 版本 1.0 表达式。

示例: 'VariableUnitsSelector','/RootNode/ChildNode'

变量描述 XPath 表达式,指定为字符向量或字符串标量,读取函数使用它来选择表变量描述。您必须将 VariableDescriptionsSelector 指定为有效的 XPath 版本 1.0 表达式。

示例: 'VariableDescriptionsSelector','/RootNode/ChildNode'

处理表的给定行中重复 XML 节点的过程,指定为 'addcol''ignore''error'

重复节点规则

行为

'addcol'

在表中的变量标题下为重复节点添加列。将 'RepeatedNodeRule' 的值指定为 'addcol' 不会在表中为重复节点创建单独变量。

'ignore'

跳过导入重复节点。

'error'显示错误消息并中止导入操作。

示例: 'RepeatedNodeRule','ignore'

注册的 XML 命名空间前缀集,指定为由 RegisteredNamespaces 和前缀数组组成的以逗号分隔的对组。读取函数在计算 XML 文件的 XPath 表达式时使用这些前缀。将命名空间前缀及其关联的 URL 指定为 N×2 字符串数组。RegisteredNamespaces 还可以用于计算由选择器名称-值参量(例如 readstructStructSelectorreadtablereadtimetableVariableSelectors)指定的 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"]

输出参量

全部折叠

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

提示

  • 使用 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>
    
    下表提供 XPath 选择器名称-值参量(例如 VariableSelectorsTableSelector)支持的 XPath 语法。

    选取操作语法示例结果
    选择其名称与您要选择的节点匹配的每个节点,而无论它在文档中的位置如何。在名称前加两个正斜杠 (//) 前缀。
    data = readtable('myFile.xml', 'VariableSelectors', '//var')
    data =
    
      4×1 table
    
        var
        ___
    
         1 
         2 
        10 
        20 
    读取属于元素节点的属性的值。在属性前加 at 符号 (@) 前缀。
    data = readtable('myFile.xml', 'VariableSelectors', '//table/@category')
    data =
    
      2×1 table
    
        categoryAttribute
        _________________
    
             "ones"      
             "tens"   
    在一组节点中选择一个特定节点。在方括号 ([]) 中提供要选择的节点的索引。
    data = readtable('myFile.xml', 'TableSelector', '//table[1]')
    data =
    
      2×1 table
    
        var
        ___
    
         1 
         2 
    
    指定运算的优先级。在要首先计算的表达式前后添加圆括号。
    data = readtable('myFile.xml', 'VariableSelectors', '//table/var[1]')
    data =
    
      2×1 table
    
        var
        ___
    
         1 
        10 
    data = readtable('myFile.xml', 'VariableSelectors', '(//table/var)[1]')
    data =
    
      table
    
        var
        ___
    
         1 

版本历史记录

在 R2019a 中推出