【发布时间】:2009-03-11 11:49:49
【问题描述】:
我使用 JAMA.matrix 包..我如何打印矩阵的列
【问题讨论】:
我使用 JAMA.matrix 包..我如何打印矩阵的列
【问题讨论】:
最简单的方法可能是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 循环来打印列而不是跨行。如果您需要以两种方式打印,这将导致两倍的代码。这是一个足够常见的权衡(代码大小的速度),我让你来决定。
【讨论】:
您可以在矩阵上调用 getArray() 方法来获取表示元素的 double[][]。
然后,您可以遍历该数组以显示您想要的任何列/行/元素。
查看API了解更多方法。
【讨论】:
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();
}
【讨论】: