Я использую пакет JAMA.matrix .. как я печатаю столбцы матрицыКак напечатать столбцы матрицы JAMA?
3
A
ответ
0
Вы можете вызвать метод getArray() в матрице, чтобы получить двойной [] [], представляющий элементы.
Затем вы можете пройти через этот массив, чтобы отображать любые столбцы/строки/элементы, которые вы хотите.
Дополнительную информацию см. На сайте API.
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 отметил в комментариях, это бы быть более эффективным, чтобы обойти транспозиции и просто написать вложенную для петли для печати вниз колонка вместо всей строки. Если вам нужно напечатать оба способа, которые приведут к удвоению кода. Это довольно распространенный компромисс (скорость для размера кода), который я оставляю вам решать.
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();
}
как распечатать каждую строку? – user64480
Я добавил код для иллюстрации. –
Итак, у нас есть 2 матрицы здесь, a и aTransposed? Несомненно, что это «работает», но это большая цена памяти, чтобы платить за печать столбцов. В этом примере тривиально, но любая матрица для реальной проблемы сильно пострадает. – duffymo