subset

Создайте подмножество datastore или набора файлов

Синтаксис

Описание

пример

subds = subset(ds,indices) возвращает подмножество, содержащее файлы, соответствующие indices. Подмножество subds имеет тот же тип, что и вход.

  • если вход ds является datastore, затем выход outds является datastore того же типа.

  • если вход ds является DsFileSet, FileSet, или BlockedFileSet объект, затем выход subds является также, соответственно, DsFileSet, FileSet, или BlockedFileSet объект.

Примеры

свернуть все

Создайте изображение объект datastore, а затем создайте подмножество этого изображения datastore.

Создайте изображение datastore imds для всех файлов изображений в папке примера. Затем отобразите Files свойство imds.

folders = fullfile(matlabroot,'toolbox','matlab',{'demos','imagesci'});
exts = {'.jpg','.png','.tif'};
imds = imageDatastore(folders,'LabelSource','foldernames','FileExtensions',exts);
imds.Files
ans =

  8×1 cell array

    {'...\matlab\toolbox\matlab\demos\cloudCombined.jpg'}
    {'...\matlab\toolbox\matlab\demos\example.tif'      }
    {'...\matlab\toolbox\matlab\demos\landOcean.jpg'    }
    {'...\matlab\toolbox\matlab\demos\ngc6543a.jpg'     }
    {'...\matlab\toolbox\matlab\demos\street1.jpg'      }
    {'...\matlab\toolbox\matlab\demos\street2.jpg'      }
    {'...\matlab\toolbox\matlab\imagesci\corn.tif'      }
    {'...\matlab\toolbox\matlab\imagesci\peppers.png'   }

Создайте подмножество datastore subimds который содержит первые четыре файла imds и исследуйте Files свойство subimds.

indices = 1:4; 
subimds = subset(imds,indices); 
subimds.Files
ans =

  4×1 cell array

    {'...\matlab\toolbox\matlab\demos\cloudCombined.jpg'}
    {'...\matlab\toolbox\matlab\demos\example.tif'      }
    {'...\matlab\toolbox\matlab\demos\landOcean.jpg'    }
    {'...\matlab\toolbox\matlab\demos\ngc6543a.jpg'     }

Создайте изображение datastore, а затем создайте подмножество datastore, содержащее только определенный процент файлов, случайным образом выбранных из исходного datastore.

Создание imageDatastore для всех файлов изображений в папке образца и отобразить Files свойство. Этот datastore содержит 8 файлов.

folders = fullfile(matlabroot,'toolbox','matlab',{'demos','imagesci'});
exts = {'.jpg','.png','.tif'};
imds = imageDatastore(folders,'LabelSource','foldernames','FileExtensions',exts);
imds.Files
ans =

  8×1 cell array

    {'...\matlab\toolbox\matlab\demos\cloudCombined.jpg'}
    {'...\matlab\toolbox\matlab\demos\example.tif'      }
    {'...\matlab\toolbox\matlab\demos\landOcean.jpg'    }
    {'...\matlab\toolbox\matlab\demos\ngc6543a.jpg'     }
    {'...\matlab\toolbox\matlab\demos\street1.jpg'      }
    {'...\matlab\toolbox\matlab\demos\street2.jpg'      }
    {'...\matlab\toolbox\matlab\imagesci\corn.tif'      }
    {'...\matlab\toolbox\matlab\imagesci\peppers.png'   }

Создайте набор индексов, который представляет случайным образом выбранное подмножество, содержащее 60% файлов.

nFiles = length(imds.Files);
RandIndices = randperm(nFiles);
nSixtyPercent = round(0.6*nFiles);
indices = RandIndices(1:nSixtyPercent)
indices =

     8     6     4     5     1

Создайте подмножество datastore submids использование indices и исследуйте его Files свойство.

subimds = subset(imds,indices); 
subimds.Files
ans =

  5×1 cell array

    {'...\matlab\toolbox\matlab\imagesci\peppers.png'   }
    {'...\matlab\toolbox\matlab\demos\street2.jpg'      }
    {'...\matlab\toolbox\matlab\demos\ngc6543a.jpg'     }
    {'...\matlab\toolbox\matlab\demos\street1.jpg'      }
    {'...\matlab\toolbox\matlab\demos\cloudCombined.jpg'}

Входные параметры

свернуть все

Введите datastore или file-set, заданные как ImageDatastore, DsFileSet, FileSet, BlockedFileSetобъект.

Индексы файлов для включения в подмножество, заданные как вектор индексов или логический вектор.

  • Вектор индексов должен содержать индексы файлов для включения в подмножество subds.

  • Логический вектор должен быть такой же длины, как и количество файлов в вход ds. The subset метод создает подмножество subds содержащие файлы, соответствующие элементам логического вектора, которые имеют значение true.

Элементы indices должен быть уникальным.

Типы данных: double | logical

Введенный в R2019a