用于电子表格文件的数据存储
使用一个spreadsheetDatastore
对象来管理大型电子表格文件集合,这些集合不一定适合于内存。您可以创建spreadsheetDatastore
对象使用spreadsheetDatastore
函数,指定其属性,然后使用对象函数导入数据。
位置
- - - - - -要包含在数据存储中的文件或文件夹文件集
对象|文件路径|DsFileSet
对象数据存储中包含的文件或文件夹,指定为文件集
对象,作为文件路径,或作为DsFileSet
对象。
文件集
object—可以指定位置
作为一个文件集
对象。将位置指定为文件集
对象导致数据存储的构造时间比指定路径或更快DsFileSet
对象。有关更多信息,请参见matlab.io.datastore.FileSet
.
文件路径——可以将单个文件路径指定为字符向量或字符串标量。可以将多个文件路径指定为字符向量单元格数组或字符串数组。
DsFileSet
object -你可以指定一个DsFileSet
对象。有关更多信息,请参见matlab.io.datastore.DsFileSet
.
文件或文件夹可以是本地的或远程的:
本地文件或文件夹—指定文件或文件夹的本地路径。如果文件不在当前文件夹中,则指定完整路径或相对路径。指定文件夹的子文件夹中的文件不会自动包含在数据存储中。指定本地路径时可以使用通配符(*)。此字符指定数据存储包含所有匹配的文件或匹配文件夹中的所有文件。
远程文件或文件夹——指定远程文件或文件夹的完整路径,作为表单的统一资源定位符(URL)hdfs: / / /
.有关更多信息,请参见使用远程数据.path_to_file
当指定文件夹时,数据存储只包含支持的文件格式的文件,而忽略任何其他格式的文件。金宝app要指定要包含在数据存储中的文件扩展名的自定义列表,请参阅FileExtensions
财产。
的spreadsheetDatastore
函数支持扩展名文件金宝app:xls
,.xlsx
,.xlsm
,.xltx
,.xltm
.
例子:“file1.xlsx”
例子:“. . / dir /数据/ file1.xlsx”
例子:[" C: \ dir \ data \ file1.xlsx”,“C: \ dir \ data \ file2.xlsx”)
例子:“s3: / / bucketname / path_to_files / * xls”
指定可选的逗号分隔的对名称,值
参数。的名字
参数名和价值
为对应值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
ssd = spreadsheetDatastore(“C: \ dir \ spreadsheetdata”、“FileExtensions”(“xls”、“.xlsm”))
FileExtensions
- - - - - -电子表格文件扩展名电子表格文件扩展名,指定为由“FileExtensions”
以及字符向量、字符向量的单元数组、字符串标量或字符串数组。
如果没有指定“FileExtensions”
,然后spreadsheetDatastore
自动包括所有文件xls
,.xlsx
,.xlsm
,.xltx
,.xltm
指定路径中的扩展名。
如果您想包含带有非标准文件扩展名的电子表格SpreadsheetDatastore
,然后显式地指定这些扩展。
如果你想创建一个SpreadsheetDatastore
对于没有任何扩展名的文件,则指定“FileExtensions”
作为一个空字符向量,''
.
例子:“FileExtensions”、“
例子:“FileExtensions”、“xls”
例子:“FileExtensions”(“.xlsx”、“.xlsm”)
数据类型:字符
|细胞
|字符串
IncludeSubfolders
- - - - - -子文件夹包含国旗真正的
或假
|0或1子文件夹包含标志,指定为名称-值参数组成“IncludeSubfolders”
和真正的
,假
, 0,或1。指定真正的
将所有文件和子文件夹包含在每个文件夹或假
只包含每个文件夹中的文件。
如果没有指定“IncludeSubfolders”
,则默认值为假
.
例子:“IncludeSubfolders”,真的
数据类型:逻辑
|双
OutputType
- - - - - -输出数据类型“汽车”
(默认)|“表”
|“时间表”
AlternateFileSystemRoots
- - - - - -备用文件系统根路径可选的文件系统根路径,指定为名称-值参数组成的“AlternateFileSystemRoots”
字符串向量或单元格数组。使用“AlternateFileSystemRoots”
当您在本地机器上创建数据存储,但需要访问和处理另一台机器(可能是不同的操作系统)上的数据时。此外,当使用Parallel Computing Toolbox™和MATLAB®并行服务器™,并且数据存储在本地机器上,在不同的平台云或集群机器上可以使用数据的副本“AlternateFileSystemRoots”
关联根路径。
若要将一组相互等效的根路径关联起来,请指定“AlternateFileSystemRoots”
作为一个字符串向量。例如,
[" Z: \数据集”、“/ mynetwork /数据集”)
若要关联与该数据存储相同的多组根路径,请指定“AlternateFileSystemRoots”
作为包含多行的单元格数组,其中每一行表示一组等价的根路径。将单元格数组中的每一行指定为字符串向量或字符向量的单元格数组。例如:
指定“AlternateFileSystemRoots”
作为字符串向量的单元格数组。
{[Z: \“数据集”、“/ mynetwork /数据集”);…[" Y: \数据集”、“/ mynetwork2 /数据集”、“年代:\数据集”)}
另外,指定“AlternateFileSystemRoots”
作为字符向量的单元数组的单元数组。
{{“Z: \数据集”、“mynetwork /数据集”},…{“Y: \数据集”,“mynetwork2 /数据集”,年代:\数据集的}}
的价值“AlternateFileSystemRoots”
必须满足以下条件:
包含一个或多个行,其中每一行指定一组等价的根路径。
每行指定多个根路径,且每个根路径至少包含两个字符。
根路径是唯一的,并且不是彼此的子文件夹。
包含至少一个指向文件位置的根路径条目。
有关更多信息,请参见设置数据存储,以便在不同的机器或集群上进行处理.
例子:[" Z: \数据集”、“/ mynetwork /数据集”)
数据类型:字符串
|细胞
TextType
- - - - - -文本变量的输出数据类型“字符”
(默认)|“字符串”
文本变量的输出数据类型,指定为名称-值参数组成“TextType”
,要么“字符”
或“字符串”
.
的输出表读
,readall
,或预览
函数包含文本变量“TextType”
指定这些变量的数据类型。
如果“TextType”
是“字符”
,则输出字符向量的单元格数组。
如果“TextType”
是“字符串”
,则输出具有类型字符串
.
数据类型:字符
|字符串
除了这些名称-值对之外,还可以将该页面上的任何属性指定为名称-值对(除了文件
属性)。
SpreadsheetDatastore
属性描述数据存储对象中文件的格式,并控制如何从数据存储中读取数据。除了文件
属性时,可以指定的值SpreadsheetDatastore
属性在创建数据存储对象时使用名称-值对参数。要在创建对象后查看或修改属性,请使用点符号:
ds = spreadsheetDatastore (“airlinesmall_subset.xlsx”);ds。张= [1 2];ds。范围=“A1: C6”;
文件
- - - - - -数据存储中包含的文件包含在数据存储中的文件,解析为字符向量或字符串数组的单元格数组,其中每个字符向量或字符串都是文件的完整路径。的位置
论点的spreadsheetDatastore
和数据存储
函数定义这些文件。
单元格数组中指定的第一个文件确定数据存储中所有文件的变量名和格式信息。
例子:[" C: \ dir \ data \ file1.xls”;“C: \ dir \ data \ file2.xls”)
数据类型:细胞
|字符串
NumHeaderLines
- - - - - -要跳过的行数0
(默认)|正整数读取时在每个工作表的开头要跳过的行数,指定为正整数。当你还指定范围
财产,NumHeaderLines
在指定数据块的开始处要跳过的行数。
数据类型:双
表
- - - - - -表在文件中""
(默认)|表的名字|表索引文件中的工作表,指定为字符向量、字符向量的单元格数组、字符串标量或包含工作表名称的字符串数组,或指定为工作表索引的数字向量。空字符向量''
指示包含文件中的所有工作表。
例子:[" sheet1”、“sheet7”)
例子:(3 5 7)
数据类型:字符
|细胞
|字符串
|双
范围
- - - - - -行和列边界""
(默认)|特征向量|字符串标量行和列边界,指定为定义工作表中的矩形数据块的字符向量或字符串标量。空字符向量''
指示边界是文件的开始和数据的结束。
例子:“B1: T7”
例子:“C:”
数据类型:字符
|字符串
ReadVariableNames
- - - - - -用于读取变量名的指示符真正的
(默认)|假
|1
|0
将数据存储中第一个文件的第一行作为变量名读取的指示符,指定为任意一种真正的
(1
)或假
(0
).
如果真正的
,然后第一个文件的第一个非标题行确定数据的变量名。
如果假
,则第一个文件的第一个非标题行包含第一行数据。默认变量名赋值为Var1
,Var2
,等等。
数据类型:逻辑
|双
VariableNamingRule
- - - - - -标志以保留变量名“修改”
(默认)|“保存”
标志以保留变量名,指定为“修改”
或“保存”
.
“修改”
-转换无效的变量名(由isvarname
函数)的有效MATLAB标识符。
“保存”
-保留不是有效的MATLAB标识符的变量名,例如包含空格和非ascii字符的变量名。
从R2019b开始,变量名和行名可以包含任何字符,包括空格和非ascii字符。此外,它们可以以任何字符开头,而不仅仅是字母。变量和行名不一定是有效的MATLAB标识符(由isvarname
功能)。要保留这些变量名和行名,可以设置VariableNamingRule
来“保存”
.的值时,不刷新变量名VariableNamingRule
改变从“修改”
来“保存”
.
数据类型:字符
|字符串
VariableNames
- - - - - -变量的名字数据存储中变量的名称,指定为字符向量、字符向量的单元数组、字符串标量或字符串数组。按照变量名在文件中出现的顺序指定它们。如果不指定变量名,数据存储从第一个文件中的第一个非标题行检测它们。您可以指定VariableNames
但是,对于字符向量或字符串标量,数据存储将属性值转换并存储为字符向量的单元格数组。当修改VariableNames
属性时,新变量名的数量必须与原始变量名的数量匹配。
要支持金宝app无效的MATLAB标识符作为变量名,例如变量名包含空格和非ascii字符,请设置VariableNamingRule
参数“保存”
.
如果ReadVariableNames
是假
,然后VariableNames
默认为[" Var1”、“Var2”…]
.
例子:“时间”,“日期”,“数量”)
数据类型:字符
|细胞
|字符串
VariableTypes
- - - - - -变量类型“替身”
|“字符”
|“字符串”
|“分类”
|“datetime”
变量类型,指定为“替身”
,“字符”
,“字符串”
,“分类”
,或“datetime”
,表示读取数据时每个变量的类型。
变量类型列表与中的变量相对应VariableNames
.类型双
,字符
,datetime
可从数据中自动检测。您可以指定VariableTypes
但是作为字符向量或字符串标量spreadsheetDatastore
自动将其转换为字符向量单元格数组或字符串数组。
例子:(“字符”、“分类”)
数据类型:字符
|细胞
|字符串
预览
,读
,readall
表格SelectedVariableNames
- - - - - -变量来读要从文件中读取的变量,指定为字符向量、字符向量的单元格数组、字符串标量或字符串数组。每个字符向量或字符串包含一个变量的名称。您可以以任何顺序指定变量名。您可以指定SelectedVariableNames
但是使用字符向量或字符串标量spreadsheetDatastore
自动将其转换为字符向量单元格数组或字符串数组。
若要支金宝app持无效的MATLAB标识符作为变量名,如变量名包含空格和非ascii字符,请设置VariableNamingRule
参数“保存”
.
例子:[" Var3”、“Var7”、“Var4”)
数据类型:字符
|细胞
|字符串
SelectedVariableTypes
- - - - - -选择变量类型“替身”
|“字符”
|“字符串”
|“分类”
|“datetime”
选定的变量类型,指定为“替身”
,“字符”
,“字符串”
,“分类”
,或“datetime”
,表示读取数据时每个选定变量的类型。变量类型列表与中的变量相对应SelectedVariableNames
.类型双
,字符
,datetime
可从数据中自动检测。您可以指定SelectedVariableTypes
然而,作为字符向量或字符串标量,它会自动转换为字符向量或字符串数组的单元格数组。
例子:(“双”、“datetime”)
数据类型:字符
|细胞
|字符串
ReadSize
- - - - - -要读取的数据量“文件”
(默认)|“表”
|正整数标量的调用中要读取的数据量读
函数,指定为“文件”
或“表”
,或作为正整数标量。
如果ReadSize
是“文件”
,然后每个调用读
每次读取一个文件中的所有数据。
如果ReadSize
是“表”
,然后每个调用读
一次读取所有数据。
如果ReadSize
是正整数,那么每次调用读
读取指定的行ReadSize
,如果它到达数据的末尾,则更少。
当你改变ReadSize
从整数标量到“文件”
或“表”
,或相反地,数据存储将使用重置
函数。
数据类型:字符
|字符串
|双
RowTimes
- - - - - -行乘以变量的名称行乘以变量的名称,指定为由“RowTimes”
和一个变量名(例如“日期”
)或可变索引(例如3.
).
RowTimes
是与时间表相关的参数。时间表的每一行都与一个时间相关联,这个时间在时间表的时间向量中被捕获。中指定的变量RowTimes
必须包含一个datetime
或者一个持续时间
向量。
如果“OutputType”
是“时间表”
,但您没有指定“RowTimes”
,然后spreadsheetDatastore
使用第一个datetime
或持续时间
变量作为时间表的行时间。
writeall
文件夹
- - - - - -用于构造数据存储的文件夹此属性是只读的。
用于构造数据存储的文件夹,返回为字符向量的单元格数组。单元格数组被定向为列向量。每个字符向量都是指向包含数据文件的文件夹的路径。的位置
论点的spreadsheetDatastore
和数据存储
函数定义文件夹
创建数据存储时。
的文件夹
属性在修改时将重置文件
财产的SpreadsheetDatastore
对象。
数据类型:细胞
金宝appSupportedOutputFormats
- - - - - -支持书写的格式列表金宝appDefaultOutputFormat
- - - - - -默认的输出格式hasdata |
确定是否可以读取数据 |
numpartitions |
数据存储分区数 |
分区 |
分区数据存储 |
预览 |
预览数据存储中的数据子集 |
读 |
读取数据存储中的数据 |
readall |
读取数据存储中的所有数据 |
writeall |
将数据存储写入文件 |
重置 |
将数据存储重置为初始状态 |
sheetnames |
从数据存储查询表名称 |
变换 |
变换数据存储 |
结合 |
合并来自多个数据存储的数据 |
isPartitionable |
确定数据存储是否可分区 |
isShuffleable |
确定数据存储是否可洗牌 |
使用FileSet对象或文件路径创建spreadsheetDatastore对象。
创建一个FileSet对象。创建一个spreadsheetDatastore对象。
fs = matlab.io.datastore.FileSet (“airlinesmall_subset.xlsx”);ssd = spreadsheetDatastore (fs)
ssds = SpreadsheetDatastore with properties: Files:{'…\Documents\MATLAB\Examples\airlinesmall_subset.xlsx'} Folders:{'…\Documents\MATLAB\Examples'} alteratefilesystemroots: {} Sheets: " Range: " Sheet Format Properties: NumHeaderLines: 0 variablenamgrule: 'modify' ReadVariableNames: true VariableNames: {'Year', 'Month', 'DayofMonth'…{'double', 'double', 'double'…控制由preview, read, readall返回的表的属性:SelectedVariableNames: {'Year', 'Month', 'DayofMonth'…} SelectedVariableTypes: {'double', 'double', 'double'…ReadSize: 'file' OutputType: 'table' RowTimes: [] Write-specific Properties: SupportedOutp金宝apputFormats: ["txt" "csv" "xlsx" "xls" "parquet" "parq"] DefaultOutputFormat: "xlsx"
或者,您可以使用文件路径指定数据。
ssd = spreadsheetDatastore (“airlinesmall_subset.xlsx”);
创建一个SpreadsheetDatastore
包含该文件的对象airlinesmall_subset.xlsx
.
ssd = spreadsheetDatastore (“airlinesmall_subset.xlsx”)
ssds = SpreadsheetDatastore with properties: Files:{'…\Documents\MATLAB\Examples\airlinesmall_subset.xlsx'} Folders:{'…\Documents\MATLAB\Examples'} alteratefilesystemroots: {} Sheets: " Range: " Sheet Format Properties: NumHeaderLines: 0 variablenamgrule: 'modify' ReadVariableNames: true VariableNames: {'Year', 'Month', 'DayofMonth'…{'double', 'double', 'double'…控制由preview, read, readall返回的表的属性:SelectedVariableNames: {'Year', 'Month', 'DayofMonth'…} SelectedVariableTypes: {'double', 'double', 'double'…ReadSize: 'file' OutputType: 'table' RowTimes: [] Write-specific Properties: SupportedOutp金宝apputFormats: ["txt" "csv" "xlsx" "xls" "parquet" "parq"] DefaultOutputFormat: "xlsx"
显示文件的工作表名称。这个档案每年有一页。
sheetnames (ssd, 1)
ans =13 x1字符串"1996" "1997" "1998" "1999" "2000" "2001" "2002" "2003" "2004" "2005" "2006" "2007" "2008"
指定的变量FlightNum
在第二个工作表中作为感兴趣的数据,并预览前8行。
ssd。表= 2;ssd。SelectedVariableNames =“FlightNum”;预览(ssd)
ans =8×1表FlightNum _________ 1014 1201 702 1184 1310 1759 1242 1558
只读变量的前三行DepTime
和ArrTime
在第一页。
ssd。ReadSize = 3;ssd。表= 1;ssd。SelectedVariableNames = [“DepTime”,“ArrTime”];阅读(ssd)
ans =3×2表DepTime ArrTime _______ _______ 2117 2305 1252 1511 1441 1708
把第四,第五,第六页都读一遍。
ssd。表= 4:6;readall (ssd);
使用OutputType
和RowTimes
要创建的名称-值对SpreadsheetDatastore
返回时间表而不是表。
创建数据存储tsunamis_dated.xlsx
.指定“OutputType”
作为“时间表”
这SpreadsheetDatastore
返回时间表而不是表。
ssd = spreadsheetDatastore (“tsunamis_dated.xlsx”,“OutputType”,“时间表”);预览(ssd)
ans =8×15时间表日期经度纬度ValidityCode有效性CauseCode引起EarthquakeMagnitude国家位置MaxHeight IidaMagnitude强度NumDeaths DescDeaths时间 ___________ ________ _________ ____________ ____________________ _________ ____________________________ ___________________ _____________ ____________________________ _________ ______________________ _________ __________ ________________________ 04 - mar - 1952 42.15 - 143.85 4{“明确的海啸”}1 8.1{‘地震’}{‘日本’}{SE。4{'明确的海啸'}3{'地震和滑坡'}3{'美国'}'SE阿拉斯加,AK} 524.26 4.6 - 5 5 1958 06:15:53.600 10 - 7月22日- 1960年5月- -39.5 - -74.5 4{“明确的海啸”}1 9.5{‘地震’}{“智利”}{智利中部的}25 4.6 - 4 1260 3 22日- 1960年5月- 1960年11月19:11:17.000 20 - - -6.8 - -80.7 4{“明确的海啸”}1 6.8{‘地震’}{秘鲁的}{秘鲁的}9 3.2 - 2.5 66 2 - 1960 22:01:56.400 11月20 - 28 - mar - 1964 61.1 -147.5 - 4{'确定海啸'}1{'地震'}7.5{'日本'}{'美国'}{'威廉王子海湾,AK'} 67 6.1 221 3 28-Mar-1964 03:36:14 000 16- june -1964 38.65 139.2 4{'确定海啸'}1{'地震'}7.5{'日本'}{'西北。本州岛}5.8 2.7 - 2 1 16 - 26日1968年6月- 1964 04:01:44.300 14 - 8月- 0.2 - 119.8 4{“明确的海啸”}1 7.8{‘地震’}{“印度尼西亚”}{“班达海”}10 3.3 3 200 1968 22:14:19.400 14 - 8月23日- 1969年2月- -3.1 - 118.9 4{“明确的海啸”}1 6.9{‘地震’}{“印度尼西亚”}{“望加锡海峡”}4 2 2 600 1969 00:36:56.600 23 - 2月
当你没有指定“RowTimes”
,spreadsheetDatastore
使用第一个datetime或duration变量作为行时间。在这种情况下日期
变量用于行次数。该数据有两个datetime变量:日期
和时间
.的日期
变量不包括小时、分钟或秒的信息,而时间
变量具有每个事件的具体时间。
指定“RowTimes”
选项使用事件时间(时间
变量)作为行乘以。
ssd = spreadsheetDatastore (“tsunamis_dated.xlsx”,“OutputType”,“时间表”,“RowTimes”,“时间”);预览(ssd)
ans =8×15时间表的时间经度纬度ValidityCode有效性CauseCode引起EarthquakeMagnitude国家位置MaxHeight IidaMagnitude强度NumDeaths DescDeaths日期 ________________________ ________ _________ ____________ ____________________ _________ ____________________________ ___________________ _____________ ____________________________ ______________________ _________ _________ __________ ___________ 04 - mar - 1952 01:22:41.000 42.15 - 143.85 4{“明确的海啸”}1 8.1{‘地震’}{‘日本’}{SE。4{'明确的海啸'}3{'地震和滑坡'}3{'美国'}'SE阿拉斯加,正义与发展党’}524.26 - 4.6 5 5 1 10——1958年7月22日——1960年5月——19:11:17.000 -39.5 - -74.5 4{“明确的海啸”}1 9.5{‘地震’}{“智利”}{智利中部的}25 4.6 - 4 1260 3 1960年- 1960年5月- 11月20 - 22日22:01:56.400 -6.8 - -80.7 4{“明确的海啸”}1 6.8{‘地震’}{秘鲁的}{秘鲁的}9 3.2 2.5 66 2 20 - 1964年11月- 1960年3月28 - - 03:36:14.000 61.1 -147.5 - 4{'明确的海啸'}1{'地震'}7.5{'日本'}{'日本'}'西北'}67 6.1 221 3 1964年3月28日-1964年6月16日04:01:44.300 38.65 139.2 4{'明确的海啸'}1{'地震'}7.5{'日本'}'西北本州岛”}5.8 - 2.7 2 26 1 16 - 1968年6月- 1964年8月14 - - 22:14:19.400 0.2 - 119.8 4{“明确的海啸”}1 7.8{‘地震’}{“印度尼西亚”}{“班达海”}200 3 14 - 3.3 - 3 1969年8月- 1968年2月23 - - 00:36:56.600 -3.1 - 118.9 4{“明确的海啸”}1 6.9{‘地震’}{“印度尼西亚”}{“望加锡海峡”}4 2 2 600 3 1969年- 2月23日
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。