2009-03-11 8 views

答えて

0

マトリックス上でgetArray()メソッドを呼び出して、要素を表すdouble [] []を得ることができます。
次に、その配列をループして、必要な列/行/要素を表示できます。

詳細については、APIを参照してください。

1

最も簡単な方法はおそらくtransposeになり、各行を印刷します。 APIから例の一部を撮影:duffymoとして

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

コメントで指摘し、転置をバイパスし、向かいにループが列ダウン印刷するために、ネストされたを書く代わりにするために、より効率的です行。 2倍のコードを出力する両方の方法を印刷する必要がある場合。これは一般的なトレードオフ(コードサイズの速度)で、私はそれをあなたに任せて決定します。

+0

どのように各行を印刷しますか? – user64480

+0

説明のためにいくつかのコードを追加しました。 –

+0

ここに2つのmatricies、aとaTransposedがありますか?それは "作品"は間違いありませんが、それは印刷コラムのために支払う大きなメモリ価格です。この例では簡単ですが、実際の問題の行列は大きなヒットになります。 – duffymo

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(); 
} 
関連する問題