Math.NET - 逐行返回矩阵

时间:2016-09-21 15:09:27

标签: mathdotnet

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

我需要一个将矩阵作为字符串返回的方法。

所以如果我的矩阵看起来像这样:

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

我需要我的返回字符串等于

"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();

这将返回&#34; 1 3 2 4&#34;

如何让它返回&#34; 1 2 3 4&#34;?

1 个答案:

答案 0 :(得分:0)

您可以使用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())