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 )
Expands the shape of an array x
by inserting a new dimension of size one at a specified axis
.
var array = require( '@stdlib/ndarray/array' );
// Create a 2x2 ndarray:
var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );
// returns <ndarray>
// Prepend a singleton dimension:
var y = expandDimensions( x, 0 );
// returns <ndarray>
var sh = y.shape;
// returns [ 1, 2, 2 ]
// Append a singleton dimension:
y = expandDimensions( x, 2 );
// returns <ndarray>
sh = y.shape;
// returns [ 2, 2, 1 ]
// Insert a singleton dimension:
y = expandDimensions( x, 1 );
// returns <ndarray>
sh = y.shape;
// returns [ 2, 1, 2 ]
Notes
- A provided axis must reside on the interval
[-N-1, N]
, whereN
is the rank (i.e., number of dimensions) of the provided input array. If provided a negativeaxis
, the axis position at which to insert a singleton dimension is computed asN + axis + 1
. Hence, if provided-1
, the resolved axis position isN
(i.e., a singleton dimension is appended to the input array).
Examples
var array = require( '@stdlib/ndarray/array' );
var numel = require( '@stdlib/ndarray/base/numel' );
var ind2sub = require( '@stdlib/ndarray/ind2sub' );
var expandDimensions = require( '@stdlib/ndarray/base/expand-dimensions' );
// Create a 2-dimensional array:
var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );
// returns <ndarray>
// Insert a singleton dimension:
var y = expandDimensions( x, 1 );
// returns <ndarray>
// Retrieve the shape:
var sh = y.shape;
// returns [ 2, 1, 2 ]
// Retrieve the number of elements:
var N = numel( sh );
// Loop through the array elements...
var i;
for ( i = 0; i < N; i++ ) {
console.log( 'Y[%s] = %d', ind2sub( sh, i ).join( ', ' ), y.iget( i ) );
}