2016-09-21 2 views
0

J'utilise Math.Net (http://numerics.mathdotnet.com/) pour travailler avec des matrices.Math.NET - Renvoie la matrice sous forme de chaîne par ligne

J'ai besoin d'une méthode qui renvoie une matrice sous forme de chaîne.

Donc, si ma matrice ressemble à ceci:

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

J'ai besoin chaîne de retour à égale

"1 2 3 4" 

Voici mon code

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

Ce retour « 1 3 2 4 "

Comment puis-je faites-en revenir "1 2 3 4"?

Répondre

0

Vous pouvez énumérer ligne par ligne à l'aide de , puis énumérer toutes les valeurs de chaque ligne. Par exemple, vous pouvez écrire ce que:

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

ou s'il est autorisé à construire un tableau intermédiaire:

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

Sinon, vous pouvez utiliser la chaîne existante fonctions de formatage, même si elles sont peu étrange à utiliser, par exemple:

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

Cela a bien fonctionné. Merci! – JAck28