通过循环更改矩阵的名称

时间:2014-07-22 23:42:11

标签: java matrix

我想我可以确定这个问题的答案,谢谢你     公共类矩阵{

    private double[][] mat;

    public Matrix(double[][] mat) {
        this.mat = mat;
    }

    public double[][] getMatrix() {
        return mat;
    }

    public void setMatrix(double[][] mat) {
        this.mat = mat;
    }

2 个答案:

答案 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],等等。)