我想我可以确定这个问题的答案,谢谢你 公共类矩阵{
private double[][] mat;
public Matrix(double[][] mat) {
this.mat = mat;
}
public double[][] getMatrix() {
return mat;
}
public void setMatrix(double[][] mat) {
this.mat = mat;
}
答案 0 :(得分:1)
参考答案here,您应该创建一个将2D数组保存为数据结构的类。这方面的一个例子是:
public class Matrix {
private double[][] mat;
public Matrix(double[][] mat) {
this.mat = mat;
}
public double[][] getMatrix() {
return mat;
}
public void setMatrix(double[][] mat) {
this.mat = mat;
}
然后为你的代码制作带有随机浮点数/双精度的矩阵就像:
public static ArrayList<Matrix> generateMatrices(int num, int size) {
ArrayList<Matrix> matrices = new ArrayList<Matrix>();
for(int i = 0; i < num; i++) {
double[][] matrix = new double[size][size];
//populate matrix with random numbers
matrices.add(new Matrix(matrix));
}
return matrices;
}
你所要做的就是调用方法并得到一个矩阵的ArrayList:
ArrayList<Matrix> generated = generateMatrices(10, 5);
希望这会有所帮助。
编辑:
toString()是所有Object类都有的方法。如果您尝试打印出一个Object,它将使用Object的toString方法()。 toString()方法原始返回对象实例的内存位置。某些对象(如ArrayList类)会覆盖该方法,以便程序员可以轻松地将其打印出来。您必须覆盖toString()方法才能打印出Matrix类,特别是存储在其类中的矩阵。你可以制作一个打印出来的自定义方法,但我决定向你展示一小部分OOP。在Matrix类中,添加以下代码:
@Override
public String toString() {
stringedMat = "";
for(int i = 0; i < mat.length; i++) {
for(int j = 0; j < mat.length; j++) {
if(j != (mat.length - 1)) {
stringedMat += (mat[i][j] + " ");
}else{
stringedMat += mat[i][j];
}
}
stringedMat += "\n";
}
return stringedMat;
}
答案 1 :(得分:0)
另一种解决方案可能是使用三维数组,例如第一个索引为chckNumberOfMatrix
。这样你就有了一个“2d矩阵数组”,每个都有一个名字(也就是说,它们都被称为H[0]
,H[1]
,等等。)