at

Return an ndarray element.

Usage

var at = require( '@stdlib/ndarray/at' );

at( x[, ...indices] )

Returns an ndarray element.

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

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

var v = at( x, 0, 0 );
// returns 1

v = at( x, 0, 1 );
// returns 2

v = at( x, 1, 0 );
// returns 3

v = at( x, 1, 1 );
// returns 4

The function accepts the following arguments:

  • x: input ndarray.
  • indices: index arguments. The number of index arguments must equal the number of dimensions.

Notes

  • If provided out-of-bounds indices, the function always returns undefined.

    var array = require( '@stdlib/ndarray/array' );
    
    var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );
    // returns <ndarray>
    
    var v = at( x, 10, 20 );
    // returns undefined
    
  • Negative indices are resolved relative to the last element along the respective dimension, with the last element corresponding to -1.

    var array = require( '@stdlib/ndarray/array' );
    
    var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );
    // returns <ndarray>
    
    var v = at( x, -1, -1 );
    // returns 4
    
    v = at( x, -2, -2 );
    // returns 1
    

Examples

var cartesianProduct = require( '@stdlib/array/cartesian-product' );
var zeroTo = require( '@stdlib/array/zero-to' );
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
var array = require( '@stdlib/ndarray/array' );
var at = require( '@stdlib/ndarray/at' );

// Define a two-dimensional array:
var shape = [ 5, 5 ];
var x = array( discreteUniform( 25, -100, 100 ), {
    'shape': shape
});

// Define lists of dimension indices:
var i0 = zeroTo( shape[ 0 ], 'generic' );
var i1 = zeroTo( shape[ 1 ], 'generic' );

// Create a list of index pairs:
var indices = cartesianProduct( i0, i1 );

// Print array contents...
var idx;
var i;
for ( i = 0; i < x.length; i++ ) {
    idx = indices[ i ];
    console.log( 'x[%d,%d] = %d', idx[ 0 ], idx[ 1 ], at( x, idx[ 0 ], idx[ 1 ] ) );
}
Did you find this page helpful?