2016-09-21 7 views
0

行列を扱うのにMath.Net(http://numerics.mathdotnet.com/)を使用しています。Math.NET - 行列を行単位で返す

行列を文字列として返すメソッドが必要です。

だから私の行列は次のように見える場合:

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

これは、「1 3 2を返します。 4 "

それは "1 2 3 4"を返しますか?

答えて

0

を使用して行ごとに列挙し、各行のすべての値を列挙できます。

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

または中間配列を構築するためにOKの場合:たとえば、次のように書くことができ

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

代わりにあなたは彼らがAであっても、機能をフォーマットする既存の文字列を使用することができます少し奇妙な、例:

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

これはうまくいきました。ありがとう! – JAck28

関連する問題