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 ]
Did you find this page helpful?