atnd
Return an element from an n-dimensional nested array.
Usage
var atnd = require( '@stdlib/array/base/atnd' );
atnd( x, i0[, ...indices] )
Returns an element from an n-dimensional nested array.
var x = [ [ 1, 2 ], [ 3, 4 ] ];
var out = atnd( x, 0, 1 );
// returns 2
out = atnd( x, 1, 0 );
// returns 3
The function accepts the following arguments:
- x: n-dimensional nested input array.
- i0: first dimension index.
- indices: dimension indices.
Notes
- Negative indices are resolved relative to the last element along the respective dimension, with the last element corresponding to
-1
. - If provided out-of-bounds indices, the function always returns
undefined
.
Examples
var papply = require( '@stdlib/utils/papply' );
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
var filled2dBy = require( '@stdlib/array/base/filled2d-by' );
var binary2d = require( '@stdlib/array/base/binary2d' );
var zeros2d = require( '@stdlib/array/base/zeros2d' );
var atnd = require( '@stdlib/array/base/atnd' );
var shape = [ 5, 5 ];
// Define a nested input array:
var x = filled2dBy( shape, discreteUniform( -100, 100 ) );
console.log( x );
// Define arrays containing random index values:
var i0 = filled2dBy( shape, discreteUniform( -shape[0], shape[0]-1 ) );
console.log( i0 );
var i1 = filled2dBy( shape, discreteUniform( -shape[1], shape[1]-1 ) );
console.log( i1 );
// Define an output array:
var out = zeros2d( shape );
console.log( out );
// Fill the output array with randomly selected values from the input array:
binary2d( [ i0, i1, out ], shape, papply( atnd, x ) );
console.log( out );