Javaにおけるマトリックスプログラム

行列とは長方形の配列です。要素は行と列に配置されています。このチュートリアルでは、Javaでいくつかの行列プログラムを紹介します。

行列のグラフィカル表現

Matrix

Javaでのマトリックス

私たちはJavaで二次元配列を使用して行列を実装することができます。行 “r” と列 “c” の要素は、インデックス “array[r][c]” を使用してアクセスすることができます。

ネイティブに日本語で以下を言い換えます。1つのオプションだけ必要です:
Javaにおけるマトリックスプログラム

私たちは二次元配列を使って行列を作成しているため、要素に対して様々な操作を簡単に行うことができます。このチュートリアルでは、ユーザーの入力から行列を作成する方法を学びます。そして、二つの行列を足し算、引き算、かけ算して結果の行列をコンソールに表示します。

2つの行列を足す

以下は、ユーザーからの入力を使用して2つの行列を作成するためのシンプルなプログラムです。それぞれの要素を対応するインデックスに加算して、行列の合計を求めます。最後に、行列の合計を表示します。

package com.scdev.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();
		}
	}
}
Matrix programs in Java

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);
}

参照:ウィキペディア

コメントを残す 0

Your email address will not be published. Required fields are marked *