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
请参阅有关程序的完整文章以查找矩阵的转置以获取更多详细信息!