使用多維陣列的 Java 矩陣乘法程式


在本文中,我們將瞭解如何使用 Java 中的多維陣列來乘以兩個矩陣。矩陣的元素具有行和列的排列。具有 m 行和 n 列的矩陣可以稱為m × n 矩陣

矩陣中的單個條目稱為元素,可以用a[i][j]表示,表示元素 a 位於第 i 行和第 j 列。

問題陳述

編寫一個 Java 程式,使用多維陣列乘以兩個矩陣。以下是相同的演示 -

輸入

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

不同的方法

以下是使用多維陣列乘以兩個矩陣的不同方法 -

使用 main() 方法

以下是使用多維陣列乘以兩個矩陣的步驟 -

  • main() 方法中定義矩陣的大小並初始化兩個矩陣。
  • 使用巢狀迴圈列印第一個和第二個矩陣。
  • 建立一個第三個矩陣來儲存兩個矩陣的乘積。
  • 使用巢狀迴圈透過迭代矩陣的行和列來計算乘積。
  • 將計算出的乘積儲存在結果矩陣中。
  • 列印包含兩個矩陣乘積的結果矩陣。

示例

在這裡,我們將所有操作繫結到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

使用封裝

以下是使用 封裝 使用多維陣列乘以兩個矩陣的步驟 -

  • 定義一個靜態multiply() 方法來執行矩陣乘法。
  • 在 multiply() 方法內部,我們將建立一個矩陣來儲存結果。
  • 使用巢狀迴圈將輸入矩陣的對應行和列相乘並存儲乘積。
  • 在 multiply() 方法內部列印結果矩陣。
  • main() 方法中,定義並初始化兩個矩陣。
  • 列印第一個和第二個矩陣。
  • 使用輸入矩陣呼叫 multiply() 方法來計算和顯示乘積。

示例

在這裡,我們將操作封裝到函式中,展示了 面向物件程式設計 -

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

更新於: 2024-11-15

830 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.