exponenta event banner

isPartitionable

Определение возможности разделения хранилища данных

Синтаксис

Описание

пример

tf = isPartitionable(ds) возвращает логический 1 (true), если хранилище данных ds является разделяемым. В противном случае результат является логическим 0 (false).

  • TransformedDatastore является секционированным, если все нижележащие хранилища данных являются секционированными.

  • CombinedDatastore является секционируемым, если все нижележащие хранилища данных имеют subset метод или преобразования/комбинации хранилищ данных, которые subset методы.

  • Классы пользовательских хранилищ данных могут быть секционированы, если они являются подклассами из matlab.io.datastore.Partitionable.

Вы можете использовать partition для создания разделов для параллельной обработки с помощью Parallel Computing Toolbox™.

Примеры

свернуть все

Создать TabularTextDatastore, а затем напишите if/else оператор, который секционирует хранилище данных только в том случае, если оно является секционируемым.

ttds = tabularTextDatastore('outages.csv');
if isPartitionable(ttds)
    newds = partition(ttds,3,1);
    disp('Partitioning successful.')
else 
    disp('Datastore is not partitionable.')
end
Partitioning successful.

Теперь создайте CombinedDatastore объект, состоящий из двух копий ttds. Использовать то же самое if/else тест для секционирования хранилища данных.

cds = combine(ttds,ttds);
if isPartitionable(cds)
    newds = partition(cds,3,1);
    disp('Partitioning successful.')
else 
    disp('Datastore is not partitionable.')
end
Datastore is not partitionable.

В этом случае объединенное хранилище данных cds не является секционируемым, так как базовый TabularTextDatastore объекты не имеют subset методы.

Создать другое CombinedDatastore объект, но на этот раз построить его из ImageDatastore объекты. В этом случае объединенное хранилище данных является секционированным, поскольку оно является базовым ImageDatastore объекты имеют subset методы.

imageFiles = {'street1.jpg','street2.jpg','peppers.png','corn.tif'};
imds = imageDatastore(imageFiles);
cds = combine(imds,imds);
if isPartitionable(cds)
    newds = partition(cds,3,1);
    disp('Partitioning successful.')
else 
    disp('Datastore is not partitionable.')
end
Partitioning successful.

Входные аргументы

свернуть все

Хранилище входных данных. В качестве входных данных можно использовать следующие хранилища данных:

  • Хранилища данных MATLAB ® - хранилища данных, созданные с помощью MATLABdatastore функции. Например, создайте хранилище данных для коллекции изображений с помощью ImageDatastore. Полный список хранилищ данных см. в разделе Выбор хранилища данных для формата файла или приложения.

  • Объединенные и преобразованные хранилища данных - хранилища данных, созданные с помощью combine и transform функции.

  • Пользовательские хранилища данных - хранилища данных, созданные с помощью пользовательской инфраструктуры хранилища данных. Любое хранилище данных, из которого передаются подклассы matlab.io.Datastore поддерживает isPartitionable функция. Дополнительные сведения см. в разделе Разработка пользовательского хранилища данных.

Представлен в R2020a