sliceAssign
Assign element values from a broadcasted input array to corresponding elements in an output array.
Usage
var sliceAssign = require( '@stdlib/array/base/fancy-slice-assign' );
slice( x, y, s, strict )
Assigns element values from a broadcasted input array to corresponding elements in an output array.
var Slice = require( '@stdlib/slice/ctor' );
var x = [ 1, 2, 3, 4 ];
var y = [ 0, 0, 0, 0, 0, 0, 0, 0 ];
var s = new Slice( null, null, -2 );
// returns <Slice>
var out = sliceAssign( x, y, s, false );
// returns [ 0, 4, 0, 3, 0, 2, 0, 1 ]
var bool = ( out === y );
// returns true
The function supports the following parameters:
- x: input array.
- y: output array.
- s: slice object specifying the output array slice.
- strict: boolean indicating whether to enforce strict bounds checking.
Notes
- The input array must be broadcast compatible with the output array slice (i.e., contain only one element or the same number of elements as in the slice).
- The input array must have a data type which can be safely cast to the output array data type. Floating-point data types (both real and complex) are allowed to downcast to a lower precision data type of the same kind (e.g., element values from a
'float64'
input array can be assigned to corresponding elements in a'float32'
output array).
Examples
var zeroTo = require( '@stdlib/array/zero-to' );
var zeros = require( '@stdlib/array/zeros' );
var Slice = require( '@stdlib/slice/ctor' );
var sliceAssign = require( '@stdlib/array/base/fancy-slice-assign' );
var x = zeroTo( 10, 'generic' );
// returns [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
var y = zeros( 10, 'generic' );
// returns [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
var s = new Slice();
var out = sliceAssign( x, y, s, false );
// returns [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
x = zeroTo( 5, 'generic' );
// returns [ 0, 1, 2, 3, 4 ]
y = zeros( 10, 'generic' );
s = new Slice( null, null, -2 );
out = sliceAssign( x, y, s, false );
// returns [ 0, 4, 0, 3, 0, 2, 0, 1, 0, 0 ]
x = zeroTo( 5, 'generic' );
// returns [ 0, 1, 2, 3, 4 ]
y = zeros( 10, 'generic' );
s = new Slice( -2, null, -2 );
out = sliceAssign( x, y, s, false );
// returns [ 4, 0, 3, 0, 2, 0, 1, 0, 0, 0 ]
x = zeroTo( 6, 'generic' );
// returns [ 0, 1, 2, 3, 4, 5 ]
y = zeros( 10, 'generic' );
s = new Slice( 2, -2 );
out = sliceAssign( x, y, s, false );
// returns [ 0, 0, 0, 1, 2, 3, 4, 5, 0, 0 ]
x = zeroTo( 3, 'generic' );
// returns [ 0, 1, 2 ]
y = zeros( 10, 'generic' );
s = new Slice( 2, 5 );
out = sliceAssign( x, y, s, false );
// returns [ 0, 0, 0, 1, 2, 0, 0, 0, 0, 0 ]
x = zeroTo( 3, 'generic' );
// returns [ 0, 1, 2 ]
y = zeros( 10, 'generic' );
s = new Slice( 4, 1, -1 );
out = sliceAssign( x, y, s, false );
// returns [ 0, 0, 2, 1, 0, 0, 0, 0, 0, 0 ]
x = zeroTo( 5, 'generic' );
// returns [ 0, 1, 2, 3, 4 ]
y = zeros( 10, 'generic' );
s = new Slice( 5 );
out = sliceAssign( x, y, s, false );
// returns [ 0, 1, 2, 3, 4, 0, 0, 0, 0, 0 ]
x = zeroTo( 5, 'generic' );
// returns [ 0, 1, 2, 3, 4 ]
y = zeros( 10, 'generic' );
s = new Slice( 5, null );
out = sliceAssign( x, y, s, false );
// returns [ 0, 0, 0, 0, 0, 0, 1, 2, 3, 4 ]