用 java 函数转置 double\[\]\[\] 矩阵?

新手上路,请多包涵

有没有人有一个函数,我可以用它在 Java 中转置具有以下形式的矩阵:

 double[][]

我有这样的功能:

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

    return m;
}

但它在某个地方错了。

原文由 gurehbgui 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 481
2 个回答
    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;
    }

原文由 mystdeim 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您想使用外部库,Apache Commons Math 提供了转置矩阵的实用程序。请参考它的 官方网站

首先,您必须创建一个双数组 double[][] arr ,正如您已经完成的那样。然后,转置二维矩阵可以这样实现

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

原文由 Wen-Bin Luo 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏