2016-03-07 38 views
-1

我是Java的新手, 目前,我正在练习Java的一些代码。所以我正在尝试自己创建一个Matrix类。但是,我指的是来自jama的代码(http://math.nist.gov/javanumerics/jama/doc/Jama/Matrix.html)。 但我觉得很奇怪。这里是后面部分定义的Matrix类的结构。请帮我解释Java转换矩阵机制(代码附后)

有人可以帮我解释为什么转置()返回X(在我的想法中,C数组是X的元素,X的元素是相同的顺序,但为什么jama返回X,以及C-在这个程序中的数组?)。 非常感谢。

public class Matrix 
{ 

    private double[][] A;// 2-D array to hold matrix element 
    private m,n ; // number of column and row. 
    // Some constructors but I would like to omit 

    //public methods: 
    // I don't understand this: 

    public Matrix transpose() { 
     Matrix X = new Matrix(n,m); 
     double[][] C = X.getArray(); 
     for (int i = 0; i < m; i++) { 
     for (int j = 0; j < n; j++) { 
      C[j][i] = A[i][j]; 
     } 
     } 
     return X; // While it returns X? seem that X does not transpose but C. 
       // it seems there is no connection between X and C. what is the role of C here? 
    } 


    public double[][] getArray() { 
     return A; 
    }  

} 
+0

[transpose double \ [\] \ [\] matrix with a java function?]的可能的副本(http://stackoverflow.com/questions/15449711/transpose-double-matrix-with-a-java-function ) –

回答

1

XC之间的连接。当您致电getArray()时,它会自行返回A,而不是A的副本。

因此在transpose()方法的上下文中,CX.A相同。

可以读取关于参考变量的在Java

+0

是的,我喜欢这个词(“X和C之间有连接。当你调用getArray()时,它返回A本身,而不是A的副本。”)。我怎样才能点击按钮接受答案?我找不到那个按钮。非常感谢你们。 –

0

C行为仅仅是一个到相同的2D阵列作为X.A参考变量。