JAVA程序设计:设A为m行n列矩阵,B为n行k列矩阵,C为m行k列矩阵.用JAVA设计矩阵乘法程序,能完成C=A*B的操作.m、n与k用define定义为常量,其值由用户自定义.
来源:学生作业帮助网 编辑:作业帮 时间:2024/10/23 14:33:53
JAVA程序设计:设A为m行n列矩阵,B为n行k列矩阵,C为m行k列矩阵.用JAVA设计矩阵乘法程序,能完成C=A*B的操作.m、n与k用define定义为常量,其值由用户自定义.
JAVA程序设计:设A为m行n列矩阵,B为n行k列矩阵,C为m行k列矩阵.
用JAVA设计矩阵乘法程序,能完成C=A*B的操作.m、n与k用define定义为常量,其值由用户自定义.
JAVA程序设计:设A为m行n列矩阵,B为n行k列矩阵,C为m行k列矩阵.用JAVA设计矩阵乘法程序,能完成C=A*B的操作.m、n与k用define定义为常量,其值由用户自定义.
public class Matrix {
private int m,n;
private double[][] matrix;
public Matrix(int m,int n) {
this.n = n;
this.m = m;
if (n == 0 || m == 0) {
throw new RuntimeException();
}
matrix = new double[m][n];
}
public void init(double...value) {
if (value.length != m * n) {
throw new RuntimeException();
}
for (int i = 0,a = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = value[a];
a++;
}
}
}
public Matrix mul(Matrix x) {
if (n != x.m) {
throw new RuntimeException();
}
Matrix c = new Matrix(n,x.m);
for (int i1 = 0; i1 < m; i1++) {
for (int i3 = 0; i3 < x.n; i3++) {
for (int i2 = 0; i2 < n; i2++) {
c.matrix[i1][i3] += matrix[i1][i2] * x.matrix[i2][i3];
}
}
}
return c;
}
public String toString() {
StringBuffer s = new StringBuffer();
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
s.append(matrix[i][j] + " ");
}
s.append("\n");
}
return s.toString();
}
public static void main(String[] args) {
Matrix a = new Matrix(2,2);
Matrix b = new Matrix(2,2);
a.init(new double[] { 1,7,8,3 });
b.init(new double[] { 2,5,6,4 });
Matrix c = a.mul(b);
System.out.println(c);
}
}