2012-04-12 72 views
1

我正在寫一個使用大量矩陣計算的Java程序,並且在進行某些計算時,我會在進一步計算之前使用多個臨時「存儲」矩陣。2維數組初始化和用法

我已經宣佈在類變量臨時矩陣,這樣

private double[][] intermediateMatrixA; private double[][] intermediateMatrixB; private double[][] intermediateMatrixC; private double[][] intermediateMatrixD;

但是,我從來沒有初始化在構造函數或方法的矩陣中的intermediateMatrix = new double[][]形式。 相反,我正在爲每個臨時矩陣做這件事intermediateMatrix = [the product of a matrix calculation]

我的問題:我使用安全baring記住臨時數組的方法將在其他計算中重用?每次我聲明我的一個臨時矩陣應該等於另一個陣列時,它將等於該矩陣的確切維數和值?

預先感謝 問候 邁克

+0

我不清楚這是如何工作的 - 如果你可以發佈更多的代碼,我可以更確定。但這就是我要告訴你的:你無法從無到有。如果您要矩陣相乘,則需要在某處創建一個新的double [] []來存儲新值。 – ControlAltDel 2012-04-12 19:14:07

+0

我強烈建議你去和谷歌的JAMA矩陣包 - 矩陣數學很難,因爲它是沒有寫你自己的圖書館。 – ControlAltDel 2012-04-12 19:15:10

回答

0

是的,它是從你上面的變量,將指向你的方法或計算,行和列的結果的方式「安全」將被保留。

private double[][] intermediateMatrixA = new double[3][4]; 
//etc etc 
intermediateMatrixA =new double[5][6]; 

完全沒問題,只要它總是double[][];跟蹤行和列的邏輯是由你自己決定的。

您可以將double[][]的類型分配給其他類型的double[][],但不是double[]double[][]

如果您打算一再使用它們,我建議您在分配它們之前將它們設置爲空,以防萬一。