使用多维数组乘以矩阵的 Java 程序

javacampus interviewserver side programmingprogramming更新于 2024/8/10 11:35:00

在本文中,我们将了解如何使用多维数组乘以矩阵。矩阵的元素按行和列排列。具有 m 行和 n 列的矩阵可以称为 m × n 矩阵。

矩阵中的各个条目称为元素,可以用 a[i][j] 表示,这表明元素 a 存在于第 i 行和第 j 列。

下面是相同的演示 −

假设我们的输入是

第一个矩阵:
2 3 4
5 2 3
4 6 9

第二个矩阵:
1 5 3
5 6 3
8 1 5

期望的输出将是

两个矩阵的乘积是:
49 32 35
39 40 36
106 65 75

算法

步骤 1 - 开始
步骤 2 - 声明三个整数矩阵,即 input_matrix_1、input_matrix_1 和 resultant_matrix
步骤 3 - 定义值。
步骤 4 - 使用 for 循环对两个矩阵的每个元素进行迭代,将第一个矩阵的 [i][j] 位置上的元素与第二个矩阵的行的每个元素相乘,并将值相加,将值存储在结果矩阵的 [i][j] 位置上。对第一个矩阵的每个元素重复此操作。
步骤 5 - 显示结果
步骤 5 - 停止

示例 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();
      }
   }
}

输出

第一个矩阵定义为:
2 3 4
5 2 3
4 6 9

第二个矩阵定义为:
1 5 3
5 6 3
8 1 5

两个矩阵的乘积为:
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);
   }
}

输出

第一个矩阵定义为:
2 3 4
5 2 3
4 6 9
第二个矩阵定义为:
1 5 3
5 6 3
8 1 5

两个矩阵的乘积为:
49 32 35
39 40 36
106 65 75

相关文章