子集
创建数据存储或文件集的子集
描述
例子
创建子集ImageDatastore
创建一个图像数据存储对象,然后创建该图像数据存储的一个子集。
创建映像数据存储洛桑国际管理发展学院
用于示例文件夹中的所有图像文件。然后,显示文件
的属性洛桑国际管理发展学院
.
文件夹= fullfile(matlabroot,“工具箱”,matlab的, {“演示”,“imagesci”});Exts = {“jpg”,“使用”,“.tif”};imds = imageDatastore(文件夹,“LabelSource”,“foldernames”,“FileExtensions”ext);洛桑国际管理发展学院。文件
ans = 8×1 cell array{…\matlab\工具箱\matlab\demos\ cloud组合.jpg'}{…\matlab\工具箱\matlab\demos\landOcean.jpg'}{…\matlab\工具箱\matlab\demos\ngc6543 .jpg'}{…\matlab\工具箱\matlab\demos\street1.jpg'}{…\matlab\工具箱\matlab\demos\street2.jpg'}{…\matlab\工具箱\matlab\imagesci\玉米.tif'}{…\matlab\工具箱\matlab\imagesci\辣椒.png'}
创建一个子集数据存储subimds
的前四个文件洛桑国际管理发展学院
并检查文件
的属性subimds
.
指数= 1:4;Subimds =子集(imds,索引);subimds。文件
ans = 4×1 cell array{'…\matlab\toolbox\matlab\demos\ cloud组合.jpg'}{'…\matlab\toolbox\matlab\demos\example.tif'}{'…\matlab\toolbox\matlab\demos\landOcean.jpg'}{'…\matlab\toolbox\matlab\demos\ngc6543 .jpg'}
用随机选择的文件创建子集数据存储
创建一个图像数据存储,然后创建只包含指定百分比的文件的子集数据存储,从原始数据存储中随机选择。
创建imageDatastore
用于示例文件夹中的所有图像文件,并显示文件
财产。该数据存储包含8个文件。
文件夹= fullfile(matlabroot,“工具箱”,matlab的, {“演示”,“imagesci”});Exts = {“jpg”,“使用”,“.tif”};imds = imageDatastore(文件夹,“LabelSource”,“foldernames”,“FileExtensions”ext);洛桑国际管理发展学院。文件
ans = 8×1 cell array{…\matlab\工具箱\matlab\demos\ cloud组合.jpg'}{…\matlab\工具箱\matlab\demos\landOcean.jpg'}{…\matlab\工具箱\matlab\demos\ngc6543 .jpg'}{…\matlab\工具箱\matlab\demos\street1.jpg'}{…\matlab\工具箱\matlab\demos\street2.jpg'}{…\matlab\工具箱\matlab\imagesci\玉米.tif'}{…\matlab\工具箱\matlab\imagesci\辣椒.png'}
创建一组表示随机选择包含的子集的索引60%
文件的。
nFiles = length(imds.Files);randindexes = randperm(nFiles);n60% = round(0.6*nFiles);指数= RandIndices(1: n60%)
指数= 8 6 4 5
创建一个子集数据存储submids
使用指数
检查它文件
财产。
Subimds =子集(imds,索引);subimds。文件
ans = 5×1 cell array{'…\matlab\toolbox\matlab\imagesci\椒。png'}{'…\matlab\toolbox\matlab\demos\street2.jpg'}{'…\matlab\toolbox\matlab\demos\ngc6543 .jpg'}{'…\matlab\toolbox\matlab\demos\street1.jpg'}{'…\matlab\toolbox\matlab\demos\ cloud组合.jpg'}
比较数据粒度
比较粗粒度分区和细粒度子集。
读取视频文件中的所有帧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
- - - - - -输入数据存储或文件集
matlab.io.Datastore
对象|文件集
对象|DsFileSet
对象|BlockedFileSet
对象
输入数据存储或文件集,指定为数据存储
,文件集
,DsFileSet
,或BlockedFileSet
对象。
指数
- - - - - -要包含在子集中的文件的索引
指标向量|逻辑向量
子集中要包含的文件的索引,指定为索引向量或逻辑向量。
索引向量必须包含要包含在子集中的文件的索引
再分
.逻辑向量的长度必须与输入中的文件数相同
ds
.的子集
方法创建一个子集。再分
包含与逻辑向量中值为的元素对应的文件真正的
.
的元素指数
必须是唯一的。
数据类型:双
|逻辑
扩展功能
线程环境
使用MATLAB®在后台运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
使用注意事项和限制:
在基于线程的环境中,可以使用
子集
仅适用于以下数据存储:ImageDatastore
对象CombinedDatastore
,SequentialDatastore
,或TransformedDatastore
从中创建的对象ImageDatastore
通过使用结合
或变换
你可以使用
子集
与其他数据存储,如果您有并行计算工具箱™。为此,请使用进程支持的并行池而不是使用backgroundPool
或ThreadPool
(使用ProcessPool
或ClusterPool
).
有关更多信息,请参见在线程环境中运行MATLAB函数.
版本历史
在R2019a中引入
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国家站点没有针对您所在位置的访问进行优化。