Java
 Computer >> コンピューター >  >> プログラミング >> Java

多次元配列を使用して行列に乗算するJavaプログラム


この記事では、多次元配列を使用して行列に乗算する方法を理解します。マトリックスには、その要素の行と列の配置があります。 m行n列の行列はm×n行列と呼ぶことができます。

マトリックス内の個々のエントリは要素と呼ばれ、a [i] [j]で表すことができます。これは、要素aがi番目の行とj番目の列に存在することを示しています。

以下は同じのデモンストレーションです-

入力がであると仮定します −

First matrix:
2 3 4
5 2 3
4 6 9

Second matrix:
1 5 3
5 6 3
8 1 5

必要な出力は

The product of two matrices is:
49 32 35
39 40 36
106 65 75

アルゴリズム

Step 1 - START
Step 2 - Declare three integer matrices namely input_matrix_1, input_matrix_1 and resultant_matrix
Step 3 - Define the values.
Step 4 - Iterate over each element of the both the matrices using for-loop, multiply the element at [i][j] position of the first matrix with each element of the row of the second matrix and add the values, store the value at [i][j] position of the resultant matrix. Repeat this for each element of the first matrix.
Step 5 - Display the result
Step 5 - Stop

例1

ここでは、「main」関数の下ですべての操作をバインドします。

public class MultiplyMatrices {
   public static void main(String[] args) {
      int matrix_size = 3;
      int[][] input_matrix_1 = {
         {2, 3, 4},
         {5, 2, 3},
         {4, 6, 9}
      };
      System.out.println("The first matrix is defined as: ");
      for (int i = 0; i < matrix_size; i++) {
         for (int j = 0; j < matrix_size; j++) {
            System.out.print(input_matrix_1[i][j] + " ");
         }
         System.out.println();
      }
      int[][] input_matrix_2 = {
         {1, 5, 3},
         {5, 6, 3},
         {8, 1, 5}
      };
      System.out.println("The second matrix is defined as: ");
      for (int i = 0; i < matrix_size; i++) {
         for (int j = 0; j < matrix_size; j++) {
            System.out.print(input_matrix_2[i][j] + " ");
         }
      System.out.println();
   }
   int[][] resultant_matrix = new int[matrix_size][matrix_size];
   for(int i = 0; i < matrix_size; i++) {
      for (int j = 0; j < matrix_size; j++) {
         for (int k = 0; k < matrix_size; k++) {
            resultant_matrix[i][j] += input_matrix_1[i][k] * input_matrix_2[k][j];
         }
      }
   }
   System.out.println("\n The product of two matrices is: ");
   for(int[] row : resultant_matrix) {
      for (int column : row) {
         System.out.print(column + " ");
      }
      System.out.println();
      }
   }
}

出力

The first matrix is defined as:
2 3 4
5 2 3
4 6 9

The second matrix is defined as:
1 5 3
5 6 3
8 1 5

The product of two matrices is:
49 32 35
39 40 36
106 65 75

例2

ここでは、操作をオブジェクト指向プログラミングを示す関数にカプセル化します。

public class MultiplyMatrices {
   static int matrix_size = 3;
   static void multiply(int input_matrix_1[][], int input_matrix_2[][]){
      int[][] resultant_matrix = new int[matrix_size][matrix_size];
      for(int i = 0; i < matrix_size; i++) {
         for (int j = 0; j < matrix_size; j++) {
            for (int k = 0; k < matrix_size; k++) {
               resultant_matrix[i][j] += input_matrix_1[i][k] * input_matrix_2[k][j];
            }
         }
      }
      System.out.println("\n The product of two matrices is: ");
      for(int[] row : resultant_matrix) {
         for (int column : row) {
            System.out.print(column + " ");
         }
         System.out.println();
      }
   }
   public static void main(String[] args) {
      int matrix_size = 3;
      int[][] input_matrix_1 = {
         {2, 3, 4},
         {5, 2, 3},
         {4, 6, 9}
      };
      System.out.println("The first matrix is defined as: ");
      for (int i = 0; i < matrix_size; i++) {
         for (int j = 0; j < matrix_size; j++) {
            System.out.print(input_matrix_1[i][j] + " ");
         }
      System.out.println();
      }
      int[][] input_matrix_2 = { {1, 5, 3},
         {5, 6, 3},
         {8, 1, 5}
      };
      System.out.println("The second matrix is defined as: ");
      for (int i = 0; i < matrix_size; i++) {
         for (int j = 0; j < matrix_size; j++) {
            System.out.print(input_matrix_2[i][j] + " ");
         }
         System.out.println();
      }
      multiply(input_matrix_1, input_matrix_2);
   }
}

出力

The first matrix is defined as:
2 3 4
5 2 3
4 6 9
The second matrix is defined as:
1 5 3
5 6 3
8 1 5

The product of two matrices is:
49 32 35
39 40 36
106 65 75

  1. JavaのSplit関数を使用してMatrixで文字列を検索する

    分割関数を使用してMatrix内の文字列を検索するには、コードは次のとおりです- 例 import java.util.*; public class Demo {    public static int search_string(String[] my_matrix, String search_string){       for (String input : my_matrix){          String[] my_value = input.split(search_str

  2. Javaは多次元配列をサポートしていますか?

    いいえ、Javaは多次元配列をサポートしていません。 Javaは配列の配列をサポートしています。 Javaでは、2次元配列は1次元配列の配列に他なりません。 int [] [] arr =new int [2] [4]; 式arr[i]は1次元配列を選択し、式arr[i][j]はその配列から要素を選択します。 各次元の配列インデックスは、ゼロから「長さ」までの範囲です。ここで、lengthは、指定された次元の配列の長さです。 配列代入演算子はありません。配列が割り当てられると、次元の数と各次元のサイズが固定されます。