Fill an input ndarray according to a callback function.
var fillBy = require( '@stdlib/ndarray/fill-by' );Fills an input ndarray according to a callback function.
var zeros = require( '@stdlib/ndarray/zeros' );
var ndarray2array = require( '@stdlib/ndarray/to-array' );
function fcn( value ) {
return value + 10.0;
}
var x = zeros( [ 3, 1, 2 ], {
'dtype': 'float64'
});
var y = fillBy( x, fcn );
// returns <ndarray>
var bool = ( y === x );
// returns true
var arr = ndarray2array( y );
// returns [ [ [ 10.0, 10.0 ] ], [ [ 10.0, 10.0 ] ], [ [ 10.0, 10.0 ] ] ]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 zeros = require( '@stdlib/ndarray/zeros' );
var ndarray2array = require( '@stdlib/ndarray/to-array' );
function fcn( value ) {
return value + this.factor;
}
var x = zeros( [ 3, 1, 2 ], {
'dtype': 'float64'
});
var ctx = {
'factor': 10.0
};
var y = fillBy( x, fcn, ctx );
// returns <ndarray>
var arr = ndarray2array( y );
// returns [ [ [ 10.0, 10.0 ] ], [ [ 10.0, 10.0 ] ], [ [ 10.0, 10.0 ] ] ]The callback function is provided the following arguments:
- value: current array element.
- indices: current array element indices.
- arr: the input ndarray.
- An input ndarray must be writable. If provided a read-only ndarray, the function throws an error.
- 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).
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/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 ) );@stdlib/ndarray/fill: fill an input ndarray with a specified value.@stdlib/ndarray/map: apply a callback to elements in an input ndarray and assign results to elements in a new output ndarray.@stdlib/ndarray/zeros: create a zero-filled ndarray having a specified shape and data type.