Skip to content

Latest commit

 

History

History
166 lines (107 loc) · 3.87 KB

File metadata and controls

166 lines (107 loc) · 3.87 KB

toTransposed

Return a new ndarray containing the elements of an input ndarray but whose last two dimensions are transposed.

Usage

var toTransposed = require( '@stdlib/ndarray/base/to-transposed' );

toTransposed( x )

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.

Notes

  • If provided an ndarray with fewer than two dimensions, the function raises an exception.

Examples

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' );