Math.NET Numerics Matrices and Vectors
Math.NET Numerics Matrices and Vectors
https://numerics.mathdotnet.com/Matrix.html
// Copy of an existing matrix (can also be sparse or diagonal) Matrix<double> x = ... M.DenseOfMatrix(x); // Directly bind to an existing column-major array without copying (note: no "Of") double[] x = existing... M.Dense(3, 4, x); // From a 2D-array double[,] x = {{ 1.0, 2.0 }, { 3.0, 4.0 }}; M.DenseOfArray(x); // From an enumerable of values and their coordinates Tuple<int,int,double>[] x = {Tuple.Create(0,0,2.0), Tuple.Create(0,1,-3.0)}; M.DenseOfIndexed(3,4,x); // From an enumerable in column major order (column by column) double[] x = {1.0, 2.0, 3.0, 4.0}; M.DenseOfColumnMajor(2, 2, x); // From an enumerable of enumerable-columns (optional with explicit size) IEnumerable<IEnumerable<double>> x = ... M.DenseOfColumns(x); // From a params-array of array-columns (or an enumerable of them) M.DenseOfColumnArrays(new[] {2.0, 3.0}, new[] {4.0, 5.0}); // From a params-array of column vectors (or an enumerable of them) M.DenseOfColumnVectors(V.Random(3), V.Random(3)); // Equivalent variants also for rows or diagonals: M.DenseOfRowArrays(new[] {2.0, 3.0}, new[] {4.0, 5.0}); M.DenseOfDiagonalArray(new[] {2.0, 3.0, 4.0}); // if you already have existing matrices and want to concatenate them Matrix<double>[,] x = ... M.DenseOfMatrixArray(x);
作者:Chuck Lu GitHub |