matlab.io.datastore. Класс DsFileSet

Пакет: matlab.io.datastore

Установленный на файл объект для набора файлов в datastore

Описание

Объект DsFileSet помогает вам справиться с итеративной обработкой большого количества файлов. Используйте объект DsFileSet вместе с объектом DsFileReader управлять и считать файлы из вашего datastore.

Конструкция

fs = matlab.io.datastore.DsFileSet(location) возвращает объект DsFileSet для набора файлов на основе заданного location.

fs = matlab.io.datastore.DsFileSet(location,Name,Value) задает дополнительные параметры для объекта DsFileSet с помощью одного или нескольких аргументов в виде пар "имя-значение". Name также может быть именем свойства, и Value является соответствующим значением. Name must appear inside single quotes (''). Вы может задать несколько аргументов в виде пар "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN.

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

развернуть все

Файлы или папки, чтобы включать в установленный на файл объект, заданный как вектор символа, массив ячеек из символьных векторов, строка или struct. Если файлы не находятся в текущей папке, то location должен быть полными или относительными путями. Файлы в подпапках заданной папки автоматически не включены в установленный на файл объект.

Обычно для рабочего процесса Hadoop®, когда вы задаете location как struct, он должен содержать поля FileName, Offset и Size. Это требование позволяет вам использовать аргумент location непосредственно с методом initializeDatastore matlab.io.datastore.HadoopFileBased class. Для примера, видеть, Добавляет Поддержка Hadoop.

Можно использовать подстановочный символ (*) при определении location. Определение этого символа включает все файлы соответствия или все файлы в соответствующих папках в установленном на файл объекте.

Если файлы не доступны локально, то полный путь файлов или папок должен быть интернационализировавшим идентификатором ресурса (IRI), такой как
hdfs://hostname:portnumber/path_to_file.

Типы данных: char | ячейка | представляет в виде строки | struct

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Имя должно появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'FileExtensions' . jpg', '.tif'} включает все файлы с .jpg или .tif расширением в объекте FileSet.

Расширения файла, заданные как пара, разделенная запятой, состоящая из 'FileExtensions' и вектора символа, массива ячеек из символьных векторов или строки. Можно использовать пустые кавычки '', чтобы представлять файлы без расширений.

Если 'FileExtensions' не задан, то DsFileSet автоматически включает все расширения файла.

Пример: 'FileExtensions' . jpg'

Пример: 'FileExtensions' . txt . csv'}

Типы данных: char | ячейка | строка

Флаг включения подпапки, заданный как пара, разделенная запятой, состоящая из 'IncludeSubfolders' и true или false. Задайте true, чтобы включать все файлы и подпапки в каждой папке или false, чтобы включать только файлы в каждой папке.

Пример: 'IncludeSubfolders', верный

Типы данных: логический | дважды

Альтернативные пути к корню файловой системы, заданные как пара, разделенная запятой, состоящая из 'AlternateFileSystemRoots' и вектора строки или массива ячеек. Используйте 'AlternateFileSystemRoots', когда вы создадите datastore на локальной машине, но должны будете получить доступ и обработать данные на другой машине (возможно различной операционной системы). Кроме того, при обрабатывании данных с помощью Параллельных вычислений Toolbox™ и MATLAB® Distributed Computing Server™ и данные сохранены на локальных машинах с копией доступных данных на облаке другой платформы или кластерных машинах, необходимо использовать 'AlternateFileSystemRoots', чтобы сопоставить корневые пути.

  • Чтобы сопоставить набор корневых путей, которые эквивалентны друг другу, задайте 'AlternateFileSystemRoots' как вектор строки. Например,

    ["Z:\datasets","/mynetwork/datasets"]

  • Чтобы сопоставить несколько наборов корневых путей, которые эквивалентны для datastore, задайте 'AlternateFileSystemRoots' как массив ячеек, содержащий несколько строк, где каждая строка представляет набор эквивалентных корневых путей. Задайте каждую строку в массиве ячеек или как вектор строки или как массив ячеек из символьных векторов. Например:

    • Задайте 'AlternateFileSystemRoots' как массив ячеек векторов строки.

      {["Z:\datasets", "/mynetwork/datasets"];...
       ["Y:\datasets", "/mynetwork2/datasets","S:\datasets"]}

    • Также задайте 'AlternateFileSystemRoots' как массив ячеек массива ячеек из символьных векторов.

      {{'Z:\datasets','/mynetwork/datasets'};...
       {'Y:\datasets', '/mynetwork2/datasets','S:\datasets'}}

Значение 'AlternateFileSystemRoots' должно удовлетворить эти условия:

  • Содержит одну или несколько строк, где каждая строка задает набор эквивалентных корневых путей.

  • Каждая строка задает несколько корневых путей, и каждый корневой путь должен содержать по крайней мере два символа.

  • Корневые пути уникальны и не являются подпапками друг друга.

  • Содержит по крайней мере одну корневую запись пути, которая указывает на местоположение файлов.

Для получения дополнительной информации смотрите Настроенный Datastore для Обработки на Различных Машинах или Кластерах.

Пример: Z: \datasets"",/mynetwork/datasets"]

Типы данных: представьте в виде строки | ячейка

Свойства

развернуть все

Это свойство доступно только для чтения.

Количество файлов в установленном на файл объекте, заданном в виде числа.

Пример: фс NumFiles

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

Это свойство доступно только для чтения.

Разделите размер, заданный как 'file' или числовой скаляр.

Значение, присвоенное FileSplitSize, диктует вывод из метода nextfile.

  • Если FileSplitSize является 'file', то метод nextfile возвращает таблицу с FileName, FileSize, Offset и SplitSize. Значение SplitSize установлено равное FileSize.

  • Если FileSplitSize является числовым скаляром n, то метод nextfile возвращает FileName, FileSize, Offset и SplitSize. Значение SplitSize установлено равное FileSplitSize. Эта информация используется, чтобы считать байты n файла. Последующие вызовы метода nextfile возвращают информацию, чтобы помочь считать следующие байты n того же файла до конца файла.

Пример: 'FileSplitSize', 20

Типы данных: удвойтесь | char

Методы

matlab.io.datastore. DsFileSet. hasfile Определите, доступно ли больше файлов в установленном на файл объекте
matlab.io.datastore. DsFileSet. maxpartitions Максимальное количество разделов
matlab.io.datastore. DsFileSet. nextfile Информация о следующем файле или фрагменте файла
matlab.io.datastore. DsFileSet. раздел Раздел установленный на файл объект
matlab.io.datastore. DsFileSet. сброс Сбросьте установленный на файл объект
matlab.io.datastore. DsFileSet. твердость Информация обо всех файлах в установленном на файл объекте

Примеры

свернуть все

Создайте установленный на файл объект, получите информацию файла один файл во время или получите информацию для всех файлов в установленном на файл объекте.

Создайте установленный на файл объект для всех файлов .mat от папки demos.

folder = fullfile(matlabroot,'toolbox','matlab','demos');
fs = matlab.io.datastore.DsFileSet(folder,...
                 'IncludeSubfolders',true,...
                 'FileExtensions','.mat');

Получите информацию для первого и второго файла от установленного на файл объекта.

fTable1 = nextfile(fs) ; % first file 
fTable2 = nextfile(fs) ; % second file

Получите информацию обо всех файлах путем получения информации для одного файла за один раз и соберите информацию в таблицу.

ft = cell(fs.NumFiles,1); % using cell for efficiency
i = 1;
reset(fs); % reset to the beginning of the fileset
while hasfile(fs)                 
    ft{i} = nextfile(fs);
    i = i + 1;
end
allFiles = vertcat(ft{:});

Также получите информацию обо всех файлах в то же время.

allfiles = resolve(fs);

Советы

  • При использовании объект DsFileSet в качестве свойства в вашем пользовательском datastore, то реализуете метод copyElement. Реализация метода copyElement позволяет вам создать глубокую копию объекта datastore. Для получения дополнительной информации смотрите, Настройка операции копирования. Для реализации в качестве примера метода copyElement смотрите, Разрабатывают Пользовательский Datastore.

Введенный в R2017b

Была ли эта тема полезной?