如何打印出二维数组(矩阵)对象

时间:2018-10-28 16:14:52

标签: java matrix

我在这里和Google上进行了搜索,但是找不到与打印矩阵对象有关的任何信息。我对java和oop很陌生。

我无法从TestMatrix类中打印出矩阵。

我创建了一个Matrix类来做到这一点(任务的一部分)。

应该有一个toString()方法来执行此操作,但是我的方法无法正常工作。

直到星期二,我才能见到我的教授。因此,我希望获得一些帮助,以便我能解决。谢谢。

这是TestMatrix类:

double [][] data = new double[][]{ {0.5,1,0}, {1,0.5,0}, {0,0.5,1.25}, {0.5,0.5,0.75}};
    Matrix m3 = new Matrix(data);
    System.out.println("Matrix m3 is a:");
    System.out.println(m3);
    Matrix m3b = new Matrix(data.clone());

这是我在其中创建构造函数和toString()方法的Matrix类:

public class Matrix {

private double[][] data;
private int rows;
private int columns;

public Matrix(double[][] data, int rows, int columns) {
    this.data = new double[rows][columns];
    this.rows = rows;
    this.columns = columns;
}

public Matrix(double[][] data) {
    this.data = new double[rows][columns];

}

public String toString(int rows, int columns) {

    this.data = new double[rows][columns];
    for (int i = 0; i < data.length; i++) {
        for (int j = 0; j < data[i].length; j++) {
            System.out.println(data[i][j]);
        }
    }
    return data[i][j];
}

}

这是我得到的输出:

  

矩阵m3是:   assignment3.Matrix@7852e922

这是我应该得到的输出:

  

矩阵m3是:

     

4x3矩阵

     

0.5 1.0 0.0

     

1.0 0.5 0.0

     

0.0 0.5 1.25

     

0.5 0.5 0.75

1 个答案:

答案 0 :(得分:0)

您正在使用data方法重新创建toString对象,这是不正确的。您可能想要做的就是遍历该数据对象并创建一个字符串,然后将其返回。

您可以做的是创建一个字符串生成器,将数据附加到该字符串生成器,然后返回其字符串表示形式。

以下是您可以用来启发灵感的伪代码:

public String toString() {
  StringBuilder sb = new StringBuilder();

  for(...) {
    for(...) { 
      sb.append(...);
    }
  }

  return sb.toString();
}