2009-03-11 28 views

cevap

0

Matris üzerinde getArray() yöntemini çağırarak, öğeleri temsil eden bir çift [] [] elde edebilirsiniz.
Ardından, istediğiniz dizileri/satırları/öğeleri görüntülemek için bu dizinin içinden geçebilirsiniz.

Daha fazla yöntem için API'a bakın.

1

En kolay yol, muhtemelen matrise transpose olur ve her satırı yazdırır. API örneğin bir kısmını alarak: duffymo olarak

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

yorumunda işaret, hukuka aktarılması atlayıp hemen karşısında döngüler sütunlar aşağı yazdırmak için iç içe yazma yerine daha verimli olacaktır satırlar. İki kat daha fazla kodla sonuçlanacak iki yol yazdırmanız gerekiyorsa. Bu, karar vermek için size bıraktığım yeterince ortak bir tradeoff (kod boyutu için hız).

+0

Her satırı nasıl yazdırırım? – user64480

+0

Göstermek için bazı kod ekledim. –

+0

Burada 2 tane matris var mı? Hiç şüphesiz "işe yarıyor", ama bu, baskı sütunları uğruna ödemek için büyük bir bellek fiyatı. Bu örnek için önemsiz, ancak gerçek bir problem için herhangi bir matris büyük bir isabet alacaktır. – 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(); 
} 
İlgili konular