Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

fillBy

Fill an input ndarray according to a callback function.

Usage

var fillBy = require( '@stdlib/ndarray/base/fill-by' );

fillBy( x, fcn[, thisArg] )

Fills an input ndarray according to a callback function.

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

function fcn() {
    return 10.0;
}

var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ], [ [ 5.0, 6.0 ] ] ] );
// returns <ndarray>[ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ], [ [ 5.0, 6.0 ] ] ]

var out = fillBy( x, fcn );
// returns <ndarray>[ [ [ 10.0, 10.0 ] ], [ [ 10.0, 10.0 ] ], [ [ 10.0, 10.0 ] ] ]

var bool = ( out === x );
// returns true

The function accepts the following arguments:

  • x: array-like object containing an input ndarray.
  • fcn: callback function.
  • thisArg: callback function execution context (optional).

To set the callback function execution context, provide a thisArg.

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

function fcn( value ) {
    return value * 10.0;
}

var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ], [ [ 5.0, 6.0 ] ] ] );
// returns <ndarray>[ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ], [ [ 5.0, 6.0 ] ] ]

var ctx = {
    'factor': 10.0
};

var out = fillBy( x, fcn, ctx );
// returns <ndarray>[ [ [ 10.0, 20.0 ] ], [ [ 30.0, 40.0 ] ], [ [ 50.0, 60.0 ] ] ]

var bool = ( out === x );
// returns true

Notes

  • A provided ndarray should be an object with the following properties:

    • dtype: data type.
    • data: data buffer.
    • shape: dimensions.
    • strides: stride lengths.
    • offset: index offset.
    • order: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).
  • The callback function is provided the following arguments:

    • value: current array element.
    • indices: current array element indices.
    • arr: the input ndarray.
  • The function mutates the input ndarray.

  • The function assumes that each element in the underlying input ndarray data buffer has one, and only one, corresponding element in input ndarray view (i.e., a provided ndarray is not a broadcasted ndarray view).

Examples

var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
var ndarray2array = require( '@stdlib/ndarray/to-array' );
var zeros = require( '@stdlib/ndarray/zeros' );
var fillBy = require( '@stdlib/ndarray/base/fill-by' );

// Create a zero-filled ndarray:
var x = zeros( [ 5, 2 ], {
    'dtype': 'generic'
});
console.log( ndarray2array( x ) );

// Fill the ndarray with random values:
fillBy( x, discreteUniform( -100, 100 ) );
console.log( ndarray2array( x ) );