Как создать плотную матрицу из массива 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]);