📜  Java程序找到矩阵的转置

📅  最后修改于: 2022-05-13 01:58:09.337000             🧑  作者: Mango

Java程序找到矩阵的转置

矩阵的转置是通过将行更改为列和将列更改为行来获得的。换言之,A[][] 的转置是通过将 A[i][j] 更改为 A[j][i] 来获得的。

矩阵转置

对于方阵:

下面的程序找到 A[][] 的转置并将结果存储在 B[][] 中,我们可以将 N 更改为不同的维度。

// Java Program to find 
// transpose of a matrix
  
class GFG
{
    static final int N = 4;
      
    // This function stores transpose
    // of A[][] in B[][]
    static void transpose(int A[][], int B[][])
    {
        int i, j;
        for (i = 0; i < N; i++)
            for (j = 0; j < N; j++)
                B[i][j] = A[j][i];
    }
      
    // Driver code
    public static void main (String[] args)
    {
        int A[][] = { {1, 1, 1, 1},
                      {2, 2, 2, 2},
                      {3, 3, 3, 3},
                      {4, 4, 4, 4}};
      
        int B[][] = new int[N][N], i, j;
      
        transpose(A, B);
      
        System.out.print("Result matrix is \n");
        for (i = 0; i < N; i++)
        {
            for (j = 0; j < N; j++)
            System.out.print(B[i][j] + " ");
            System.out.print("\n");
        }
    }
}
  
// This code is contributed by Anant Agarwal.
输出:
Result matrix is 
1 2 3 4 
1 2 3 4 
1 2 3 4 
1 2 3 4

对于矩形矩阵:

下面的程序找到 A[][] 的转置并将结果存储在 B[][] 中。

// Java Program to find 
// transpose of a matrix
  
class GFG
{
    static final int M = 3;
    static final int N = 4;
      
    // This function stores transpose
    // of A[][] in B[][]
    static void transpose(int A[][], int B[][])
    {
        int i, j;
        for (i = 0; i < N; i++)
            for (j = 0; j < M; j++)
                B[i][j] = A[j][i];
    }
      
    // Driver code
    public static void main (String[] args)
    {
        int A[][] = { {1, 1, 1, 1},
                      {2, 2, 2, 2},
                      {3, 3, 3, 3}};
      
        int B[][] = new int[N][M], i, j;
      
        transpose(A, B);
      
        System.out.print("Result matrix is \n");
        for (i = 0; i < N; i++)
        {
            for (j = 0; j < M; j++)
            System.out.print(B[i][j] + " ");
            System.out.print("\n");
        }
    }
}
  
// This code is contributed by Anant Agarwal.
输出:
Result matrix is 
1 2 3 
1 2 3 
1 2 3 
1 2 3

就地矩阵:

// Java Program to find 
// transpose of a matrix
  
class GFG
{
    static final int N = 4;
      
    // Finds transpose of A[][] in-place
    static void transpose(int A[][])
    {
        for (int i = 0; i < N; i++)
            for (int j = i+1; j < N; j++)
            {
                 int temp = A[i][j];
                 A[i][j] = A[j][i];
                 A[j][i] = temp;
            }
    }
      
    // Driver code
    public static void main (String[] args)
    {
        int A[][] = { {1, 1, 1, 1},
                      {2, 2, 2, 2},
                      {3, 3, 3, 3},
                      {4, 4, 4, 4}};
         
        transpose(A);
      
        System.out.print("Modified matrix is \n");
        for (int i = 0; i < N; i++)
        {
            for (int j = 0; j < N; j++)
            System.out.print(A[i][j] + " ");
            System.out.print("\n");
        }
    }
}
输出:
Modified matrix is 
1 2 3 4 
1 2 3 4 
1 2 3 4 
1 2 3 4

请参阅有关程序的完整文章以查找矩阵的转置以获取更多详细信息!