我正在编写一个java程序,该程序使用大量矩阵计算,并且在某些计算过程中,我在进一步计算之前使用多个临时“存储”矩阵。
我已经在类变量中声明了临时矩阵
私有(private)双[][] middleMatrixA;
私有(private)双[][]中间矩阵B;
私有(private)双[][]中间矩阵C;
私有(private)双[][] middleMatrixD;
但是,我从未以 intermediateMatrix = new double[][]
的形式在构造函数或方法中初始化矩阵。
相反,我对每个临时矩阵执行此操作 intermediateMatrix = [矩阵计算的乘积]
我的问题:我使用的方法是否安全,考虑到临时数组将在其他计算中重用?每次我声明我的一个临时矩阵应该等于另一个数组时,它就会等于该矩阵的确切维度和值?
提前致谢 问候 迈克
最佳答案
是的,它是“安全”的,因为上面的变量将指向方法或计算的结果,并且行和列将被保留。
private double[][] intermediateMatrixA = new double[3][4];
//etc etc
intermediateMatrixA =new double[5][6];
完全没问题,只要它始终是一个double[][]
;不过,跟踪行和列的逻辑取决于您。
您可以将 double[][]
类型分配给其他类型的 double[][]
,但不能将 double[]
分配给双[][]
。
如果您打算一次又一次地使用它们,我建议您在分配它们之前将它们设置为 null,以防万一。
关于java - 二维数组的初始化和使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10130150/