transpose double[][] matrix with a java function?

Since Java 8, you can do this:

public static double[][] transposeMatrix(final double[][] matrix) {

    return IntStream.range(0, matrix[0].length)
        .mapToObj(i -> Stream.of(matrix).mapToDouble(row -> row[i]).toArray())
        .toArray(double[][]::new);
}

    public static double[][] transposeMatrix(double [][] m){
        double[][] temp = new double[m[0].length][m.length];
        for (int i = 0; i < m.length; i++)
            for (int j = 0; j < m[0].length; j++)
                temp[j][i] = m[i][j];
        return temp;
    }

If you would like to use an external library, Apache Commons Math provides the utility to transpose a matrix. Please refer to it official site.

First, you have to create a double array double[][] arr, as you have already done. Then, the transposed 2d matrix can be achieved like this

MatrixUtils.createRealMatrix(arr).transpose().getData()

Tags:

Java

Matrix