矩阵乘法Java程序
时间:2020-01-09 10:35:34 来源:igfitidea点击:
这篇文章展示了一个将两个矩阵相乘的Java程序。
要将一个矩阵与另一个矩阵相乘,我们需要对行和列进行点积运算。
矩阵乘法的Java程序
在矩阵乘法Java程序中,最初会提示用户输入矩阵。我们还可以检查第一个矩阵中的列数是否等于第二个矩阵中的行数。然后,使用这两个矩阵即可进行乘法运算。
import java.util.Scanner; public class MatrixMultiplication { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("Enter number of rows and columns in the matrix : "); int r1 = in.nextInt(); int c1 = in.nextInt(); // First matrix int[][] matrix1 = prepareMatrix(r1, c1); System.out.print("Enter number of rows and columns in the matrix : "); int r2 = in.nextInt(); int c2 = in.nextInt(); if(c1 != r2){ in.close(); throw new IllegalArgumentException("Number of columns in the first matrix should be equal to the number of rows in the second matrix"); } // Second matrix int[][] matrix2 = prepareMatrix(r2, c2); // multiplied result stored in this matrix int multiplyMatrix[][] = new int[r1][c2]; int sum = 0; for(int i = 0; i < r1; i++){ for(int j = 0; j < c2; j++){ for(int k = 0; k < c1; k++){ sum = sum + matrix1[i][k] * matrix2[k][j]; } multiplyMatrix[i][j] = sum; sum = 0; } } System.out.println("Multiplied Matrix : " ); for(int i = 0; i < r1; i++){ for(int j = 0; j < c2; j++){ System.out.print(" " +multiplyMatrix[i][j]+"\t"); } System.out.println(); } if(in != null){ in.close(); } } private static int[][] prepareMatrix(int row, int column){ Scanner sc = new Scanner(System.in); System.out.print("Enter elements of Matrix : "); int matrix[][] = new int[row][column]; for(int i = 0; i < row; i++){ for(int j = 0; j < column; j++){ matrix[i][j] = sc.nextInt(); } } System.out.println("Entered Matrix : " ); for(int i = 0; i < row; i++){ for(int j = 0; j < column; j++){ System.out.print(" " +matrix[i][j]+"\t"); } System.out.println(); } return matrix; } }
输出:
Enter number of rows and columns in the matrix : 3 3 Enter elements of Matrix : 1 3 5 7 9 11 13 15 17 Entered Matrix : 1 3 5 7 9 11 13 15 17 Enter number of rows and columns in the matrix : 3 3 Enter elements of Matrix : 2 4 6 8 10 12 14 16 18 Entered Matrix : 2 4 6 8 10 12 14 16 18 Multiplied Matrix : 96 114 132 240 294 348 384 474 564