tabularTextDatastore
表格文本文件的数据存储
说明
对于不一定能放入内存的大型文本文件(包含列向数据或表格数据)集合,可以使用 TabularTextDatastore
对象来进行管理。表格数据是以矩形方式排列且每一行具有相同条目数的数据。您可以使用 tabularTextDatastore
函数创建 TabularTextDatastore
对象,指定其属性,然后使用对象函数导入和处理数据。
创建对象
描述
根据 ttds
= tabularTextDatastore(location
)location
指定的数据集合创建一个数据存储。
使用一个或多个名称-值对组参数为 ttds
= tabularTextDatastore(location
,Name,Value
)ttds
指定其他参数和属性。例如,tabularTextDatastore(location,"FileExtensions",[".txt",".csv"])
只根据 location
中具有 .txt
和 .csv
扩展名的文件创建一个数据存储。
输入参数
location
— 数据存储中包含的文件或文件夹
FileSet
对象 | 文件路径 | DsFileSet
对象
数据存储中包含的文件或文件夹,指定为 FileSet
对象、文件路径或 DsFileSet
对象。
FileSet
对象 - 您可以将location
指定为FileSet
对象。与指定路径或DsFileSet
对象相比,将位置指定为FileSet
对象会加快数据存储的构造时间。有关详细信息,请参阅matlab.io.datastore.FileSet
。文件路径 - 您可以将单个文件路径指定为字符向量或字符串标量。您可以将多个文件路径指定为字符向量元胞数组或字符串数组。
DsFileSet
对象 - 您可以指定DsFileSet
对象。有关详细信息,请参阅matlab.io.datastore.DsFileSet
。
文件或文件夹可以是本地的或远程的:
本地文件或文件夹 - 指定文件或文件夹的本地路径。如果文件不在当前文件夹中,则指定完整路径或相对路径。指定文件夹的子文件夹中的文件不会自动包括在数据存储中。在指定本地路径时可以使用通配符 (*)。此字符指定数据存储包含所有匹配的文件或匹配文件夹中的所有文件。
远程文件或文件夹 - 将远程文件或文件夹的完整路径指定为
hdfs:///
形式的统一资源定位器 (URL)。有关详细信息,请参阅处理远程数据。path_to_file
当您指定文件夹时,数据存储仅包括具有支持的文件格式的文件,而忽略任何其他格式的文件。要指定要包含在数据存储中的自定义文件扩展名列表,请参阅 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"
和一个字符向量、字符向量元胞数组、字符串标量或字符串数组。指定的扩展名不需要支持的格式。如果要包含不受支持的扩展名,请指定所有扩展名。使用空引号 ""
表示不带扩展名的文件。
示例: "FileExtensions",".txt"
示例: "FileExtensions",[".text",".csv"]
数据类型: char
| cell
| string
IncludeSubfolders
— 子文件夹包含标记
true
或 false
| 0 或 1
子文件夹包含标记,指定为名称-值参数,其中包含 "IncludeSubfolders"
以及 true
、false
、0 或 1。指定 true
可包含每个文件夹中的所有文件和子文件夹,指定 false
则仅包含每个文件夹中的文件。
如果不指定 "IncludeSubfolders"
,则默认值为 false
。
示例: "IncludeSubfolders",true
数据类型: logical
| double
AlternateFileSystemRoots
— 备用文件系统根路径
字符串向量 | 元胞数组
备用文件系统根路径,以名称-值参数形式指定,其中包含 "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"
文本变量的输出数据类型,指定为以逗号分隔的对组,其中包含 "TextType"
和 "char"
或 "string"
之一。如果 read
、readall
或 preview
函数的输出表包含文本变量,则 "TextType"
为 TabularTextDatastore
指定这些变量的数据类型。如果 "TextType"
为 "char"
,则输出为字符向量元胞数组。如果 "TextType"
为 "string"
,则输出的类型为 string
。
数据类型: char
| string
DatetimeType
— 导入日期时间数据的类型
"datetime"
(默认) | "text"
导入日期时间数据的类型,指定为以逗号分隔的对组,其中包含 "DatetimeType"
和下列值之一:"datetime"
或 "text"
。
值 | 导入日期时间数据的类型 |
---|---|
"datetime" | MATLAB 有关详细信息,请参阅 |
"text" | 如果
|
如果指定的 TextscanFormats
属性包含 %D
,tabularTextdatastore
将忽略在 DatetimeType
中指定的值。
示例: "DatetimeType","datetime"
数据类型: char
| string
DurationType
— 持续时间数据的输出数据类型
"duration"
(默认) | "text"
持续时间数据的输出数据类型,指定为名称-值参数,其中包含 "DurationType"
和 "duration"
或 "text"
之一。
值 | 导入的持续时间数据的类型 |
---|---|
"duration" | MATLAB 有关详细信息,请参阅 |
"text" | 如果将
|
数据类型: char
| string
DatetimeLocale
— 用于解释日期的区域设置
"en_US"
(默认) | 字符向量 | 字符串标量
用于解释日期的区域设置,指定为字符向量或字符串标量。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;
文件属性
Files
— 包含在数据存储中的文件
字符向量元胞数组 | 字符串数组
包含在数据存储中的文件,解析为字符向量元胞数组或字符串数组,其中每个字符向量或字符串表示文件的一个完整路径。tabularTextDatastore
和 datastore
函数中的 location
参数定义这些文件。
Files
属性指定的第一个文件确定数据存储中的所有文件的变量名称和格式信息。
当您更改此属性的值时,数据存储函数会重新计算 TabularTextDatastore
属性的值。
示例: {"C:\dir\data\mydata1.csv";"C:\dir\data\mydata2.csv"}
数据类型: cell
| string
FileEncoding
— 文件编码
"UTF-8"
(默认) | "US-ASCII"
| "Macintosh"
| ...
文件编码,指定为类似于下列值之一的字符向量或字符串标量。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
| |
|
| |
|
| |
| ||
|
如果数据存储中的每个文件都能放入内存,则 FileEncoding
也可以是下列值之一。
|
|
|
|
|
|
|
|
|
|
|
当您更改此属性的值时,数据存储函数会重新计算 TabularTextDatastore
属性的值。
数据类型: char
| string
ReadVariableNames
— 读取变量名称
true
| false
读取变量名称,指定为逻辑值 true
或 false
。
如果未指定,
tabularTextDatastore
函数将自动检测是否存在变量名称。如果为
true
,则第一个文件的第一个非标头行确定了数据的变量名称。如果为
false
,则第一个文件的第一个非标头行包含第一行数据。数据分配有默认变量名称Var1
、Var2
等等。
当您更改此属性的值时,数据存储函数会重新计算 TabularTextDatastore
属性的值。
数据类型: logical
VariableNamingRule
— 保留变量名称的标志
"modify"
(默认) | "preserve"
保留变量名称的标志,指定为 "modify"
或 "preserve"
。
"modify"
- 将无效变量名称(由isvarname
函数确定)转换为有效的 MATLAB 标识符。"preserve"
- 保留作为无效 MATLAB 标识符的变量名称,如包含空白和非 ASCII 字符的变量名称。
从 R2019b 开始,变量名称和行名称可以包含任何字符,包括空格和非 ASCII 字符。此外,它们可以由任何字符(而不仅仅是字母)开头。变量名称和行名称可以不是有效的 MATLAB 标识符(由 isvarname
函数决定)。要保留这些变量名称和行名称,请将 VariableNamingRule
的值设置为 "preserve"
。当 VariableNamingRule
的值从 "modify"
更改为 "preserve"
时,变量名称不会刷新。
数据类型: char
| string
VariableNames
— 变量名称
字符向量元胞数组 | 字符串数组
数据存储中的变量名称,指定为字符向量元胞数组或字符串数组。按变量显示在文件中的顺序指定变量名称。如果不指定变量名称,则从数据存储中的第一个文件的第一个非标头行中检测该名称。修改 VariableNames
属性时,新变量名称的数量必须与原始变量名称的数量匹配。
要支持无效的 MATLAB 标识符作为变量名称,例如包含空白和非 ASCII 字符的变量名称,请将 VariableNamingRule
参数的值设置为 "preserve"
。
如果 ReadVariableNames
为 false
,则 VariableNames
默认为 {"Var1","Var2", ...}
。
示例: {"Time","Name","Quantity"}
数据类型: cell
| string
文本格式属性
NumHeaderLines
— 要跳过的行数
非负整数
文件开头要跳过的行数,指定为非负整数。如果未指定,tabularTextDatastore
函数将自动检测要跳过的行数。
读取变量名称或数据之前,tabularTextDatastore
函数会忽略指定数量的标题行。
当您更改此属性的值时,数据存储函数会重新计算 TabularTextDatastore
属性的值。
数据类型: double
Delimiter
— 字段分隔符
字符向量 | 字符向量元胞数组 | 字符串标量 | 字符串数组
字段分隔符,指定为字符向量、字符向量元胞数组、字符串标量或字符串数组。可在一个字符向量元胞数组或字符串数组中指定多个分隔符。如果未指定,tabularTextDatastore
函数将自动检测分隔符。
示例: "|"
示例: {";","*"}
文件中重复的分隔符被解释为相互之间包含空字段的多个分隔符。如果未指定,默认情况下 read 函数将自动检测分隔符。
当您将以下转义序列之一指定为分隔符时,该序列将转换成对应的控制字符。
\b | 退格符 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符 |
\\ | 反斜杠 (\ ) |
当您更改此属性的值时,数据存储函数会重新计算 TabularTextDatastore
属性的值。
数据类型: char
| cell
| string
RowDelimiter
— 行分隔符
\r\n
(默认) | 字符向量 | 字符串标量
行分隔符,指定为字符向量或字符串标量,必须为单个字符或者为 "\r"
、"\n"
或 "\r\n"
之一。
当您更改此属性的值时,数据存储函数会重新计算 TabularTextDatastore
属性的值。
示例: ":"
数据类型: char
| string
TreatAsMissing
— 视为缺失值的文本
""
(默认) | 字符向量 | 字符向量元胞数组 | 字符串标量 | 字符串数组
视为缺失值的文本,指定为单个字符向量、字符向量元胞数组、字符串标量或字符串数组。指定为 TreatAsMissing
的值会替换为 MissingValue
属性中定义的值。例如,如果 MissingValue
定义为 NaN
,并且 TreatAsMissing
指定为 "NA"
。那么在导入的数据中,出现的所有 "NA"
都将替换为 NaN
。
此选项仅适用于数值字段。此外,此属性等效于 textscan
函数的 TreatAsEmpty
名称-值对组参数。
当您更改此属性的值时,数据存储函数会重新计算 TabularTextDatastore
属性的值。
示例: "NA"
示例: {"-",""}
数据类型: char
| cell
| string
MissingValue
— 缺失的数值字段的值
NaN
(默认) | 标量
带分隔符的文本文件中缺失的数值字段的值,指定为标量。该属性等效于 textscan
函数的 EmptyValue
名称-值对组参数。
数据类型: double
高级文本格式属性
TextscanFormats
— 数据字段格式
字符向量元胞数组 | 字符串数组
数据字段格式,指定为字符向量元胞数组或字符串数组,其中每个字符向量或字符串包含一个转换设定符。
当您指定或修改 TextscanFormats
属性时,可以使用 textscan
函数对 formatSpec
参数接受的相同转换设定符。TextscanFormats
的有效值包括跳过使用星号 (*) 字符的字段的转换设定符和跳过字面文本的转换设定符。转换设定符的数量必须与 VariableNames
属性中的变量数量匹配。
如果
TextscanFormats
的值包含使用星号字符 (*) 跳过字段的转换设定符,则SelectedVariableNames
属性的值会自动进行更新。MATLAB 使用%*q
转换设定符跳过SelectedVariableNames
属性忽略的字段,并将这些字段内容视为字面字符向量。对于等宽文件,使用相应的转换设定符和字段宽度来指明跳过的字段。例如,%*52c
会跳过包含 52 个字符的字段。如果您没有指定
TextscanFormats
的值,则datastore
通过扫描数据存储中第一个文件的第一个非标头行中的文本来确定数据字段格式。从 R2020b 开始,
datastore
将前缀文字检测为十六进制和二进制数据。以前,datastore
将前缀文字检测为文本数据。
示例: {"%s","%s","%f"}
数据类型: cell
| string
ExponentCharacters
— 指数字符
"eEdD"
(默认) | 字符向量 | 字符串标量
指数字符,指定为字符向量或字符串标量。默认的指数字符为 e
、E
、d
和 D
。
数据类型: char
| string
CommentStyle
— 注释字符
""
(默认) | 字符向量 | 字符串标量 | 二元数组
用于区分文件中注释的注释字符,指定为字符向量、字符串标量或二元素字符串或元胞数组。
如果指定字符向量或字符串标量,则同一行中的所有后续文本都将解释为注释。例如,
"CommentStyle","/*"
将同一行中/*
后的所有文本解释为注释。如果指定二元素字符串向量或包含字符向量的二元素元胞数组,则这两个字符之间的所有文本都将解释为注释。例如,
"CommentStyle",{"/*", "*/"}
将"/*"
和"*/"
之间的所有文本解释为注释。
从 TabularTextDatastore
读取时,read
函数仅检查位于每个字段开头而不是字段中的注释。
当您更改此属性的值时,datastore
函数会重新计算 TabularTextDatastore
属性的值。
示例: "CommentStyle",{"/*", "*/"}
数据类型: char
| cell
| string
Whitespace
— 空白字符
" \b\t"
(默认) | 字符向量 | 字符串标量
空白字符,指定为由一个或多个字符组成的字符向量或字符串标量。
当您将以下转义序列之一指定为空白字符时,datastore
会将该序列转换成对应的控制字符。
\b | 退格符 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符 |
\\ | 反斜杠 (\ ) |
当您更改此属性的值时,数据存储函数会重新计算 TabularTextDatastore
属性的值。
示例: " \b\t"
数据类型: char
| string
MultipleDelimitersAsOne
— 多分隔符处理
0 (false)
(默认) | 1 (true)
多分隔符处理,指定为 true
或 false
。如果是 true
,则 datastore
将连续分隔符当作一个分隔符处理。由空白分隔的重复分隔符也被当作一个分隔符处理。
当您更改此属性的值时,数据存储函数会重新计算 TabularTextDatastore
属性的值。
preview
、read
、readall
表的属性
SelectedVariableNames
— 要读取的变量
字符向量元胞数组 | 字符串数组
要从文件中读取的变量,指定为字符向量元胞数组或字符串数组,其中每个字符向量或字符串包含一个变量的名称。可按任何顺序指定变量名称。
要支持无效的 MATLAB 标识符作为变量名称,例如包含空白和非 ASCII 字符的变量名称,请将 VariableNamingRule
参数的值设置为 "preserve"
。
示例: ["Var3","Var7","Var4"]
数据类型: cell
| string
SelectedFormats
— 选定变量的格式
字符向量元胞数组 | 字符串数组
要读取的选定变量的格式,指定为字符向量元胞数组或字符串数组,其中每个字符向量或字符串包含一个转换设定符。要读取的变量由 SelectedVariableNames
属性指示。SelectedFormats
中的字符向量或字符串数必须与要读取的变量数一致。
您可以使用 textscan
函数接受的相同转换设定符,包括跳过字面文本的设定符。但是,您不能使用跳过字段的转换设定符。也即,转换设定符不能包含星号字符 (*)。
示例: ["%d","%d"]
数据类型: cell
| string
ReadSize
— 要读取的数据量
20000 (默认) | 正标量 | "file"
在调用 read
函数时要读取的数据量,指定为正标量或 "file"
。
如果
ReadSize
是正整数,则每次调用read
最多读取ReadSize
行。如果
ReadSize
为"file"
,则对read
的每次调用会读取一个文件中的所有数据。
当您将 ReadSize
从数值标量更改为 "file"
时(反之亦然),MATLAB 会将数据存储重置为尚未从其中读取任何数据的状态。
数据类型: double
| char
| string
TextType
— 文本变量的输出数据类型
"char"
(默认) | "string"
文本变量的输出数据类型,指定为 "char"
或 "string"
。TextType
指定使用 %s
、%q
或 [...]
格式化的文本变量的数据类型。
如果
TextType
为"char"
,则输出为字符向量元胞数组。如果
TextType
为"string"
,则输出的类型为string
。
数据类型: char
| string
RowTimes
— 行时间变量的名称
变量名称 | 变量索引
行时间变量的名称,以名称-值参数形式指定,其中包含 "RowTimes"
和变量名称(如 "Date"
)或变量索引(如 3
)。
RowTimes
是与时间表相关的参数。时间表的每行都与一个时间相关联,该时间是在时间表的时间向量中捕获的。RowTimes
中指定的变量必须包含 datetime
或 duration
向量。
如果 "OutputType"
的值是 "timetable"
,但您没有指定 "RowTimes"
,则 TabularTextDatastore
使用第一个 datetime
或 duration
变量作为时间表的行时间。
writeall
使用的属性
Folders
— 用于构造数据存储的文件夹
字符向量元胞数组
此 属性 为只读。
用于构造数据存储的文件夹,以字符向量元胞数组形式返回。该元胞数组定向为一个列向量。每个字符向量均为指向一个包含数据文件的文件夹的路径。创建数据存储时,tabularTextDatastore
和 datastore
函数中的 location
参数用来定义 Folders
。
当您修改 TabularTextDatastore
对象的 Files
属性时,将重置 Folders
属性。
数据类型: cell
SupportedOutputFormats
— 支持写入的格式
字符串行向量
此 属性 为只读。
支持写入的格式,以字符串组成的行向量形式返回。此属性指定使用 writeall
从数据存储写入输出文件时可能的输出格式。
DefaultOutputFormat
— 默认输出格式
字符串标量
对象函数
hasdata | 确定是否有数据可读取 |
numpartitions | 数据存储分区数 |
partition | 划分数据存储 |
preview | 预览数据存储中的数据子集 |
read | 读取数据存储中的数据 |
readall | 读取数据存储中的所有数据 |
writeall | 将数据存储写入文件 |
reset | 将数据存储重置为初始状态 |
transform | 变换数据存储 |
combine | 合并来自多个数据存储的数据 |
isPartitionable | 确定数据存储是否可分区 |
isSubsettable | Determine 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
函数如何解释变量的格式。Year
和 Month
变量作为浮点值的列读取,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
从表格文本数据存储返回时间表
使用 OutputType
和 RowTimes
名称-值对组来使 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 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)