Generic concatenation of DataSet objects.
- z = cat(dim,a, b, c, ... );
Generic concatenation implies combination of DataSet objects along some specified dimension, dim. Any number of DataSet objects can be concatenated. When dim is 1 or 2, this command is equivalent to [a; b; ...] or [a b ...], respectively (see dataset/vertcat and dataset/horzcat). For this operation to be defined the following must be true:
1) All inputs must be valid DataSet objects or convertible to a DataSet object.
2) The DataSet '.type' fields must all be the same.
3) Concatenation is along the specified dimension (dim). All other dimension sizes must match.
This is similar to matrix concatenation, but each field is treated differently. In structure notation this is:
z.name = name fields from all DataSet objects are concatenated. z.type = a.type; z.author = author fields from all DataSet objects are concatenated. z.date = date of concatenation z.moddate = date of concatenation z.data = cat(dim,a.data,b.data,c.data); z.label = mode dim label sets are concatenated, and new label sets are created for all other modes z.axisscale = mode dim axisscale sets are made empty, and new axisscale sets are created for all other modes z.title = new label sets are created z.class = mode dim class sets are made empty, and new class sets are created for all other modes z.description = concatenates all descriptions z.userdata = if more than one input has userdata it is filled into a cell array, if only one input has userdata it is returned, else it is empty
NOTE: Concatenating classes can be complicated when class name and values don't match. Merging classes is done by the private tablemerge function of the DataSetObject. The first DataSet being concatenated takes precedence if a numeric class has two different names. If there is a duplicated name (with two different numeric classes then "DuplicatedName" is appended to the second DataSet lookup table name.
The following concatenates two DataSet objects, a and b, along the third dimension (slabs):
z = cat(3,a,b); %join a and b in the third dimension