JAMA.matrix パッケージを使用しています。行列の列を印刷するにはどうすればよいですか
5739 次
3 に答える
1
最も簡単な方法は、おそらく行列を転置してから、各行を出力することです。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 ループを記述して、行全体ではなく列を出力する方が効率的です。両方の方法で印刷する必要がある場合、2 倍のコードになります。これは十分に一般的なトレードオフ (コード サイズに対する速度) であり、決定するのはあなたに任せます。
于 2009-03-11T12:03:27.117 に答える
0
マトリックスで getArray() メソッドを呼び出して、要素を表す double[][] を取得できます。
次に、その配列をループして、必要な列/行/要素を表示できます。
その他のメソッドについては、 APIを参照してください。
于 2009-03-11T12:01:21.333 に答える
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();
}
于 2009-05-22T23:09:47.197 に答える