189 8069 5689

java矩阵连乘代码 矩阵连乘例题详解

要编写一个两个矩阵相乘的JAVA方法,本人不懂,求高手帮忙!!万分感激!!

你好,按照你的要求代码如下,给出了注释和运行结果,可以直接运行:

创新互联公司 - 德阳电信服务器托管,四川服务器租用,成都服务器租用,四川网通托管,绵阳服务器托管,德阳服务器托管,遂宁服务器托管,绵阳服务器托管,四川云主机,成都云主机,西南云主机,德阳电信服务器托管,西南服务器托管,四川/成都大带宽,成都机柜租用,四川老牌IDC服务商

public class test2 {

public static int[][] multiplyMatrix(int[][] a, int[][] b) {

// 判断是否合法

if (a == null || a == null || a.length == 0 || b.length == 0

|| a[0].length != b.length) {

return null;

}

// 计算相乘

int[][] c = new int[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 main(String[] args) {

int[][] a = new int[][] { { 1, 2, 3 }, { 1, 2, 3 } };

int[][] b = new int[][] { { 1, 2 }, { 1, 2 }, { 1, 2 } };

int[][] c = multiplyMatrix(a, b);

printMatrix(a);

printMatrix(b);

printMatrix(c);

}

// 打印矩阵

public static void printMatrix(int[][] c) {

if (c != null) {

for (int i = 0; i c.length; i++) {

for (int j = 0; j c[0].length; j++) {

System.out.print(c[i][j] + " ");

}

System.out.println();

}

} else {

System.out.println("无效");

}

System.out.println();

}

}

运行结果:

1 2 3

1 2 3

1 2

1 2

1 2

6 12

6 12

java 矩阵相乘

有两个错误:

一、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矩阵连乘代码 矩阵连乘例题详解
网页网址:http://cdxtjz.cn/article/docedgg.html

其他资讯