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())
我正在使用 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())