2012-12-07 60 views
1

所以我剛開始在Java中使用數字方法;Java矩陣和數值

// I have a matrix class that has get, set methods for creating matrices; have used those in the method below. 
// The method below computes a Matrix and prints as well returns it. 

public Matrix computeA(){ 

    int nrows = A.getNumRows(); 
    int ncols = A.getNumCols(); 

    for(int i = 0; i < nrows; i++){ 
     double sum = 0.0; 
     for (int j = 0; i< ncols; j++){ 
         if (i!=j){ 
      A.setElement(i,j, aijCalc(i,j));} // aijCalc is numeric method; setElement has parameters (i, j, value) 
     } 
    A.print(); 
    return A; 
} 

現在,這是我不明白怎麼做: 對角線其中i = j的,矩陣項是1 - (所有AIJ項之和(對於i = j)的在!行)。 我如何在上面的方法中編碼?

我的電流輸出(沒有任何四捨五入看起來像這樣):

0.0 0.026055555555555554 0.0248125 0.050694444444444445 0.05872222222222222 0.030208333333333334

-0.0053750000000000004 0.0 0.00792361111111111 0.01813194444444444 0.02361111111111111 0.009874999999999998

-0.0013854166666666667 -0.005291666666666666 0.0 0.008680555555555556 0.009041666666666667 0.0

0.0 0.009041666666666667 0.0 08680555555555556 0.0 -0.005291666666666666 -0.0013854166666666667

0.009874999999999998 0.02361111111111111 0.01813194444444444 0.00792361111111111 0.0 -0.0053750000000000004

0.030208333333333334 0.05872222222222222 0.050694444444444445 0.0248125 0.026055555555555554 0.0

(它有0其中,i = j)的

和它應該看起來像這個:

0.810 0.026 0.025 0.051 0.059 0.030

--0.005 0.946 0.008 0.018 0.024 0.010

--0.001 --0.005 0.989 0.009 0.009 0.000

0.000 0.009 0.009 分0.989 --0.005 --0.001

0.010 0.024 0.018 0.008 0.946 --0.005

0.030 0.059 0.051 0.025 0.026 0.810

的感謝!

+0

對你所有的問題都有很好的答案。你只接受一個。如果你不接受任何答案,人們會停止幫助。 – jlordo

回答

3

那些額外的零是有效的「謊言」。

建議:只需將數字格式化爲實際的精度(例如四位或五位小數)即可。

例:

System.out.println (String.format ("%11.2f", x);

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html

PS:

究竟同樣是浮點的 「printf」 真正的幾乎所有其他語言:包括C#和C++ 。

+0

我將基本上格式化,謝謝,但我還沒有解決這個問題。 當i!= j時,輸入值只是aijCalc(i,j)。但是,當i = j時,它是該行中所有aijCalc條目的1-總和。下半場我很難。 – newenthusiast

+0

或者如果這不是你的意思,他也可以把它湊起來;-) – bonCodigo

+0

好的,nvm。 我只需要添加一小段代碼就可以工作。 無論如何,謝謝! – newenthusiast