웹사이트 검색

Java의 매트릭스 프로그램


Matrix는 직사각형 배열입니다. 요소는 행과 열에 정렬됩니다. 이 자습서에서는 Java의 일부 매트릭스 프로그램을 살펴보겠습니다.

매트릭스의 그래픽 표현

자바의 행렬

Java에서 2차원 배열을 사용하여 행렬을 구현할 수 있습니다. 행 "r\ 및 열 "c\의 요소는 인덱스 "array[r][c]\를 사용하여 액세스할 수 있습니다.

Java의 매트릭스 프로그램

행렬을 만들기 위해 2차원 배열을 사용하고 있기 때문에 요소에 대해 다양한 작업을 쉽게 수행할 수 있습니다. 이 자습서에서는 사용자 입력에서 행렬을 만드는 방법을 배웁니다. 그런 다음 두 행렬을 더하고 빼고 곱하고 결과 행렬을 콘솔에 인쇄합니다.

1. 두 행렬 추가

다음은 사용자 입력에서 두 개의 행렬을 채우는 간단한 프로그램입니다. 그런 다음 해당 인덱스에 해당 요소를 추가하여 행렬을 추가합니다. 마지막으로 행렬의 합을 인쇄합니다.

package com.journaldev.examples;

import java.util.Scanner;

public class MatrixPrograms {

	public static void main(String[] args) {
		System.out.println("Please enter the rows in the matrix");
		Scanner sc = new Scanner(System.in);
		int row = sc.nextInt();
		System.out.println("Please enter the columns in the matrix");
		int column = sc.nextInt();

		int[][] first = new int[row][column];
		int[][] second = new int[row][column];

		for (int r = 0; r < row; r++) {
			for (int c = 0; c < column; c++) {
				System.out.println(String.format("Enter first[%d][%d] integer", r, c));
				first[r][c] = sc.nextInt();
			}
		}

		for (int r = 0; r < row; r++) {
			for (int c = 0; c < column; c++) {
				System.out.println(String.format("Enter second[%d][%d] integer", r, c));
				second[r][c] = sc.nextInt();
			}
		}

		// close the scanner
		sc.close();

		// print both matrices
		System.out.println("First Matrix:\n");
		print2dArray(first);

		System.out.println("Second Matrix:\n");
		print2dArray(second);

		// sum of matrices
		sum(first, second);
	}

	// below code doesn't take care of exceptions
	private static void sum(int[][] first, int[][] second) {
		int row = first.length;
		int column = first[0].length;
		int[][] sum = new int[row][column];

		for (int r = 0; r < row; r++) {
			for (int c = 0; c < column; c++) {
				sum[r][c] = first[r][c] + second[r][c];
			}
		}

		System.out.println("\nSum of Matrices:\n");
		print2dArray(sum);
	}

	private static void print2dArray(int[][] matrix) {
		for (int r = 0; r < matrix.length; r++) {
			for (int c = 0; c < matrix[0].length; c++) {
				System.out.print(matrix[r][c] + "\t");
			}
			System.out.println();
		}
	}
}

2. 두 행렬 빼기

다음은 첫 번째 행렬에서 두 번째 행렬 요소를 뺀 다음 결과 행렬을 인쇄하는 기능입니다.

private static void subtract(int[][] first, int[][] second) {
	int row = first.length;
	int column = first[0].length;
	int[][] sum = new int[row][column];

	for (int r = 0; r < row; r++) {
		for (int c = 0; c < column; c++) {
			sum[r][c] = first[r][c] - second[r][c];
		}
	}

	System.out.println("\nSubtraction of Matrices:\n");
	print2dArray(sum);
}

3. 두 개의 행렬 곱하기

아래 방법은 행렬 요소를 곱하고 결과 행렬을 인쇄합니다.

private static void multiply(int[][] first, int[][] second) {
	int row = first.length;
	int column = first[0].length;
	int[][] sum = new int[row][column];

	for (int r = 0; r < row; r++) {
		for (int c = 0; c < column; c++) {
			sum[r][c] = first[r][c] * second[r][c];
		}
	}

	System.out.println("\nMultiplication of Matrices:\n");
	print2dArray(sum);
}

참조: 위키백과