用java编写矩阵类Matrix,包含以下成员变量:整数变量 row_size, col_size, 分别表示矩阵的行数与列数,整数的二维数组 values[][],表示一个整数矩阵. 包含以下成员方法:void setMatrix(int m, int n)方法: 参变量 m,n分别赋值给成员变量 row_size, col_size, 并由键盘输入,完成 values 数组元素的赋值。 void setMatrix(int m, int n, int v[][]) 方法: 参变量 m,n分别赋值给成员变量 row_size, col_size, 并将参变量 的 v数组 赋值给 成员变量 values 数组。 Matrix add(Matrix m),方法:求当前对象对应的矩阵 与 参变量 m 矩阵的 和矩阵,作为返回值返回。 Matirx mul(Matrix m) 方法:求当前对象对应的矩阵 与 参变量 m 矩阵的 积矩阵,作为返回值返回。 void print() 方法:完成当前对象的 成员变量 values数组 的输出;
时间: 2023-06-10 19:04:38 浏览: 177
好的,我可以回答这个问题。以下是 Java 编写矩阵类 Matrix 的代码:
public class Matrix {
private int row_size;
private int col_size;
private int[][] values;
public void setMatrix(int m, int n) {
this.row_size = m;
this.col_size = n;
this.values = new int[m][n];
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.print("Enter element at " + i + ", " + j + ": ");
this.values[i][j] = scanner.nextInt();
}
}
}
public void setMatrix(int m, int n, int[][] v) {
this.row_size = m;
this.col_size = n;
this.values = new int[m][n];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
this.values[i][j] = v[i][j];
}
}
}
public Matrix add(Matrix m) {
if (this.row_size != m.row_size || this.col_size != m.col_size) {
System.out.println("Matrix sizes do not match!");
return null;
}
Matrix result = new Matrix();
result.setMatrix(this.row_size, this.col_size);
for (int i = 0; i < this.row_size; i++) {
for (int j = 0; j < this.col_size; j++) {
result.values[i][j] = this.values[i][j] + m.values[i][j];
}
}
return result;
}
public Matrix mul(Matrix m) {
if (this.col_size != m.row_size) {
System.out.println("Matrix sizes do not match!");
return null;
}
Matrix result = new Matrix();
result.setMatrix(this.row_size, m.col_size);
for (int i = 0; i < this.row_size; i++) {
for (int j = 0; j < m.col_size; j++) {
int sum = 0;
for (int k = 0; k < this.col_size; k++) {
sum += this.values[i][k] * m.values[k][j];
}
result.values[i][j] = sum;
}
}
return result;
}
public void print() {
for (int i = 0; i < this.row_size; i++) {
for (int j = 0; j < this.col_size; j++) {
System.out.print(this.values[i][j] + " ");
}
System.out.println();
}
}
}
使用时,可以按如下方式:
Matrix m1 = new Matrix();
m1.setMatrix(3, 3);
m1.print(); // 输出矩阵 m1
Matrix m2 = new Matrix();
int[][] v = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
m2.setMatrix(3, 3, v);
m2.print(); // 输出矩阵 m2
Matrix sum = m1.add(m2);
sum.print(); // 输出矩阵 m1 + m2
Matrix mul = m1.mul(m2);
mul.print(); // 输出矩阵 m1 * m2
注意,在进行加法或乘法时,需要注意矩阵的维度是否匹配。
阅读全文