This language bar is your friend. Select your favorite languages!

Idiom #193 Transpose a two-dimensional matrix

Declare two two-dimensional arrays a and b of dimension n*m and m*n, respectively. Assign to b the transpose of a (i.e. the value with index interchange).

(def a [[1 2 3] [4 5 6] [7 8 9]])
(def b (apply (partial mapv vector) a))
real :: a(n,m), b(m,n)

b = transpose(a)
typ, omv

  A: array[1..m, 1..n] of ArbFloat;
  B: array[1..n, 1..m] of ArbFloat;
  ... some code to fill A
    A[1,1], m, n, n,
    B[1,1], m
use PDL::Basic qw(sequence transpose);
my ($m, $n) = (3, 2);
my $A = sequence $m, $n;
my $B = transpose $A;
import numpy as np
a = np.array([[1,2], [3,4], [5,6]])
b = a.T
a = [[1,2], [3,4], [5,6]]
b = a.transpose

Do you know the best way to do this in your language ?
New implementation...

Idiom created by