Main Content

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

tabularTextDatastore

表格文本文件的数据存储

说明

对于不一定能放入内存的大型文本文件(包含列向数据或表格数据)集合,可以使用 TabularTextDatastore 对象来进行管理。表格数据是以矩形方式排列且每一行具有相同条目数的数据。您可以使用 tabularTextDatastore 函数创建 TabularTextDatastore 对象,指定其属性,然后使用对象函数导入和处理数据。

创建对象

描述

ttds = tabularTextDatastore(location) 根据 location 指定的数据集合创建一个数据存储。

示例

ttds = tabularTextDatastore(location,Name,Value) 使用一个或多个名称-值对组参数为 ttds 指定其他参数和属性。例如,tabularTextDatastore(location,"FileExtensions",[".txt",".csv"]) 只根据 location 中具有 .txt.csv 扩展名的文件创建一个数据存储。

输入参数

全部展开

数据存储中包含的文件或文件夹,指定为 FileSet 对象、文件路径或 DsFileSet 对象。

  • FileSet 对象 - 您可以将 location 指定为 FileSet 对象。与指定路径或 DsFileSet 对象相比,将位置指定为 FileSet 对象会加快数据存储的构造时间。有关详细信息,请参阅 matlab.io.datastore.FileSet

  • 文件路径 - 您可以将单个文件路径指定为字符向量或字符串标量。您可以将多个文件路径指定为字符向量元胞数组或字符串数组。

  • DsFileSet 对象 - 您可以指定 DsFileSet 对象。有关详细信息,请参阅 matlab.io.datastore.DsFileSet

文件或文件夹可以是本地的或远程的:

  • 本地文件或文件夹 - 指定文件或文件夹的本地路径。如果文件不在当前文件夹中,则指定完整路径或相对路径。指定文件夹的子文件夹中的文件不会自动包括在数据存储中。在指定本地路径时可以使用通配符 (*)。此字符指定数据存储包含所有匹配的文件或匹配文件夹中的所有文件。

  • 远程文件或文件夹 - 将远程文件或文件夹的完整路径指定为 hdfs:///path_to_file 形式的统一资源定位器 (URL)。有关详细信息,请参阅处理远程数据

当您指定文件夹时,数据存储仅包括具有支持的文件格式的文件,而忽略任何其他格式的文件。要指定要包含在数据存储中的自定义文件扩展名列表,请参阅 FileExtensions 属性。

tabularTextDatastore 函数支持扩展名为 .txt.csv.dat.dlm.asc.text 的文件以及没有扩展名的文件。

示例: "file1.csv"

示例: "../dir/data/file1"

示例: ["C:\dir\data\file1.csv","C:\dir\data\file2.dat"]

示例: "C:\dir\data\*.text"

名称-值参数

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

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

示例: ttds = tabularTextDatastore("C:\dir\textdata","FileExtensions",[".csv",".txt"])

文本文件扩展名,指定为以逗号分隔的对组,其中包含 "FileExtensions" 和一个字符向量、字符向量元胞数组、字符串标量或字符串数组。指定的扩展名不需要支持的格式。如果要包含不受支持的扩展名,请指定所有扩展名。使用空引号 "" 表示不带扩展名的文件。

示例: "FileExtensions",".txt"

示例: "FileExtensions",[".text",".csv"]

数据类型: char | cell | string

子文件夹包含标记,指定为名称-值参数,其中包含 "IncludeSubfolders" 以及 truefalse、0 或 1。指定 true 可包含每个文件夹中的所有文件和子文件夹,指定 false 则仅包含每个文件夹中的文件。

如果不指定 "IncludeSubfolders",则默认值为 false

示例: "IncludeSubfolders",true

数据类型: logical | double

输出数据类型,指定为名称-值参数,由 "OutputType" 和以下值之一组成:

  • "auto" - 根据您是否指定 "RowTimes" 名称-值参数,检测数据存储的输出是表还是时间表。如果您指定 "RowTimes",则输出是时间表;否则,输出是表。

  • "table" - 返回 table

  • "timetable" - 返回 timetable

OutputType 的值决定 previewreadreadall 函数返回的数据类型。将此选项与 "RowTimes" 名称-值对组结合使用,可从 TabularTextDatastore 返回时间表。

示例: "OutputType","timetable"

数据类型: char | string

备用文件系统根路径,以名称-值参数形式指定,其中包含 "AlternateFileSystemRoots" 和一个字符串向量或元胞数组。当您在本地计算机上创建数据存储,但需要访问和处理另一台计算机(可能是不同操作系统)上的数据时,请使用 "AlternateFileSystemRoots"。此外,如果您使用 Parallel Computing Toolbox™ 和 MATLAB® Parallel Server™ 处理数据,而数据存储在本地计算机上并且在不同平台云或集群计算机上存储数据副本,则必须使用 "AlternateFileSystemRoots" 关联根路径。

  • 要关联一组等效的根路径,请将 "AlternateFileSystemRoots" 指定为字符串向量。例如,

    ["Z:\datasets","/mynetwork/datasets"]

  • 要将在数据存储方面等效的多组根路径关联起来,请将 "AlternateFileSystemRoots" 指定为包含多个行的元胞数组,其中每一行代表一组等效的根路径。将元胞数组中的每一行指定为一个字符串向量或字符向量元胞数组。例如:

    • "AlternateFileSystemRoots" 指定为字符串向量元胞数组。

      {["Z:\datasets", "/mynetwork/datasets"];...
       ["Y:\datasets", "/mynetwork2/datasets","S:\datasets"]}

    • 也可以将 "AlternateFileSystemRoots" 指定为字符向量元胞数组。

      {{'Z:\datasets','/mynetwork/datasets'};...
       {'Y:\datasets', '/mynetwork2/datasets','S:\datasets'}}

"AlternateFileSystemRoots" 的值必须满足以下条件:

  • 包含一行或多行,每一行指定一组等效的根路径。

  • 每一行指定多个根路径,每个根路径必须至少包含两个字符。

  • 根路径是唯一的,并且不是彼此的子文件夹。

  • 包含至少一个指向文件位置的根路径条目。

有关详细信息,请参阅Set Up Datastore for Processing on Different Machines or Clusters

示例: ["Z:\datasets","/mynetwork/datasets"]

数据类型: string | cell

文本变量的输出数据类型,指定为以逗号分隔的对组,其中包含 "TextType""char""string" 之一。如果 readreadallpreview 函数的输出表包含文本变量,则 "TextType"TabularTextDatastore 指定这些变量的数据类型。如果 "TextType""char",则输出为字符向量元胞数组。如果 "TextType""string",则输出的类型为 string

数据类型: char | string

导入日期时间数据的类型,指定为以逗号分隔的对组,其中包含 "DatetimeType" 和下列值之一:"datetime""text"

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

MATLAB datetime 数据类型

有关详细信息,请参阅 datetime

"text"

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

  • 如果 "TextType""char"tabularTextdatastore 将以字符向量元胞数组形式导入日期。

  • 如果 "TextType""string"tabularTextdatastore 将以字符串数组形式导入日期。

如果指定的 TextscanFormats 属性包含 %DtabularTextdatastore 将忽略在 DatetimeType 中指定的值。

示例: "DatetimeType","datetime"

数据类型: char | string

持续时间数据的输出数据类型,指定为名称-值参数,其中包含 "DurationType""duration""text" 之一。

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

MATLAB duration 数据类型

有关详细信息,请参阅 duration

"text"

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

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

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

数据类型: char | string

用于解释日期的区域设置,指定为字符向量或字符串标量。DatetimeLocale 值决定导入函数如何解释表示日期时间的文本。

当指定 DatetimeLocale 时,请采用 xx_YY 形式,其中 xx 是用于指定语言的小写 ISO 639-1 双字母代码,YY 是用于指定国家/地区的大写 ISO 3166-1 alpha-2 代码。

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

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

注意

Locale 值确定如何解释输入值。显示格式和语言可通过预设项窗口中的日期时间格式部分的区域设置选项来指定。要更改默认的日期时间区域设置,请参阅设置命令行窗口预设项

数据类型: char | string

除了这些名称-值对组外,还可以指定本页上的属性作为名称-值对组,但 Files 属性除外。

属性

全部展开

TabularTextDatastore 属性用于描述与 TabularTextDatastore 对象关联的文件。具体而言,这些属性可描述文件中的数据的格式,并控制应如何从数据存储中读取数据。当您创建 TabularTextDatastore 对象时,数据存储函数使用 Files 属性中的第一个文件来确定属性的值。在创建数据存储对象时,您可以使用名称-值对组参数指定 TabularTextDatastore 属性的值,但 Files 属性除外。要在创建对象后查看或修改属性,请使用圆点表示法:

ds = tabularTextDatastore("airlinesmall.csv");
ds.TreatAsMissing = "NA";
ds.MissingValue = 0;

文件属性

包含在数据存储中的文件,解析为字符向量元胞数组或字符串数组,其中每个字符向量或字符串表示文件的一个完整路径。tabularTextDatastoredatastore 函数中的 location 参数定义这些文件。

Files 属性指定的第一个文件确定数据存储中的所有文件的变量名称和格式信息。

当您更改此属性的值时,数据存储函数会重新计算 TabularTextDatastore 属性的值。

示例: {"C:\dir\data\mydata1.csv";"C:\dir\data\mydata2.csv"}

数据类型: cell | string

文件编码,指定为类似于下列值之一的字符向量或字符串标量。

"IBM866"

"ISO-8859-1"

"windows-847"

"KOI8-R"

"ISO-8859-2"

"windows-1250"

"KOI8-U"

"ISO-8859-3"

"windows-1251"

"Macintosh"

"ISO-8859-4"

"windows-1252"

"US-ASCII"

"ISO-8859-5"

"windows-1253"

"UTF-8"

"ISO-8859-6"

"windows-1254"

 

"ISO-8859-7"

"windows-1255"

 

"ISO-8859-8"

"windows-1256"

 

"ISO-8859-9"

"windows-1257"

 

"ISO-8859-11"

"windows-1258"

 

"ISO-8859-13"

 
 

"ISO-8859-15"

 

如果数据存储中的每个文件都能放入内存,则 FileEncoding 也可以是下列值之一。

"Big5"

"EUC-KR"

"GB18030"

"Shift_JIS"

"Big5-HKSCS"

"EUC-JP"

"GB2312"

"windows-949"

"CP949"

"EUC-TW"

"GBK"

 

当您更改此属性的值时,数据存储函数会重新计算 TabularTextDatastore 属性的值。

数据类型: char | string

读取变量名称,指定为逻辑值 truefalse

  • 如果未指定,tabularTextDatastore 函数将自动检测是否存在变量名称。

  • 如果为 true,则第一个文件的第一个非标头行确定了数据的变量名称。

  • 如果为 false,则第一个文件的第一个非标头行包含第一行数据。数据分配有默认变量名称 Var1Var2 等等。

当您更改此属性的值时,数据存储函数会重新计算 TabularTextDatastore 属性的值。

数据类型: logical

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

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

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

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

数据类型: char | string

数据存储中的变量名称,指定为字符向量元胞数组或字符串数组。按变量显示在文件中的顺序指定变量名称。如果不指定变量名称,则从数据存储中的第一个文件的第一个非标头行中检测该名称。修改 VariableNames 属性时,新变量名称的数量必须与原始变量名称的数量匹配。

要支持无效的 MATLAB 标识符作为变量名称,例如包含空白和非 ASCII 字符的变量名称,请将 VariableNamingRule 参数的值设置为 "preserve"

如果 ReadVariableNamesfalse,则 VariableNames 默认为 {"Var1","Var2", ...}

示例: {"Time","Name","Quantity"}

数据类型: cell | string

文本格式属性

文件开头要跳过的行数,指定为非负整数。如果未指定,tabularTextDatastore 函数将自动检测要跳过的行数。

读取变量名称或数据之前,tabularTextDatastore 函数会忽略指定数量的标题行。

当您更改此属性的值时,数据存储函数会重新计算 TabularTextDatastore 属性的值。

数据类型: double

字段分隔符,指定为字符向量、字符向量元胞数组、字符串标量或字符串数组。可在一个字符向量元胞数组或字符串数组中指定多个分隔符。如果未指定,tabularTextDatastore 函数将自动检测分隔符。

示例: "|"

示例: {";","*"}

文件中重复的分隔符被解释为相互之间包含空字段的多个分隔符。如果未指定,默认情况下 read 函数将自动检测分隔符。

当您将以下转义序列之一指定为分隔符时,该序列将转换成对应的控制字符。

\b退格符
\n换行符
\r回车符
\t制表符
\\反斜杠 (\)

当您更改此属性的值时,数据存储函数会重新计算 TabularTextDatastore 属性的值。

数据类型: char | cell | string

行分隔符,指定为字符向量或字符串标量,必须为单个字符或者为 "\r""\n""\r\n" 之一。

当您更改此属性的值时,数据存储函数会重新计算 TabularTextDatastore 属性的值。

示例: ":"

数据类型: char | string

视为缺失值的文本,指定为单个字符向量、字符向量元胞数组、字符串标量或字符串数组。指定为 TreatAsMissing 的值会替换为 MissingValue 属性中定义的值。例如,如果 MissingValue 定义为 NaN,并且 TreatAsMissing 指定为 "NA"。那么在导入的数据中,出现的所有 "NA" 都将替换为 NaN

此选项仅适用于数值字段。此外,此属性等效于 textscan 函数的 TreatAsEmpty 名称-值对组参数。

当您更改此属性的值时,数据存储函数会重新计算 TabularTextDatastore 属性的值。

示例: "NA"

示例: {"-",""}

数据类型: char | cell | string

带分隔符的文本文件中缺失的数值字段的值,指定为标量。该属性等效于 textscan 函数的 EmptyValue 名称-值对组参数。

数据类型: double

高级文本格式属性

数据字段格式,指定为字符向量元胞数组或字符串数组,其中每个字符向量或字符串包含一个转换设定符。

当您指定或修改 TextscanFormats 属性时,可以使用 textscan 函数对 formatSpec 参数接受的相同转换设定符。TextscanFormats 的有效值包括跳过使用星号 (*) 字符的字段的转换设定符和跳过字面文本的转换设定符。转换设定符的数量必须与 VariableNames 属性中的变量数量匹配。

  • 如果 TextscanFormats 的值包含使用星号字符 (*) 跳过字段的转换设定符,则 SelectedVariableNames 属性的值会自动进行更新。MATLAB 使用 %*q 转换设定符跳过 SelectedVariableNames 属性忽略的字段,并将这些字段内容视为字面字符向量。对于等宽文件,使用相应的转换设定符和字段宽度来指明跳过的字段。例如,%*52c 会跳过包含 52 个字符的字段。

  • 如果您没有指定 TextscanFormats 的值,则 datastore 通过扫描数据存储中第一个文件的第一个非标头行中的文本来确定数据字段格式。

  • 从 R2020b 开始,datastore 将前缀文字检测为十六进制和二进制数据。以前,datastore 将前缀文字检测为文本数据。

示例: {"%s","%s","%f"}

数据类型: cell | string

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

数据类型: char | string

用于区分文件中注释的注释字符,指定为字符向量、字符串标量或二元素字符串或元胞数组。

  • 如果指定字符向量或字符串标量,则同一行中的所有后续文本都将解释为注释。例如,"CommentStyle","/*" 将同一行中 /* 后的所有文本解释为注释。

  • 如果指定二元素字符串向量或包含字符向量的二元素元胞数组,则这两个字符之间的所有文本都将解释为注释。例如,"CommentStyle",{"/*", "*/"}"/*""*/" 之间的所有文本解释为注释。

TabularTextDatastore 读取时,read 函数仅检查位于每个字段开头而不是字段中的注释。

当您更改此属性的值时,datastore 函数会重新计算 TabularTextDatastore 属性的值。

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

数据类型: char | cell | string

空白字符,指定为由一个或多个字符组成的字符向量或字符串标量。

当您将以下转义序列之一指定为空白字符时,datastore 会将该序列转换成对应的控制字符。

\b退格符
\n换行符
\r回车符
\t制表符
\\反斜杠 (\)

当您更改此属性的值时,数据存储函数会重新计算 TabularTextDatastore 属性的值。

示例: " \b\t"

数据类型: char | string

多分隔符处理,指定为 truefalse。如果是 true,则 datastore 将连续分隔符当作一个分隔符处理。由空白分隔的重复分隔符也被当作一个分隔符处理。

当您更改此属性的值时,数据存储函数会重新计算 TabularTextDatastore 属性的值。

previewreadreadall 表的属性

要从文件中读取的变量,指定为字符向量元胞数组或字符串数组,其中每个字符向量或字符串包含一个变量的名称。可按任何顺序指定变量名称。

要支持无效的 MATLAB 标识符作为变量名称,例如包含空白和非 ASCII 字符的变量名称,请将 VariableNamingRule 参数的值设置为 "preserve"

示例: ["Var3","Var7","Var4"]

数据类型: cell | string

要读取的选定变量的格式,指定为字符向量元胞数组或字符串数组,其中每个字符向量或字符串包含一个转换设定符。要读取的变量由 SelectedVariableNames 属性指示。SelectedFormats 中的字符向量或字符串数必须与要读取的变量数一致。

您可以使用 textscan 函数接受的相同转换设定符,包括跳过字面文本的设定符。但是,您不能使用跳过字段的转换设定符。也即,转换设定符不能包含星号字符 (*)。

示例: ["%d","%d"]

数据类型: cell | string

在调用 read 函数时要读取的数据量,指定为正标量或 "file"

  • 如果 ReadSize 是正整数,则每次调用 read 最多读取 ReadSize 行。

  • 如果 ReadSize"file",则对 read 的每次调用会读取一个文件中的所有数据。

当您将 ReadSize 从数值标量更改为 "file" 时(反之亦然),MATLAB 会将数据存储重置为尚未从其中读取任何数据的状态。

数据类型: double | char | string

文本变量的输出数据类型,指定为 "char""string"TextType 指定使用 %s%q[...] 格式化的文本变量的数据类型。

  • 如果 TextType"char",则输出为字符向量元胞数组。

  • 如果 TextType"string",则输出的类型为 string

数据类型: char | string

行时间变量的名称,以名称-值参数形式指定,其中包含 "RowTimes" 和变量名称(如 "Date")或变量索引(如 3)。

RowTimes 是与时间表相关的参数。时间表的每行都与一个时间相关联,该时间是在时间表的时间向量中捕获的。RowTimes 中指定的变量必须包含 datetimeduration 向量。

如果 "OutputType" 的值是 "timetable",但您没有指定 "RowTimes",则 TabularTextDatastore 使用第一个 datetimeduration 变量作为时间表的行时间。

writeall 使用的属性

此 属性 为只读。

用于构造数据存储的文件夹,以字符向量元胞数组形式返回。该元胞数组定向为一个列向量。每个字符向量均为指向一个包含数据文件的文件夹的路径。创建数据存储时,tabularTextDatastoredatastore 函数中的 location 参数用来定义 Folders

当您修改 TabularTextDatastore 对象的 Files 属性时,将重置 Folders 属性。

数据类型: cell

此 属性 为只读。

支持写入的格式,以字符串组成的行向量形式返回。此属性指定使用 writeall 从数据存储写入输出文件时可能的输出格式。

此 属性 为只读。

默认输出格式,以字符串标量形式返回。此属性指定使用 writeall 从数据存储写入输出文件时的默认格式。

数据类型: string

对象函数

hasdata确定是否有数据可读取
numpartitions数据存储分区数
partition划分数据存储
preview预览数据存储中的数据子集
read读取数据存储中的数据
readall读取数据存储中的所有数据
writeall将数据存储写入文件
reset将数据存储重置为初始状态
transform变换数据存储
combine合并来自多个数据存储的数据
isPartitionable确定数据存储是否可分区
isSubsettableDetermine whether datastore is subsettable
isShuffleable确定数据存储是否可乱序

示例

全部折叠

使用 FileSet 对象或文件路径,从示例文件 airlinesmall.csv 创建一个数据存储。指定如何处理缺失值。仅选择感兴趣的变量。

从文件 airlinesmall.csv 创建一个 FileSet 对象。创建一个数据存储,其中 "NA" 值被视为缺失值,缺失值被视为 0

fs = matlab.io.datastore.FileSet("airlinesmall.csv");
ds = tabularTextDatastore(fs,"TreatAsMissing","NA",...
    "MissingValue",0);

查看数据存储中的变量。

ds.VariableNames
ans = 1x29 cell
    {'Year'}    {'Month'}    {'DayofMonth'}    {'DayOfWeek'}    {'DepTime'}    {'CRSDepTime'}    {'ArrTime'}    {'CRSArrTime'}    {'UniqueCarrier'}    {'FlightNum'}    {'TailNum'}    {'ActualElapsedTime'}    {'CRSElapsedTime'}    {'AirTime'}    {'ArrDelay'}    {'DepDelay'}    {'Origin'}    {'Dest'}    {'Distance'}    {'TaxiIn'}    {'TaxiOut'}    {'Cancelled'}    {'CancellationCode'}    {'Diverted'}    {'CarrierDelay'}    {'WeatherDelay'}    {'NASDelay'}    {'SecurityDelay'}    {'LateAircraftDelay'}

修改 SelectedVariableNames 属性以指定相关变量。

ds.SelectedVariableNames = ["Year","Month","Cancelled"];

您也可以将数据的位置指定为文件路径。

ds = tabularTextDatastore("airlinesmall.csv");

使用上述任一位置格式,您还可以在创建数据存储时指定感兴趣的变量。

ds = tabularTextDatastore("airlinesmall.csv","TreatAsMissing","NA",...
    "MissingValue",0,"SelectedVariableNames",["Year","Month","Cancelled"]);

根据示例文件 airlinesmall.csv(包含表格数据)创建一个数据存储。

ds = tabularTextDatastore("airlinesmall.csv","TreatAsMissing","NA",...
    "MissingValue",0);

指定相关变量。

ds.SelectedVariableNames = ["Year","Month","UniqueCarrier"];

查看 SelectedFormats 属性。

ds.SelectedFormats
ans = 1x3 cell
    {'%f'}    {'%f'}    {'%q'}

SelectedFormats 属性指定 tabularTextDatastore 函数如何解释变量的格式。YearMonth 变量作为浮点值的列读取,UniqueCarrier 变量作为文本列读取。

修改 SelectedFormats 属性,以将前两个变量作为有符号整数读取,将第三个变量作为分类值读取。

ds.SelectedFormats = ["%d","%d","%C"];

预览数据。

T = preview(ds)
T=8×3 table
    Year    Month    UniqueCarrier
    ____    _____    _____________

    1987     10           PS      
    1987     10           PS      
    1987     10           PS      
    1987     10           PS      
    1987     10           PS      
    1987     10           PS      
    1987     10           PS      
    1987     10           PS      

使用 OutputTypeRowTimes 名称-值对组来使 tabulartextDatastore 返回时间表,而不是表。

outages.csv 创建一个数据存储。将 "OutputType" 名称-值对组指定为 "timetable"。

ttds = tabularTextDatastore("outages.csv","OutputType","timetable");
preview(ttds)
ans=8×5 timetable
       OutageTime          Region         Loss     Customers     RestorationTime            Cause       
    ________________    _____________    ______    __________    ________________    ___________________

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

如果您没有同时指定 'RowTimes'tabularTextDatastore 将使用第一个日期时间或持续时间变量作为行时间。在本例中,将 OutageTime 变量用于行时间。

指定 'RowTimes' 选项以使用恢复时间(RestorationTime 变量)作为行时间,而不是使用停电时间。

ttds = tabularTextDatastore("outages.csv","OutputType","timetable","RowTimes","RestorationTime");
preview(ttds)
ans=8×5 timetable
    RestorationTime        Region           OutageTime        Loss     Customers            Cause       
    ________________    _____________    ________________    ______    __________    ___________________

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

局限性

  • 不支持其中的日期、月份或时区名称采用非 en_US 区域设置语言的日期时间数据。对于无法识别的日期时间格式,请使用 TextscanFormats 参数指定格式。

版本历史记录

在 R2014b 中推出