scattered
Scatter a list of provided values to specified indices in a new zero-filled "generic" array.
Usage
var scattered = require( '@stdlib/array/base/scattered' );
scattered( len, indices, values, mode )
Scatters a list of provided values to specified indices in a new zero-filled "generic" array.
var out = scattered( 4, [ 1, 3 ], [ 20, 40 ], 'throw' );
// returns [ 0, 20, 0, 40 ]
The function supports the following parameters:
- len: output array length.
- indices: list of indices.
- values: values to scatter. When
indices
contains one or more elements,values
must be broadcast compatible withindices
(i.e., must have either one element or the same number of elements asindices
). - mode: index mode.
If indices
is an empty array, the function returns a zero-filled array.
var out = scattered( 4, [], [ 20, 40 ], 'throw' );
// returns [ 0, 0, 0, 0 ]
The function supports broadcasting a values
array containing a single element against an indices
array containing one or more elements.
var out = scattered( 4, [ 1, 3 ], [ 20 ], 'throw' );
// returns [ 0, 20, 0, 20 ]
Examples
var filledBy = require( '@stdlib/array/base/filled-by' );
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
var scattered = require( '@stdlib/array/base/scattered' );
// Generate an array of random indices:
var N = discreteUniform( 5, 15 );
var indices = filledBy( N, discreteUniform.factory( 0, 10 ) );
console.log( indices );
// Generate an array of random values:
var values = filledBy( N, discreteUniform.factory( 1000, 2025 ) );
console.log( values );
// Scatter a random sample of elements to a new array:
var out = scattered( 11, indices, values, 'throw' );
console.log( out );