本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

readtable

基于文件创建表

说明

示例

T = readtable(filename) 通过从文件中读取列向数据来创建表。

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

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

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

readtable 为该文件中的每列在 T 中创建一个变量并从文件的第一行中读取变量名称。默认情况下,如果整列均为数值,则已创建的变量为 double,如果列中的任一元素不是数值,则为字符向量元胞数组。

示例

T = readtable(filename,opts) 使用导入选项 opts 创建表。

示例

T = readtable(___,Name,Value) 基于文件创建一个表,并通过一个或多个名称-值对组参数指定其他选项。例如,您可以指定 readtable 是将文件的第一行读取为变量名称还是数据。

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

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

  • 仅文本参数 - DateLocaleEncoding

  • 仅电子表格参数 - SheetUseExcel

示例

全部折叠

加载文件 myCsvTable.dat 并在文本编辑器中预览其内容。屏幕截图如下所示。请注意,该文件包含逗号分隔的列向数据。

filename = fullfile(matlabroot,'examples','matlab','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   

加载文件 mySpaceDelimTable.txt 并在文本编辑器中预览其内容。屏幕截图如下所示。请注意,该文件包含空格分隔的列向数据。

filename = fullfile(matlabroot,'examples','matlab','mySpaceDelimTable.txt');

基于以空格分隔的文本文件创建表,该文件没有与列标题相同的变量名称。

T = readtable(filename,...
    'Delimiter',' ','ReadVariableNames',false)
T=3×5 table
    Var1     Var2    Var3     Var4       Var5   
    _____    ____    ____    ______    _________

    {'M'}     45      45     {'NY'}    {'true' }
    {'F'}     41      32     {'CA'}    {'false'}
    {'M'}     40      34     {'MA'}    {'false'}

T 包含默认的变量名称。

加载文件 myCsvTable.dat 并在文本编辑器中预览其内容。屏幕截图如下所示。请注意,该文件包含逗号分隔的列向数据。

filename = fullfile(matlabroot,'examples','matlab','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 并在文本编辑器中预览其内容。屏幕截图如下所示。请注意,第一列值包含德语的日期,第二列和第三列是数值。

filename = fullfile(matlabroot,'examples','matlab','german_dates.txt');

使用 readtable 读取示例文件。对于日期,转换设定符为 %D,对于浮点值,转换设定符为 %f。使用 FileEncoding 名称-值对组参数指定文件编码。使用 DateLocale 名称-值对组参数指定日期格式和区域设置。

T = readtable(filename,'ReadVariableNames',false,...
    '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 array
    {'LastName'}    {'Variables'}

'LastName' 是电子表格第一行第一列中的名称。

使用电子表格 patients.xls 的指定区域中的数据创建表。使用 C2E6 两个对角之间的 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'
                EmptyLineRule: 'skip'
                     Encoding: 'UTF-8'

   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
        PreserveVariableNames: false

   Location Properties:
                    DataLines: [2 Inf]
            VariableNamesLine: 1
               RowNamesColumn: 0
            VariableUnitsLine: 0
     VariableDescriptionsLine: 0 
	To display a preview of the table, use preview

检查变量 TaxiInTaxiOutType 属性。

getvaropts(opts,{'TaxiIn','TaxiOut'})
ans = 
  1x2 TextVariableImportOptions array with properties:

    Name
    Type
    FillValue
    TreatAsMissing
    QuoteRule
    Prefixes
    Suffixes
    EmptyFieldRule
    WhitespaceRule

将变量 TaxiInTaxiOut 的类型更改为 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
        PreserveVariableNames: false

   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_'。要在保留变量名称的同时读取表格数据,请将 'PreserveVariableNames' 参数设置为 true

T_preserve = readtable('sampletable.txt','PreserveVariableNames',true)
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       

输入参数

全部折叠

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

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

位置

形式

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

指定 filename 中文件的名称。

示例:'myFile.txt'

文件夹中的文件

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

示例:'C:\myFolder\myFile.xlsx'

示例:'dataDir\myFile.txt'

远程位置

如果文件存储在远程位置,则 filename 必须包含指定为统一资源定位器 (URL) 形式的文件的完整路径:

scheme_name://path_to_file/my_file.ext

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

远程位置scheme_name
Amazon S3™s3
Windows Azure® Blob Storagewasb, 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 函数创建的 SpreadsheetImportOptionsDelimitedTextImportOptionsFixedWidthImportOptions 对象。opts 对象包含控制数据导入过程的属性。有关每个对象的属性的详细信息,请参阅相应的对象页。

文件类型输出
电子表格文件SpreadsheetImportOptions 对象
文本文件DelimitedTextImportOptions 对象
等宽文本文件FixedWidthImportOptions 对象

名称-值对组参数

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN 所示。

示例: 'ReadVariableNames',false 指示文件的第一行与变量名称不对应。

当读取文件时:

  • 文本文件,仅以下参数名称适用:FileTypeReadVariableNamesReadRowNamesTreatAsEmptyDatetimeTypeDelimiterHeaderLinesFormatEmptyValueMultipleDelimsAsOneCollectOutputCommentStyleExpCharsEndOfLineDateLocaleEncoding

  • 如果是电子表格文件,则仅以下参数名称适用:FileTypeReadVariableNamesReadRowNamesTreatAsEmptyDatetimeTypeSheetRangeUseExcelTextType

  • 如果是具有 opts 导入选项的文本或电子表格文件,则仅以下参数名称适用:ReadVariableNamesReadRowNamesDateLocaleEncodingSheetUseExcel

文本和电子表格文件

全部折叠

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

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

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

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

示例: 'FileType','text'

数据类型: char | string

读取第一行以作为变量名称的指示符,指定为逗号分隔的对组,包含 'ReadVariableNames'truefalse10。如果未指定,readtable 将自动检测是否存在变量名称。

指示符

说明

true

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

false

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

未指定 如果未指定,readtable 将自动检测 truefalse,并进行相应的处理。

注意:如果 'ReadVariableNames''ReadRowNames' 逻辑指示符都为 true,则 readtable 将读取的区域第一行第一列中的名称保存为属性 T.Properties.DimensionNames 中的第一个维度名称。

如果除 opts 导入选项外您还指定了 ReadVariableNames 参数,readtable 的行为将因您的指定而异:

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

  • 如果 ReadVariableNamesfalse,则从导入选项对象的 VariableNames 属性中读取变量名称。

读取第一列以作为行名称的指示符,指定为逗号分隔的对组,包含 'ReadRowNames'falsetrue01

指示符

说明

false

当要读取的区域第一列包含的是数据而不是表的行名称时使用。

true

当要读取的区域第一列包含表的行名称时使用。

未指定如果未指定,readtable 将假定为 false

注意:如果 'ReadVariableNames''ReadRowNames' 逻辑指示符都为 true,则 readtable 将读取的区域第一行第一列中的名称保存为属性 T.Properties.DimensionNames 中的第一个维度名称。

如果除 opts 导入选项外您还指定了 ReadRowNames 参数,readtable 的行为将因您的指定而异:

  • 如果 ReadRowNamestrue,则通过使用导入选项对象的 RowNamesRangeRowNameColumn 属性从指定的文件中读取行名称。

  • 如果 ReadRowNamesfalse,则不导入行名称。

要作为空值处理的占位符文本,指定为逗号分隔的对组,其中包含 'TreatAsEmpty' 和一个字符向量、字符向量元胞数组、字符串或字符串数组。与这些字符对应的表元素设置为 NaN

'TreatAsEmpty' 仅应用于文件中的数值列,而 readtable 不接受数值文字,例如 '-99'

示例: 'TreatAsEmpty','N/A''TreatAsEmpty',"N/A" 将数值列内的 N/A 设置为 NaN

示例: 'TreatAsEmpty',{'.','NA','N/A'}'TreatAsEmpty',[".","NA","N/A"] 将数值列内的 .NAN/A 设置为 NaN

数据类型: char | string

导入的文本数据的类型,指定为以逗号分隔的对组,其中包含 'TextType''char''string' 中的任一项。

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

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

示例: 'TextType','char'

导入的日期和时间数据的类型,指定为以逗号分隔的对组,其中包含 'DatetimeType' 和下列值之一:'datetime''text''exceldatenum'。值 'exceldatenum' 仅适用于电子表格文件,对文本文件无效。

导入的日期和时间数据的类型
'datetime'

MATLAB datetime 数据类型

有关详细信息,请参阅 datetime

'text'

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

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

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

'exceldatenum'

Excel 日期序列值

日期序列值是一个数字,它等于从给定的参照日期开始计算的天数。Excel 日期序列值与 MATLAB 日期序列值使用不同的参照日期。有关 Excel 日期的详细信息,请参阅 https://support.microsoft.com/en-us/kb/214330

数据类型: char | string

保留变量名称的标志,指定为以逗号分隔的对组,由 PreserveVariableNamestruefalse 组成。

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

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

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

仅限文本文件

全部折叠

字段分隔符,指定为由 'Delimiter' 以及一个字符向量、字符向量元胞数组或字符串组成的逗号分隔对组。使用任何有效字符(如逗号 ',' 或句点 '.')指定 Delimiter

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

设定符

字段分隔符

','

'comma'

逗号

' '

'space'

空格

'\t'

'tab'

制表符

';'

'semi'

分号

'|'

'bar'

垂直条

未指定

如果未指定,readtable 将自动检测分隔符。

要将连续分隔符视为单个分隔符,请将 Delimiter 指定为字符向量元胞数组。您还必须指定 MultipleDelimsAsOne 选项。

示例: 'Delimiter',',''Delimiter','comma'

数据类型: char | string | cell

文件开头要跳过的行数,指定为逗号分隔的对组,其中包含 'HeaderLines' 和一个正整数。如果未指定,readtable 将自动检测要跳过的行数。

数据类型: single | double

文件的列格式,指定为逗号分隔的对组,其中包含 'Format' 和一个字符向量或字符串标量(由一个或多个转换设定符组成)。转换设定符与 textscan 函数接受的设定符相同。

指定该格式可以显著加快一些大文件的处理速度。如果不为 Format 指定一个值,则 readtable 将使用 %q 解释非数值列。%q 设定符会读取文本并在适当情况下忽略双引号 (")。

默认情况下,创建的变量为 double 或字符向量元胞数组,具体取决于数据。如果整列都是数值,则将变量作为 double 导入。如果一列中有任一元素不是数值,则将这些变量作为字符向量元胞数组导入。

数据类型: char | string

被分隔的文本文件中空数值字段的返回值,指定为由 'EmptyValue' 和一个标量组成的逗号分隔对组。

多分隔符处理,指定为由 'MultipleDelimsAsOne'true/false 组成的逗号分隔对组。如果为 true,则导入函数将连续分隔符当作一个分隔符处理。由空白分隔的重复分隔符也被当作一个分隔符处理。您还必须指定 Delimiter 选项。

示例: 'MultipleDelimsAsOne',1

确定数据串联的逻辑指示符,指定为由 'CollectOutput'true/false 组成的逗号分隔对组。如果为 true,则导入函数会将同一 MATLAB 基础类的连续输出元胞串联为单个数组。

用于指定要忽略的文本的符号,指定为逗号分隔的对组,其中包含 'CommentStyle' 和一个字符向量、字符向量元胞数组、字符串或字符串数组。

例如,指定一个字符(如 '%')以忽略同一行上此符号后面的文本。指定一个包含两个字符向量的元胞数组(如 {'/*','*/'}),以忽略这些序列之间的任何文本。

MATLAB 仅检查位于每个字段开头而不是字段中的注释。

示例: 'CommentStyle',{'/*','*/'}

数据类型: char | string

指数字符,指定为由 'ExpChars' 和一个字符向量或字符串组成的逗号分隔对组。默认的指数字符为 eEdD

数据类型: char | string

行尾字符,指定为由 'EndOfLine' 和一个字符向量或字符串组成的逗号分隔对组。该字符向量必须为 '\r\n',或须指定单个字符。常用的行尾字符是换行符 ('\n') 或回车符 ('\r')。如果您指定 '\r\n',则导入函数会将 \r\n 以及两者的组合 (\r\n) 视为行尾字符。

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

如果文件最后一行的结尾有缺失值和行尾序列,则导入函数会对这些字段返回空值。这样可确保输出元胞数组 C 中的各个元胞的大小相同。

示例: 'EndOfLine',':'

数据类型: char | string

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

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

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

有关区域设置的常见值的列表,请参阅 datetime 函数的 Locale 名称-值对组参数。

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

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

示例: 'DateLocale','ja_JP'

与文件关联的字符编码方案,指定为由 'Encoding''system' 组成的逗号分隔对组,或指定为标准字符编码方案名称,如下表所示的值之一。当您不指定任何编码或将编码指定为 'system' 时,则 readtable 函数将使用您系统的默认编码读取该文件。

'Big5'

'ISO-8859-1'

'windows-874'

'Big5-HKSCS'

'ISO-8859-2'

'windows-949'

'CP949'

'ISO-8859-3'

'windows-1250'

'EUC-KR'

'ISO-8859-4'

'windows-1251'

'EUC-JP'

'ISO-8859-5'

'windows-1252'

'EUC-TW'

'ISO-8859-6'

'windows-1253'

'GB18030'

'ISO-8859-7'

'windows-1254'

'GB2312'

'ISO-8859-8'

'windows-1255'

'GBK'

'ISO-8859-9'

'windows-1256'

'IBM866'

'ISO-8859-11'

'windows-1257'

'KOI8-R'

'ISO-8859-13'

'windows-1258'

'KOI8-U'

'ISO-8859-15'

'US-ASCII'

 

'Macintosh'

'UTF-8'

 

'Shift_JIS'

 

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

示例: 'Encoding', 'UTF-8'

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

数据类型: char | string

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

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

MATLAB duration 数据类型

有关详细信息,请参阅 duration

'text'

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

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

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

数据类型: char | string

仅限电子表格文件

全部折叠

要读取的工作表,指定为逗号分隔的对组,其中包含 '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

要读取的工作表部分,指示为由逗号分隔的对组指定的矩形区域,其中包含 'Range' 和一个采用以下格式之一的字符向量或字符串标量。

指定 Range 的方式 说明

'Corner1:Corner2'

矩形范围

使用语法 'Corner1:Corner2' 指定该范围,其中 Corner1Corner2 是定义区域的两个对角。例如,'D2:H4' 表示工作表上两个角落 D2H4 之间的 3×5 矩形区域。'Range' 名称-值对组参数不区分大小写,并使用 Excel A1 引用样式(请参阅 Excel 帮助)。

示例: 'Range','Corner1:Corner2'

''

未指定或为空

如果未指定,readtable 将自动检测使用范围。

示例: 'Range',''

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

'Row1:Row2'

行范围

您可以通过使用 Excel 行标志符指定开始行和结束行来标识范围。然后,readtable 自动在指定的行中检测使用的列范围。例如,readtable 将范围设定 '1:7' 解释为一个指令,用于读取第 1 行到第 7 行(包括这两行)使用范围内的所有列。

示例: 'Range','1:7'

'Column1:Column2'

列范围

您可以通过使用 Excel 列标志符指定开始列和结束列来标识范围。然后,readtable 自动在指定的列中检测使用的行范围。例如,readtable 将范围设定 'A:F' 解释为一个指令,用于读取 A 到 F 列(包括这两列)使用范围内的所有行。

示例: 'Range','A:F'

'NamedRange'

Excel 中的命名范围

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

示例: 'Range','myTable'

示例: 'Range', 'A1:F10'

示例: 'Range', "A1:F10"

数据类型: char | string

用于在读取电子表格数据时启动 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

输出参数

全部折叠

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

提示

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

在 R2013b 中推出