Как создать плотную матрицу из массива uint[,]

Я пытаюсь создать DenseMatrix в MathDotNet из массива uint с двумя измерениями.

uint[10,10] = myarray;
Matrix<ushort> newarray = Matrix<ushort>.Build.DenseOfArray(myarray);

Mathdotnet жалуется на то, что это еще не сделано. Реализуются только матрицы с плавающей точкой. Что я хотел бы сделать, это:

uint[10,10] = myarray;
Matrix<double> newarray = Matrix<double>.Build.DenseOfArray(myarray);

Но это терпит неудачу, потому что myarray имеет другой тип, чем матрица. Есть ли способ неявного преобразования моего массива uint в double, чтобы решить эту проблему?

Спасибо за любые подсказки!

1 ответ

Решение

Я не думаю, что приведение может работать в этом случае, но есть механизм для построения матрицы из произвольного индексируемого источника:

Matrix<double> newarray = Matrix<double>.Build.Dense(
    myarray.GetLength(0), myarray.GetLength(1), (i,j) => myarray[i,j]);
Другие вопросы по тегам