matlab.io.datastore.DsFileSet class

Пакет: matlab.io.datastore

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

Описание

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

Конструкция

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

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

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

расширить все

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

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

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

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

Типы данных: char | cell | string | struct

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

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

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

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

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

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

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

Типы данных: char | cell | string

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

Пример: 'IncludeSubfolders',true

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

Альтернативные корневые пути файловой системы, заданные как разделенная разделенными запятой парами, состоящая из 'AlternateFileSystemRoots' и строковый вектор или массив ячеек. Использование 'AlternateFileSystemRoots' когда вы создаете datastore на локальной машине, но должны получить доступ и обработать данные на другой машине (возможно, другой операционной системы). Кроме того, при обработке данных с помощью Parallel Computing Toolbox™ и MATLAB® Parallel 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"]

Типы данных: string | cell

Свойства

расширить все

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

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

Пример: fs.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

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

Методы

hasfile Определите, доступно ли больше файлов в объекте набора файлов
maxpartitions Максимальное количество разделов
nextfile Информация о следующем файле или фрагменте файла
partition Объект набора файлов разделов
subsetСоздайте подмножество datastore или набора файлов
reset Сбросьте объект набора файлов
resolve Информация обо всех файлах в объекте набора файлов

Примеры

свернуть все

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

Создайте объект набора файлов для всех .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);

Совет

Введенный в R2017b