행렬의 전치(transpose)란 행렬의 행과 열을 바꾸는 것을 의미합니다. 즉, 원래 행렬에서 행에 있던 값을 열로 옮기고, 열에 있던 값을 행으로 옮기는 과정입니다. 전치 행렬은 보통 AA 라는 행렬이 있을 때, ATA^T 로 표기합니다.
예를 들어, 2x3 행렬(2행 3열)인 AA 가 다음과 같다고 가정해 봅시다.
A=[123456]
이 행렬의 전치는 3x2 행렬(3행 2열)이 되며, 다음과 같이 변환됩니다.
A^T=[142536]
전치 행렬을 만드는 방법
행렬의 전치를 구하는 과정은 간단합니다.
- 원래 행렬의 각 요소를 새로운 위치로 옮깁니다.
- 원래 행렬의 (i, j) 위치에 있는 요소는 전치 행렬에서 (j, i) 위치로 옮겨집니다.
Java로 행렬의 전치 구하기
자, 이제 행렬의 전치를 구하는 Java 프로그램을 작성해 보겠습니다. 이 프로그램에서는 다음과 같은 순서로 작업을 합니다.
- 원래 행렬을 정의합니다.
- 전치 행렬을 저장할 새로운 배열을 생성합니다.
- 반복문을 통해 원래 행렬의 각 요소를 (i, j)에서 (j, i) 위치로 옮깁니다.
- 결과로 생성된 전치 행렬을 출력합니다.
다음은 Java로 구현한 전치 행렬 프로그램입니다.
public class MatrixTranspose {
public static void main(String[] args) {
// 원래 행렬 정의 (2x3 행렬)
int[][] matrix = {
{1, 2, 3},
{4, 5, 6}
};
System.out.println("원래 행렬:");
printMatrix(matrix);
// 전치 행렬 저장을 위한 배열 생성 (3x2 크기)
int[][] transpose = new int[3][2];
// 전치 작업 수행
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[0].length; j++) {
transpose[j][i] = matrix[i][j];
}
}
System.out.println("전치 행렬:");
printMatrix(transpose);
}
// 행렬 출력 메서드
public static void printMatrix(int[][] matrix) {
for (int[] row : matrix) {
for (int element : row) {
System.out.print(element + " ");
}
System.out.println();
}
}
}
코드 설명
1.원래 행렬 정의:
int[][] matrix = {
{1, 2, 3},
{4, 5, 6}
};
여기서 matrix라는 이름의 2x3 행렬을 정의합니다. 이 행렬은 두 개의 행과 세 개의 열로 구성됩니다.
2. 원래 행렬 출력:
printMatrix(matrix);
printMatrix 메서드를 호출하여 원래 행렬을 출력합니다.
3.전치 행렬 저장용 배열 생성:
int[][] transpose = new int[3][2];
전치 행렬을 저장할 새로운 배열 transpose를 생성합니다. 원래 행렬이 2x3이었으므로 전치 행렬은 그 반대인 3x2 크기로 만듭니다.
4.전치 작업 수행:
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[0].length; j++) {
transpose[j][i] = matrix[i][j];
}
}
두 개의 반복문을 사용하여 원래 행렬의 각 요소를 전치 행렬의 올바른 위치에 복사합니다.
matrix[i][j]는 원래 행렬의 요소를 가리킵니다.
transpose[j][i] = matrix[i][j];는 원래 행렬의 (i, j) 위치에 있는 값을 전치 행렬의 (j, i) 위치로 이동합니다.
5.전치 행렬 출력:
printMatrix(transpose);
전치된 결과를 printMatrix 메서드를 사용하여 출력합니다.
6.행렬 출력 메서드:
public static void printMatrix(int[][] matrix) {
for (int[] row : matrix) {
for (int element : row) {
System.out.print(element + " ");
}
System.out.println();
}
}
printMatrix 메서드는 행렬을 보기 좋게 출력해 주는 함수입니다. 각 행의 요소를 순서대로 출력하고, 행이 끝날 때 줄바꿈을 추가하여 행렬 형태로 보이도록 합니다.
실행 결과
이 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
원래 행렬:
1 2 3
4 5 6
전치 행렬:
1 4
2 5
3 6
요약
- 행렬의 전치란 원래 행렬의 행과 열을 바꾸는 작업입니다.
- Java에서 행렬의 전치를 구현하려면 두 개의 반복문을 사용하여 원래 행렬의 값을 새로운 위치로 복사합니다.
- 전치 행렬의 크기는 원래 행렬의 열과 행의 수가 반대입니다.
- 이 프로그램은 행렬의 전치를 구하는 과정을 쉽게 이해하고, Java로 직접 구현해 볼 수 있는 예제입니다.
'자바(Java)' 카테고리의 다른 글
기수 정렬 Java 프로그램 및 알고리즘 쉽게 이해하기 (0) | 2024.11.17 |
---|---|
Java에서 이진 검색을 위한 프로그램 쉽게 이해하기 (0) | 2024.11.16 |
버블 정렬 Java 프로그램 쉽게 이해하기 (1) | 2024.11.14 |
두 행렬의 곱셈을 위한 Java 프로그램 (2) | 2024.11.13 |
두 행렬의 합집합을 찾는 자바 프로그램 (0) | 2024.11.12 |