如何打印JAMA矩阵的列?

时间:2009-03-11 11:49:50

标签: java matrix jama

我使用JAMA.matrix包。如何打印矩阵的列

3 个答案:

答案 0 :(得分:1)

最简单的方法可能是transpose矩阵,然后打印每一行。参加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] );
    }
}

正如duffymo在评论中指出的那样,更有效地绕过转置,只需编写嵌套的for循环来打印列而不是跨行。如果您需要打印两种方式,这将导致两倍的代码。这是一个足够普遍的权衡(代码大小的速度),我留给你决定。

答案 1 :(得分:0)

您可以在矩阵上调用getArray()方法以获得表示元素的double [] []。
然后,您可以遍历该数组以显示您想要的任何列/行/元素。

有关更多方法,请参阅API

答案 2 :(得分:0)

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