多くの行列計算を使用するJavaプログラムを作成しています。計算の際に、計算の前に複数の一時的な「記憶域」行列を使用しています。私は、このような二次元配列の初期化と使用
private double[][] intermediateMatrixA; private double[][] intermediateMatrixB; private double[][] intermediateMatrixC; private double[][] intermediateMatrixD;
とクラス変数の一時的な行列を宣言した
はしかし、私はintermediateMatrix = new double[][]
の形でコンストラクタやメソッドに行列を初期化したことがありません。 代わりに私は各一時的な行列のためにこれをしていますintermediateMatrix = [the product of a matrix calculation]
私の質問:私は安全なバーリングを使用しているのですか?テンポラリアレイは他の計算で再利用されることを念頭に置いていますか?私の一時行列の1つが別の配列と等しくなければならないと宣言するたびに、その行列の正確な次元と値に等しいでしょうか?事前に
おかげ よろしく マイク
これがどのように機能するかはわかりません。コードを投稿すれば、私はより確かなことができます。しかし、これは私があなたに言うことです:あなたは何かから何かを得ることはできません。行列を乗算する場合は、新しい値を格納するために新しいdouble [] []を作成する必要があります。 – ControlAltDel
そして、私はJAMAマトリックスパッケージのためにgoogleとgoogleをお勧めします。行列の数学は、あなた自身のライブラリを書くことなく、十分です。 – ControlAltDel