Main Content

isPartitionable

确定数据存储是否可分区

自 R2020a 起

说明

示例

如果数据存储 ds 可分区,则 tf = isPartitionable(ds) 返回逻辑值 1 (true)。否则,结果为逻辑值 0 (false)。

  • 如果所有基础数据存储均可分区,则 TransformedDatastore 可分区。

  • 如果所有基础数据存储都具有 subset 方法,或都是具有 subset 方法的数据存储的变换/组合,则 CombinedDatastoreSequentialDatastore 可分区。

  • 如果自定义数据存储类是 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® 数据存储 - 使用 MATLAB datastore 函数创建的数据存储。例如,使用 ImageDatastore 为图像集合创建一个数据存储。有关完整的数据存储列表,请参阅Select Datastore for File Format or Application

  • 合并、排序和变换数据存储 - 使用 combinetransform 函数创建的数据存储。

  • 自定义数据存储 - 使用自定义数据存储框架创建的数据存储。基于 matlab.io.Datastore 子类化的任何数据存储都支持 isPartitionable 函数。有关详细信息,请参阅Develop Custom Datastore

扩展功能

版本历史记录

在 R2020a 中推出