Frage

Ich verwende die JAMA.matrix package..how i die Spalten einer Matrix drucken Sie

War es hilfreich?

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();
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top