Return a new ndarray containing the elements of an input ndarray but whose last two dimensions are transposed.
var toTransposed = require( '@stdlib/ndarray/base/to-transposed' );Returns a new ndarray containing the elements of an input ndarray but whose last two dimensions are transposed.
var array = require( '@stdlib/ndarray/array' );
var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] );
// returns <ndarray>[ [ 1, 2, 3 ], [ 4, 5, 6 ] ]
var out = toTransposed( x );
// returns <ndarray>[ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ]The function accepts the following arguments:
- x: input ndarray.
- If provided an ndarray with fewer than two dimensions, the function raises an exception.
var Float64Array = require( '@stdlib/array/float64' );
var ndarray = require( '@stdlib/ndarray/ctor' );
var rpad = require( '@stdlib/string/right-pad' );
var toTransposed = require( '@stdlib/ndarray/base/to-transposed' );
function print( arr, name ) {
var str;
var sh;
var p;
var i;
var j;
var k;
sh = arr.shape;
for ( i = 0; i < sh[0]; i++ ) {
str = name+'['+i+',:,:] = [ ';
p = str.length + 1;
for ( j = 0; j < sh[1]; j++ ) {
if ( j > 0 ) {
str += rpad( '\n', p, ' ' );
}
for ( k = 0; k < sh[2]; k++ ) {
str += arr.get( i, j, k );
if ( k < sh[2]-1 ) {
str += ', ';
}
}
}
console.log( str + ' ]\n' );
}
}
// Create a data buffer:
var buf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );
// Create a stack of matrices:
var x = new ndarray( 'float64', buf, [ 2, 2, 3 ], [ 0, 3, 1 ], 0, 'row-major' );
// Transpose the stack of matrices:
var y = toTransposed( x );
// Print the stacks:
console.log( '' );
print( x, 'X' );
console.log( '' );
print( y, 'Y' );