matlab.io.datastore.DsFileSet class

Пакет: 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 должен появиться в одинарных кавычках (''). Можно задать несколько аргументов пары "имя-значение" в любом порядке как 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

Типы данных: логический | 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 isfile, затем 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);

Советы

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

Введенный в R2017b