分区
对数据存储进行分区
描述
例子
将数据存储划分为特定数量的部件
为大量文件创建一个数据存储。对于本例,使用示例文件的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 ()))
从中提取六个不相邻的帧arrds
在指定的索引上使用细粒度子集。
Subds =子集(arrds,[67 79 82 69 89 33]);imshow (imtile (subds.readall ()))
输入参数
ds
- - - - - -输入数据存储
数据存储
输入数据存储。您可以使用数据存储
函数从数据创建一个数据存储对象。
n
- - - - - -分区数
正整数
分区数,指定为正整数。
如果指定的分区数量不是数据存储中文件数量的数字因素,分区
将从第一个分区开始,将剩余的每个观察结果放在现有分区中。
包含额外观测值的现有分区数等于数据存储中的文件数除以分区数得到的余数。例如,如果您的数据存储对象包含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
.
扩展功能
线程环境
使用MATLAB®在后台运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
使用注意事项和限制:
在基于线程的环境中,可以使用
分区
仅适用于以下数据存储:ImageDatastore
对象CombinedDatastore
,SequentialDatastore
,或TransformedDatastore
从中创建的对象ImageDatastore
通过使用结合
或变换
你可以使用
分区
与其他数据存储,如果您有并行计算工具箱™。为此,请使用进程支持的并行池而不是使用backgroundPool
或ThreadPool
(使用ProcessPool
或ClusterPool
).
有关更多信息,请参见在线程环境中运行MATLAB函数.
版本历史
在R2015a中引入
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。