On 02/19/2016 06:00 PM, maik klein wrote:
How would I transpose

float[3][2]

to

float[2][3]

with http://dlang.org/phobos/std_range.html#.transposed



Because static arrays are not ranges, they must be used as slices with the help of []. The following code does the same thing in two different ways:

import std.stdio;
import std.range;
import std.algorithm;

void main() {
    float[3][2] arr = [ [1, 2, 3],
                        [4, 5, 6] ];

    // Method A
    {
        float[][] arr2;

        foreach (ref a; arr) {
            arr2 ~= a[];
        }

        writeln(arr2.transposed);
    }

    // Method B
    {
        auto r = arr[].map!((ref a) => a[]).array.transposed;
        writeln(r);
    }
}

Ali

Reply via email to