---
title: "init(byConcatenatingMultiArrays:alongAxis:dataType:)"
framework: coreml
role: symbol
role_heading: Initializer
path: "coreml/mlmultiarray/init(byconcatenatingmultiarrays:alongaxis:datatype:)"
---

# init(byConcatenatingMultiArrays:alongAxis:dataType:)

Merges an array of multiarrays into one multiarray along an axis.

## Declaration

```swift
convenience init(byConcatenatingMultiArrays multiArrays: [MLMultiArray], alongAxis axis: Int, dataType: MLMultiArrayDataType)
```

## Parameters

- `multiArrays`: An doc://com.apple.coreml/documentation/CoreML/MLMultiArray array.
- `axis`: A zero-based axis number the instances in multiArray merge along.
- `dataType`: An doc://com.apple.coreml/documentation/CoreML/MLMultiArrayDataType instance that represents the underlying type of all the instances in multiArrays.

## Discussion

Discussion All multiarray instances in multiArrays must have: The same data type The same number of dimensions The same size for each corresponding dimension, except for the concatenation axis For example, this code concatenates two multiarrays along their first dimension: let multiarray1 = try MLMultiArray(shape: [1, 5, 7], dataType: .int32) let multiarray2 = try MLMultiArray(shape: [2, 5, 7], dataType: .int32)

// Merge the two multiarrays along the first dimension. let multiArray3 = MLMultiArray(concatenating: [multiarray1, multiarray2],                                axis: 0,                                dataType: .int32)

assert(multiArray3.shape == [3, 5, 7])

## See Also

### Creating a multiarray

- [init(_:)](coreml/mlmultiarray/init(_:).md)
- [init(shape:dataType:)](coreml/mlmultiarray/init(shape:datatype:).md)
- [init(shape:dataType:strides:)](coreml/mlmultiarray/init(shape:datatype:strides:).md)
- [init(dataPointer:shape:dataType:strides:deallocator:)](coreml/mlmultiarray/init(datapointer:shape:datatype:strides:deallocator:).md)
- [init(pixelBuffer:shape:)](coreml/mlmultiarray/init(pixelbuffer:shape:).md)
- [MLMultiArrayDataType](coreml/mlmultiarraydatatype.md)
