java中的矩阵转置(需要解释)

Matrix transpose in java(need explanation)

这是我的代码,它应该可以工作,但是当我转置和打印矩阵时,它输出相同的矩阵,而不是转置。 一些解释? 它应该改变矩阵,而不是复制和转置然后 return。 public无效转置(){

    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++){
            Object tmp=matrix[i][j];
            matrix[i][j]=matrix[j][i];
            matrix[j][i]=tmp;
        }
}

你在内循环中的索引有误。

    for (int i = 0; i < n; i++) {
        for (int j = i+1; j < n; j++) {
            Object tmp = matrix[i][j];
            matrix[i][j] = matrix[j][i];
            matrix[j][i] = tmp ;
    }

您的代码不会转置您的矩阵,因为您通过 matrix[i][j]=matrix[j][i];

覆盖了您的原始矩阵

这是一种在 Java 中转置矩阵的方法:transpose double[][] matrix with a java function