用java怎么写矩阵乘法?

我想请教下,用java怎么写矩阵乘法?
最新回答
给十年后的我

2024-11-06 05:37:30

import java.util.Scanner; 
public class Matrix { 
public double[][] create() { 
Scanner sc = new Scanner(System.in) ; 
System.out.print("请输入矩阵的行高:"); 
int a = sc.nextInt() ; 
System.out.print("请输入矩阵的列宽:"); 
int b = sc.nextInt() ; 
double[][] x = new double[a][b] ; 
for(int i=0;i<a;i++){ 
for(int j=0;j<b;j++){ 
System.out.print("请输入元素x["+i+"]["+j+"]的值:" ); 
x[i][j] = sc.nextDouble() ; 


return x ; 

public double[][] multiply(double[][] x,double[][] y){ 
double[][] result = null ; 
int a = x[0].length ; 
int b = y.length ; 
if(a != b){ 
System.out.println("输入的维数不匹配,不能进行运算"); 
}else{ 
int c = x.length ; 
int d = y[0].length ; 
result = new double[c][d] ; 
for(int i=0;i<c;i++){ 
for(int j=0;j<d;j++){ 
double sum = 0 ; 
for(int k=0;k<a;k++){ 
sum += x[i][k]*y[k][j] ; 

result[i][j] = sum ; 



return result ; 

public void print(double[][] x){ 
System.out.println("矩阵为:"); 
for(int i=0;i<x.length;i++){ 
for(int j=0;j<x[i].length;j++){ 
System.out.print(x[i][j] + " ") ; 

System.out.println(); 



测试类: 
public class TestMatrix { 
public static void main(String[] args) { 
Matrix m = new Matrix() ; 
//double[][] x = {{1,2},{3,2}} ; 
//double[][] y = {{1,2,1},{2,3,3}} ; 
System.out.println("创建第一个数组:") ; 
double[][] x = m.create() ; 
m.print(x) ; //用来验证输入的是否和你一样的,没啥作用 
System.out.println("创建第二个数组:"); 
double[][] y = m.create() ; 
m.print(y) ; //用来验证输入的是否和你一样的,没啥作用 
double[][] result = m.multiply(x, y) ; 
if(result == null){ 
return ; //如果输入的矩阵不能运算就不输出结果了。 

m.print(result) ; 

}

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。