Эффективное копирование значения матрицы в новую матрицу - PullRequest
4 голосов
/ 18 декабря 2010

Существует ли эффективный встроенный метод, который копирует значение из одной матрицы (например, 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;

    }

Ответы [ 2 ]

6 голосов
/ 18 декабря 2010

Используйте метод клонирования:

double[,] result = (double[,])aMatrix.Clone();
0 голосов
/ 18 декабря 2010

Многомерные массивы сами медленнее, чем векторы (то, что мы называем «одномерными» массивами, которые на самом деле немного отличаются от векторов) из-за того, как они реализованы (с различными проверками границ и правилами доступа). Так что, как примечание, вы можете рассмотреть возможность использования double[][] в некоторых случаях, если эффективность является проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...