主要内容

分区

对数据存储进行分区

描述

例子

再分=分区(dsn指数分区数据存储ds分成指定数量的零件n并返回与索引对应的分区指数

例子

再分=分区(ds“文件”,指数将数据存储按文件进行分区,并返回索引文件对应的分区指数文件财产。

再分=分区(ds“文件”,文件名的文件对数据存储进行分区,并返回与指定的文件对应的分区文件名

例子

全部折叠

为大量文件创建一个数据存储。对于本例,使用示例文件的10个副本airlinesmall.csv.若要处理表格数据中缺失的字段,请指定名称-值对TreatAsMissing而且MissingValue

文件= repmat({“airlinesmall.csv”} 1 10);ds = tabularTextDatastore(文件,...“TreatAsMissing”“NA”“MissingValue”, 0);

将数据存储区划分为三个部分,并返回第一个分区。的分区函数从数据存储中返回大约三分之一的数据ds

Subds =分区(ds,3,1)
subds = TabularTextDatastore属性:Files:{'…\matlab\toolbox\matlab\demos\ airlinsmall .csv';’……\ matlab \ matlab工具箱\ \ demo \ airlinesmall.csv”;\matlab\toolbox\matlab\demos\ airlinsmall .csvalteratefilesystemroots: {} ReadVariableNames: true VariableNames:{'年','月','月之日'…和26个更多}文本格式属性:NumHeaderLines: 0分隔符:',' RowDelimiter: '\r\n' TreatAsMissing: 'NA' MissingValue: 0高级文本格式属性:TextscanFormats: {'%f', '%f', '%f'…TextType: 'char' ExponentCharacters: 'eEdD' CommentStyle: "空格:' \b\t' MultipleDelimitersAsOne: false属性,控制表返回预览,读取,readall: SelectedVariableNames:{'年','月','月日'…和26}SelectedFormats: {% f ', ' % f ', ' % f '……和26个}ReadSize: 20000行

文件属性包含该数据存储中包含的文件列表。检查文件的数量文件属性ds和分区的数据存储再分.数据存储ds包含10个文件和分区再分包含前四个文件。

长度(ds.Files)
Ans = 10
长度(subds.Files)
Ans = 4

从示例文件创建一个数据存储,mapredout.mat的输出文件mapreduce函数。

数据存储(“mapredout.mat”);

的默认分区数ds

N = numpartitions(ds);

将数据存储划分为默认的分区数,并返回与第一个分区对应的数据存储。

Subds =分区(ds,n,1);

读取数据再分

Hasdata (subds) data = read(subds);结束

创建一个包含三个映像文件的数据存储。

ds = imageDatastore({“street1.jpg”“peppers.png”“corn.tif”})
ds = ImageDatastore属性:Files:{'…\matlab\toolbox\matlab\demos\street1.jpg';matlab’……\ \ matlab工具箱\ \ imagesci \ peppers.png”;\matlab\toolbox\matlab\imagesci\corn.tif'} ReadSize: 1 Labels: {} ReadFcn: @readDatastoreImage . txt

按文件划分数据存储区,并返回与第二个文件对应的部分。

Subds =分区(ds,“文件”,2)
Files:{'…\matlab\toolbox\matlab\imagesci\peppers.png'} ReadSize: 1 Labels: {} ReadFcn: @readDatastoreImage

再分包含一个文件。

从示例文件创建一个数据存储,mapredout.mat的输出文件mapreduce函数。

数据存储(“mapredout.mat”);

在并行池中的三个worker上将数据存储分区为三个部分。

numWorkers = 3;P = parpool(“本地”, numWorkers);N = numpartitions(ds,p);parforIi =1:n subds =分区(ds,n, Ii);Hasdata (subds) data = read(subds);结束结束

比较粗粒度分区和细粒度子集。

读取视频文件中的所有帧xylophone.mp4然后构造一个ArrayDatastore对象对其进行迭代。结果对象有141帧。

v =视频阅读器(“xylophone.mp4”);allFrames = read(v);arrds = arrayDatastore(allFrames,IterationDimension=4,OutputType=“细胞”, ReadSize = 4);

要提取一组特定的相邻帧,请创建四个粗粒度的分区arrds。提取第二个分区,它有35帧。

Partds =分区(arrds,4,2);imshow (imtile (partds.readall ()))

图中包含一个轴对象。axis对象包含一个image类型的对象。

从中提取六个不相邻的帧arrds在指定的索引上使用细粒度子集。

Subds =子集(arrds,[67 79 82 69 89 33]);imshow (imtile (subds.readall ()))

图中包含一个轴对象。axis对象包含一个image类型的对象。

输入参数

全部折叠

输入数据存储。您可以使用数据存储函数从数据创建一个数据存储对象。

分区数,指定为正整数。

如果指定的分区数量不是数据存储中文件数量的数字因素,分区将从第一个分区开始,将剩余的每个观察结果放在现有分区中。

包含额外观测值的现有分区数等于数据存储中的文件数除以分区数得到的余数。例如,如果您的数据存储对象包含23个文件,您希望将它们划分为3个部分,那么前两个分区将被划分为3个部分分区create将包含8个文件,最后一个分区将包含7个文件。

例子:3.

数据类型:

索引,指定为正整数。

例子:1

数据类型:

文件名,指定为字符向量或字符串标量。

的价值文件名中包含的文件名必须完全匹配文件属性。要确保文件名完全匹配,请指定文件名使用ds。文件{N}在哪里N文件的索引是否在文件财产。例如,ds。文件{3}指定数据存储中的第三个文件ds

例子:ds。文件{3}

例子:“file1.csv”

例子:“. . / dir /数据/ file1.csv”

例子:hdfs: / / myserver: 7867 /数据/中

数据类型:字符

输出参数

全部折叠

输出数据存储。输出数据存储与输入数据存储具有相同的类型ds

扩展功能

版本历史

在R2015a中引入

另请参阅

||

主题