主要内容

子集

创建数据存储或文件集的子集

描述

例子

Subds =子集(ds指数返回一个子集,其中包含对应于指数.子集再分与输入的类型相同。

  • 如果输入ds首先是数据存储,然后是输出outds是相同类型的数据存储。

  • 如果输入ds是一个文件集DsFileSet,或BlockedFileSet对象,然后输出再分也分别是a文件集DsFileSet,或BlockedFileSet对象。

例子

全部折叠

创建一个图像数据存储对象,然后创建该图像数据存储的一个子集。

创建映像数据存储洛桑国际管理发展学院用于示例文件夹中的所有图像文件。然后,显示文件的属性洛桑国际管理发展学院

文件夹= 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 ()))

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

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

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

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

输入参数

全部折叠

输入数据存储或文件集,指定为数据存储文件集DsFileSet,或BlockedFileSet对象。

子集中要包含的文件的索引,指定为索引向量或逻辑向量。

  • 索引向量必须包含要包含在子集中的文件的索引再分

  • 逻辑向量的长度必须与输入中的文件数相同ds.的子集方法创建一个子集。再分包含与逻辑向量中值为的元素对应的文件真正的

的元素指数必须是唯一的。

数据类型:|逻辑

扩展功能

版本历史

在R2019a中引入