我使用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;?
答案 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())