2014-07-22 66 views
0

我想我能確定這個問題的答案謝謝你的好意 公共類矩陣{通過循環更改矩陣的名稱

private double[][] mat; 

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

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

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

像'float [] [] newArray = oldArray;'? – csmckelvey

+1

你能澄清你在做什麼嗎? –

+0

你的意思是改變變量的名字? – Jason

回答

1

參考答案here,您應該創建一個持有類二維數組作爲數據結構。這方面的一個例子是:

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的toString方法()。 toString()方法基本返回對象實例的內存位置。一些對象,比如ArrayList類,已經爲了讓程序員輕鬆地打印出來而重寫了這個方法。您必須重寫toString()方法才能打印出您的Matrix類,特別是存儲在其類中的矩陣。你可以製作一個自定義的方法來打印出來,但是我決定向你展示OOP的一小部分。在矩陣類中,添加的代碼這片:

@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; 
} 
+0

感謝您的回答,但是當我試圖打印生成的System.out.println(生成);我得到了我的包的名稱是(com.example.mymatrixtest).Matrix @ 7852e922,我得到了這十次[[email protected], –

+0

那是因爲你需要重寫toString()方法。我更新了這篇文章,以便你能理解它。 toString()是一種方法,所有對象類的唯一目的是覆蓋並返回一些有用的東西來「彙總」對象。 –

+0

非常感謝您的回覆,但我的問題比這更大我已更新我的原始帖子以更詳細地解釋問題再次感謝您 –

0

一種替代的解決方案可以是使用一個三維陣列代替,與所述第一指數爲chckNumberOfMatrix例如。這樣,你有一個「2d矩陣數組」,每個都有一個名稱(也就是說,它們全都被稱爲H[0],H[1],依此類推)