Skip to content

Latest commit

 

History

History
146 lines (89 loc) · 3.97 KB

File metadata and controls

146 lines (89 loc) · 3.97 KB

expandDimensions

Expand the shape of an array by inserting a new dimension of size one at a specified axis.

Usage

var expandDimensions = require( '@stdlib/ndarray/base/expand-dimensions' );

expandDimensions( x, axis, writable )

Expands the shape of an array x by inserting a new dimension of size one at a specified axis.

var getShape = require( '@stdlib/ndarray/shape' );
var array = require( '@stdlib/ndarray/array' );

// Create a 2x2 ndarray:
var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );
// returns <ndarray>[ [ 1, 2 ], [ 3, 4 ] ]

// Prepend a singleton dimension:
var y = expandDimensions( x, 0, false );
// returns <ndarray>[ [ [ 1, 2 ], [ 3, 4 ] ] ]

var sh = getShape( y );
// returns [ 1, 2, 2 ]

// Append a singleton dimension:
y = expandDimensions( x, 2, false );
// returns <ndarray>[ [ [ 1 ], [ 2 ] ], [ [ 3 ], [ 4 ] ] ]

sh = getShape( y );
// returns [ 2, 2, 1 ]

// Insert a singleton dimension:
y = expandDimensions( x, 1, false );
// returns <ndarray>[ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ]

sh = getShape( y );
// returns [ 2, 1, 2 ]

The function accepts the following arguments:

  • x: input ndarray.
  • axis: axis at which to insert a singleton dimension
  • writable: boolean indicating whether a returned ndarray should be writable.

Notes

  • A provided axis must reside on the interval [-N-1, N], where N is the rank (i.e., number of dimensions) of the provided input array. If provided a negative axis, the axis position at which to insert a singleton dimension is computed as N + axis + 1. Hence, if provided -1, the resolved axis position is N (i.e., a singleton dimension is appended to the input array).
  • The writable parameter only applies to ndarray constructors supporting read-only instances.

Examples

var uniform = require( '@stdlib/random/uniform' );
var ndarray2array = require( '@stdlib/ndarray/to-array' );
var expandDimensions = require( '@stdlib/ndarray/base/expand-dimensions' );

var x = uniform( [ 3, 3, 3 ], -10.0, 10.0 );
console.log( ndarray2array( x ) );

var y = expandDimensions( x, 1, false );
console.log( ndarray2array( y ) );