java计算两个矩阵相乘

import java.util.Scanner;
public class matrix {
	public static double[][] multiplyMatrix(double[][] a,double[][] b){

		 if(a[0].length != b.length) {
		        System.out.println("输入错误");
		        return null;
		 }

		 double[][] c=new double[a.length][b[0].length];

		        for(int i=0;i<a.length;i++) 
		            for(int j=0;j<b[0].length;j++) 
		              for(int k=0;k<a[0].length;k++)            
		            c[i][j] += a[i][k] * b[k][j];		       
		        return c;
		}
	
		public static void printMatrix(double[][] c) {

			if (c!=null) {
				for(int i=0;i<c.length;i++) {					
					for(int j=0;j<c[0].length;j++) 
						System.out.printf("%-8.1f",c[i][j]); 
				System.out.println();
		        }
		} 
		
			else {System.out.println("无效");}

		System.out.println();
		}

		public static void main(String[] args) {

			Scanner input=new Scanner(System.in);
			System.out.println("输入第一个矩阵的行");
			int m=input.nextInt();
			System.out.println("输入第一个矩阵的列");
			int n=input.nextInt();
			System.out.println("输入第二个矩阵的列");
			int k=input.nextInt();
			
			double [][]a=new double[m][n]; 
		    double [][]b=new double[n][k]; 
		    
		    System.out.println("输入矩阵a:");
		     for(int i=0;i<m;i++)
		      for(int j=0;j<n;j++)
		      a[i][j]=input.nextDouble();
		     
		     System.out.println("输入矩阵b:");
		     for(int i=0;i<n;i++)
		      for(int j=0;j<k;j++)
		      b[i][j]=input.nextDouble();
		     
		      double [][]c=multiplyMatrix(a, b);
		      
		      System.out.println("Matrix a:");
		      printMatrix(a);   
		      System.out.println("Matrix b:");
		      printMatrix(b);  
		      System.out.println("Matrix c:");
	          printMatrix(c);   
		      input.close(); 

		}

		}
	
	



  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要用Java计算矩阵相乘,你可以按照以下步骤进行操作: 1. 首先,定义两个矩阵,分别为矩阵A和矩阵B。假设矩阵A的大小为m行n列,矩阵B的大小为n行p列。 2. 创建一个结果矩阵C,其大小为m行p列,用于存储矩阵相乘的结果。 3. 使用嵌套循环遍历矩阵A的每一行和矩阵B的每一列。对于每个元素C[i][j],使用内部循环计算其值。 4. 内部循环计算C[i][j]的值。将矩阵A的第i行与矩阵B的第j列对应元素相乘,并将结果累加到C[i][j]中。 5. 循环完成后,矩阵C即为矩阵A和矩阵B的乘积。 以下是一个示例代码来计算矩阵相乘的结果: ```java public class MatrixMultiplication { public static int[][] multiply(int[][] matrixA, int[][] matrixB) { int m = matrixA.length; int n = matrixA[0].length; int p = matrixB[0].length; int[][] result = new int[m][p]; for (int i = 0; i < m; i++) { for (int j = 0; j < p; j++) { for (int k = 0; k < n; k++) { result[i][j] += matrixA[i][k] * matrixB[k][j]; } } } return result; } public static void main(String[] args) { int[][] matrixA = {{1, 2, 3}, {4, 5, 6}}; int[][] matrixB = {{7, 8}, {9, 10}, {11, 12}}; int[][] result = multiply(matrixA, matrixB); for (int i = 0; i < result.length; i++) { for (int j = 0; j < result[0].length; j++) { System.out.print(result[i][j] + " "); } System.out.println(); } } } ``` 在这个示例中,我们定义了两个矩阵matrixA和matrixB,并使用multiply方法计算它们的乘积。最后,我们将结果打印出来。你可以根据自己的需求修改矩阵的大小和内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值