isPartitionable
确定数据存储是否可分区
说明
如果数据存储 ds
可分区,则 tf = isPartitionable(
返回逻辑值 ds
)1
(true
)。否则,结果为逻辑值 0
(false
)。
如果所有基础数据存储均可分区,则
TransformedDatastore
可分区。如果所有基础数据存储都具有
subset
方法,或都是具有subset
方法的数据存储的变换/组合,则CombinedDatastore
可分区。如果自定义数据存储类是
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.
输入参数
ds
- 输入数据存储
数据存储
输入数据存储。您可以将下列数据存储用作输入:
MATLAB® 数据存储 - 使用 MATLAB
datastore
函数创建的数据存储。例如,使用ImageDatastore
为图像集合创建一个数据存储。有关完整的数据存储列表,请参阅Select Datastore for File Format or Application。自定义数据存储 - 使用自定义数据存储框架创建的数据存储。基于
matlab.io.Datastore
子类化的任何数据存储都支持isPartitionable
函数。有关详细信息,请参阅Develop Custom Datastore。
扩展功能
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
用法说明和限制:
在基于线程的环境中,您只能对以下数据存储使用
isPartitionable
:ImageDatastore
对象使用
combine
或transform
从ImageDatastore
对象创建的CombinedDatastore
或TransformedDatastore
对象
如果您有 Parallel Computing Toolbox,则可以对其他数据存储使用
isPartitionable
。为此,请使用基于进程的并行池运行该函数,而不是使用backgroundPool
或ThreadPool
(使用ProcessPool
或ClusterPool
)。
版本历史记录
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)