Wie drucke ich die Spalten einer Matrix JAMA?
Frage
Ich verwende die JAMA.matrix package..how i die Spalten einer Matrix drucken Sie
Lösung
Sie können die getArray () -Methode auf der Matrix aufrufen a erhalten double [] [], die die Elemente.
Dann können Sie eine Schleife durch das Array angezeigt werden, was Spalten / Zeilen / Elemente, die Sie wollen.
Sehen Sie das API für weitere Methoden.
Andere Tipps
Der einfachste Weg wäre wahrscheinlich zu transponieren < a /> die Matrix, druckt dann jede Zeile. Die Teilnahme des Beispiels aus dem 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] );
}
}
Wie duffymo in einem Kommentar darauf hingewiesen, es würde effizienter sein, die Umsetzung zu umgehen und schreiben Sie einfach die verschachtelte for-Schleifen nach unten den Spalten zu drucken, anstatt über die Reihen. Wenn Sie in beide Richtungen drucken, die in doppelt so viel Code führen würde. Das ist eine gemeinsam genug tradeoff (Geschwindigkeit für die Code-Größe), dass ich es Ihnen überlassen, zu entscheiden.
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();
}