矩阵相乘Java代码 矩阵运算java

java 矩阵相乘

有两个错误:

创新互联建站专注服务器托管服务10余年,提供服务器租用、网络空间、域名注册、云服务器、云主机租用、四川电信机房托管、建站等服务

一、Matrix 类的构造方法写的有问题:改成这样:

public Matrix(int m, int n) {

this.m = m;

this.n = n;

this.ma = new int[m][n];

}

二、如果你发现输入和输出的不一致的话,把Matrix类的print()方法:

循环打印的那行代码改成 System.out.print(ma[i][j] + " ");

也就是单引号改成双引号 ,单引号空格 如果和数字相加回转成int,值为:32

java编写程序实现两个矩阵相乘

private Matrix multiply(Matrix mat1, Matrix mat2) {

Matrix mat=new Matrix();

// TODO 自动生成方法存根

if(mat1.col==mat2.row){

double sum;

mat.data=new double[mat1.row][mat2.col];

for (int i = 0; i mat1.row; ++i) {

for (int j = 0; j mat2.col; ++j) {

sum = 0;

for (int k = 0; k mat1.col; ++k) {

sum += mat1.data[i][k] * mat2.data[k][j];

}

mat.data[i][j] = sum;

}

}

return mat;

}

return null;

}

用java怎么写矩阵乘法?

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;ilt;a;i++){ 

for(int j=0;jlt;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;ilt;c;i++){ 

for(int j=0;jlt;d;j++){ 

double sum = 0 ; 

for(int k=0;klt;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;ilt;x.length;i++){ 

for(int j=0;jlt;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应用程序、分布式系统和嵌入式系统应用程序等。


当前名称:矩阵相乘Java代码 矩阵运算java
文章分享:http://cdiso.cn/article/ddghghi.html

其他资讯