Comment imprimer les colonnes d'une matrice JAMA?
Question
J'utilise le package JAMA.matrix, comment puis-je imprimer les colonnes d'une matrice
Autres conseils
Le moyen le plus simple serait probablement de transposer la matrice, puis imprimez chaque ligne. En prenant une partie de l'exemple de API :
double[][] vals = {{1.,2.,3},{4.,5.,6.},{7.,8.,10.}};
Matrix a = new Matrix(vals);
Matrix aTransposed = a.transpose();
double[][] valsTransposed = aTransposed.getArray();
// now loop through the rows of valsTransposed to print
for(int i = 0; i < valsTransposed.length; i++) {
for(int j = 0; j < valsTransposed[i].length; j++) {
System.out.print( " " + valsTransposed[i][j] );
}
}
Comme le duffymo l’a souligné dans un commentaire, il serait plus efficace de contourner la transposition et d’écrire simplement les boucles for imbriquées pour imprimer les colonnes plutôt que les lignes. Si vous devez imprimer dans les deux sens, le code sera multiplié par deux. C’est un compromis assez courant (vitesse pour la taille du code) que je vous laisse le soin de décider.
public static String strung(Matrix m) {
StringBuffer sb = new StringBuffer();
for (int r = 0; r < m.getRowDimension(); ++ r) {
for (int c = 0; c < m.getColumnDimension(); ++c)
sb.append(m.get(r, c)).append("\t");
sb.append("\n");
}
return sb.toString();
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow