combine - Combine data from multiple datastores - MATLAB (original) (raw)

Combine data from multiple datastores

Syntax

Description

dsnew = combine([ds1,ds2,...,dsN](#mw%5Fdca952df-9d0a-4eb6-883a-c69ca6cb72fb)) combines multiple datastores to create a CombinedDatastore object using the data returned by the read function on the input datastores.

example

dsnew = combine([ds1,ds2,...,dsN](#mw%5Fdca952df-9d0a-4eb6-883a-c69ca6cb72fb),ReadOrder=[order](#mw%5Ffe30b1af-0ecf-40a5-a682-540894b1fb7a)) combines multiple datastores based on the specified read order. The read order determines the creation of either a CombinedDatastore orSequentialDatastore object.

example

Examples

collapse all

Combine Datastores

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 that reads corresponding images from the two image 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) im2gray(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 array {480x640x3 uint8} {480x640 uint8}

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

Figure contains an axes object. The hidden axes object contains an object of type image.

Combine Datastores Sequentially

Create a datastore that reads from two image datastores one after the other.

Create an ImageDatastore ds1 representing a collection of two images. Then, create a second ImageDatastore ds2 by transforming the images of ds1 to grayscale images. Combine ds1 and ds2 to create a SequentialDatastore object.

ds1 = imageDatastore(["peppers.png","street2.jpg"]); ds2 = transform(ds1, @(x) {im2gray(x)}); dsseq = combine(ds1,ds2,ReadOrder="sequential");

Read the first three images from the SequentialDatastore object. Each read operation on this SequentialDatastore object returns a single image represented by a 1-by-1 cell array.

img1 = read(dsseq); img2 = read(dsseq); img3 = read(dsseq);

Input Arguments

collapse all

ds1,ds2,...,dsN — Datastores to combine

datastore objects

Datastores to combine, specified as two or more comma-separated datastore objects. For a complete list of built-in datastores, see Select Datastore for File Format or Application. You also can specify custom datastores.

order — Order in which data is read

"associated" (default) | "sequential"

Order in which data is read, specified as "associated" or"sequential".

Extended Capabilities

Thread-Based Environment

Run code in the background using MATLAB® backgroundPool or accelerate code with Parallel Computing Toolbox™ ThreadPool.

Usage notes and limitations:

For more information, see Run MATLAB Functions in Thread-Based Environment.

Version History

Introduced in R2019a

expand all

R2022b: Sequentially read data from multiple datastores

Sequentially read data from multiple datastores without concatenation.