要编写一个两个矩阵相乘的JAVA方法,本人不懂,求高手帮忙!!万分感激!!
编写2个矩阵相乘的方法,方法头声明如下:publicstaticint[][]multiplyMatrix(int[][]a,int[][]b)提示(1)为了使2个矩阵能...
编写2个矩阵相乘的方法,方法头声明如下:
public static int[][] multiplyMatrix(int[][]a,int[][]b)
提示(1)为了使2个矩阵能够相乘,矩阵a的列数必修与矩阵b的行数相同。
(2)编写main方法测试时,可以自行定义并初始化2个数组作为实参,不必从键盘输入。 展开
public static int[][] multiplyMatrix(int[][]a,int[][]b)
提示(1)为了使2个矩阵能够相乘,矩阵a的列数必修与矩阵b的行数相同。
(2)编写main方法测试时,可以自行定义并初始化2个数组作为实参,不必从键盘输入。 展开
2个回答
展开全部
你好,按照你的要求代码如下,给出了注释和运行结果,可以直接运行:
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
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程序!!
追答
循环 啊 循环嵌套 用数组
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询