Publication date: 11/10/2021

## Concatenation

The Concat() function combines two matrices side by side to form a larger matrix. The number of rows must agree. A double vertical bar ( || ) is the infix operator, equivalent for horizontal concatenation.

`Identity( 2 ) || J( 2, 3, 4 );`

[1 0 4 4 4, 0 1 4 4 4]

`B = [1, 1];`
`B || Concat( Identity( 2 ), J( 2, 3, 4 ) );`

[1 1 0 4 4 4, 1 0 1 4 4 4]

The VConcat() function stacks two matrices on top of each other to form a larger matrix. The number of columns must agree. A vertical-bar-slash ( |/ ) is the infix operator, equivalent for vertical concatenation.

`Identity( 2 ) |/ J( 3, 2, 1 );`

// or VConcat( Identity( 2 ),J( 3, 2, 1 ) );

[1 0, 0 1, 1 1, 1 1, 1 1]

Both Concat() and VConcat() support concatenating to empty matrices, scalars, and lists.

`a=[];`
`a || ; // returns `
`a || {2}; // returns `
`a || [3 4 5]; // returns [3 4 5]`

There are two in place concatenation operators: ||= and |/= . They are equivalent to the Concat To() and V Concat To() functions, respectively.

a || = b is equivalent to a = a || b

a |/ = b is equivalent to a = a | /b