2010-12-18 140 views
3

是否有一种有效的内置方法可将一个矩阵(例如double[,])的值复制到另一个矩阵中?高效地将矩阵值复制到新矩阵

为了话,我正在寻找一个替代以下功能:

public static double[,]CloneMatrix(double[,] aMatrix) 
    { 
     var newMatrix = new double[aMatrix.GetLength(0),aMatrix.GetLength(1)]; 
     for (int i = 0; i < aMatrix.GetLength(0); i++) 
     { 
      for (int j = 0; j < aMatrix.GetLength(1); j++) 
      { 
       newMatrix[i, j] = aMatrix[i, j]; 
      } 
     } 
     return newMatrix; 

    } 
+0

@Mark,问题已更新。 – Graviton 2010-12-18 08:29:56

回答

4

使用Clone方法:

double[,] result = (double[,])aMatrix.Clone(); 
0

多维数组自己比矢量慢(我们称之为“单维”数组,实际上与矢量有些不同),因为它们是如何实现的(使用不同的边界检查和访问规则)。所以,作为一个方面说明,如果效率是一个问题,您可能需要考虑在某些情况下使用double[][]