Math.NET - return 矩阵作为逐行字符串

Math.NET - return matrix as string by row

我正在使用 Math.Net (http://numerics.mathdotnet.com/) 来处理矩阵。

我需要一种方法return将矩阵作为字符串。

因此,如果我的矩阵如下所示:

{{1.0, 2}
 {3  , 4}}

我需要我的 return 字符串等于

"1 2 3 4"

这是我的代码

var M = Matrix<double>.Build;
var mMatrix = M.DenseOfArray(new[,] {{ 1.0, 2 },
                                     { 3  , 4}});

StringBuilder builder = new StringBuilder();
foreach (var m in unitMatrix.Enumerate())
{
   builder.Append(m + " ");
}
return builder.ToString();

这个 returns "1 3 2 4"

我如何做到 return“1 2 3 4”?

您可以使用mMatrix.EnumerateRows()逐行枚举,然后枚举每一行的所有值。例如,您可以将其写为:

String.Join(" ", mMatrix.EnumerateRows().SelectMany(x => x.Enumerate()))

或者如果可以构建一个中间数组:

String.Join(" ", mMatrix.ToRowWiseArray())

或者您可以使用现有的字符串格式化函数,尽管它们使用起来有点奇怪,例如:

mMatrix.ToMatrixString(int.MaxValue,0,int.MaxValue,0,"","",""," "," ", x => x.ToString())