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 );
Did you find this page helpful?