Javaにおけるマトリックスプログラム
行列は長方形の配列です。要素は行と列に配置されています。このチュートリアルでは、Javaのいくつかの行列プログラムを見ていきます。
行列のグラフィカルな表現
Javaでのマトリックス
Javaでは、2次元配列を使用して行列を実装できます。行 "r" と列 "c" の要素には、インデックス "array[r][c] " を使ってアクセスできます。
Javaのマトリックスプログラム
私たちは二次元配列を使って行列を作成しているので、要素に対してさまざまな操作を簡単に行うことができます。このチュートリアルでは、ユーザー入力から行列を作成する方法を学びます。それから、二つの行列を加算、減算、乗算し、結果の行列をコンソールに表示します。
1. 二つの行列を加える
ここにユーザー入力から2つの行列を埋めるための簡単なプログラムがあります。次に、対応するインデックスでその要素を加算して、行列の和を求めます。最後に、行列の和を印刷します。
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. 2つの行列の減算
ここでは、最初の行列から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);
}
参考: ウィキペディア


