编写两个矩阵相乘的方法(Java)

方法头如下:

public static double[][] multiplyMatrix(double[][] a, double[][] b)

为了使矩阵a能够和矩阵b相乘,矩阵a的列数必须与矩阵b的行数相同,并且两个矩阵的元素要具有相同或兼容的数据类型。假设矩阵c是相乘的结果,而a的列数是n,那么每个元素c[ij]=a[i1]*b[1j]+······+a[in]*b[nj]。

编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的乘积。

import java.util.Scanner;

	public class HomeWork6{
		public static double[][] multiplyMatrix(double[][] a, double[][] b){
			double[][] c = new double[3][3];
			for(int i=0; i<3; i++)
				for(int j=0; j<3; j++)
					c[i][j]=a[i][0]*b[0][j]+a[i][1]*b[1][j]+a[i][2]*b[2][j];
			return c;
					
		}
		public static void main(String[] args) {
			Scanner input = new Scanner(System.in);
			double[][] matrix1 = new double[3][3];
			double[][] matrix2 = new double[3][3];
			double[][] matrix3 = new double[3][3];
			System.out.print("Enter matrix1: ");
			for(int i=0; i<3; i++)
				for(int j=0; j<3; j++)
					matrix1[i][j] = input.nextDouble();
			System.out.print("Enter matrix2: ");
			for(int i=0; i<3; i++)
				for(int j=0; j<3; j++)
					matrix2[i][j] = input.nextDouble();
			System.out.println("The multiplication of the matrices is");
			matrix3 = multiplyMatrix(matrix1,matrix2);
			System.out.println(matrix1[0][0]+" "+matrix1[0][1]+" "+matrix1[0][2]+"      "+matrix2[0][0]+" "+matrix2[0][1]+" "+matrix2[0][2]+"      "+matrix3[0][0]+" "+matrix3[0][1]+" "+matrix3[0][2]);
			System.out.println(matrix1[1][0]+" "+matrix1[1][1]+" "+matrix1[1][2]+"      "+matrix2[1][0]+" "+matrix2[1][1]+" "+matrix2[1][2]+"      "+matrix3[1][0]+" "+matrix3[1][1]+" "+matrix3[1][2]);
			System.out.println(matrix1[2][0]+" "+matrix1[2][1]+" "+matrix1[2][2]+"      "+matrix2[2][0]+" "+matrix2[2][1]+" "+matrix2[2][2]+"      "+matrix3[2][0]+" "+matrix3[2][1]+" "+matrix3[2][2]);
		}
	}

运行结果:
编写两个矩阵相乘的方法(Java)_第1张图片

你可能感兴趣的:(Java)