Datastore to combine data read from multiple underlying datastores


Use a CombinedDatastore object to combine the data read from multiple other datastores.

A CombinedDatastore maintains parity between the underlying datastores, so that data is read from corresponding parts of the underlying datastores. Resetting the CombinedDatastore resets all of the underlying datastores.


You can create a CombinedDatastore object using the combine function. For example, dsnew = combine(ds1,ds2) creates a datastore that combines the read data from datastores ds1 and ds2.


expand all

Underlying datastores, specified as a cell array of datastore objects.

Data Types: cell

Object Functions

combineCombine data from multiple datastores
hasdataDetermine if data is available to read
previewSubset of data in datastore
readRead data in datastore
readallRead all data in datastore
resetReset datastore to initial state
transformTransform datastore


collapse all

Create a datastore that maintains parity between the pair of images of the underlying datastores. For instance, create two separate image datastores, and then create a combined datastore representing the two underlying datastores.

Create a datastore imds1 representing a collection of three images.

imds1 = imageDatastore({'street1.jpg','street2.jpg','peppers.png'}); 

Create a second datastore imds2 by transforming the images of imds1 to grayscale images.

imds2 = transform(imds1,@(x) rgb2gray(x));

Create a combined datastore from imds1 and imds2.

imdsCombined = combine(imds1,imds2);

Read the first pair of images from the combined datastore. Each read operation on this combined datastore returns a pair of images represented by a 1-by-2 cell array.

dataOut = read(imdsCombined)
dataOut=1×2 cell
    {480x640x3 uint8}    {480x640 uint8}

Display the output of the first read from the combined datastore.


Introduced in R2019a