Самый простой способ - это транспонировать матрицу, а затем печатать каждую строку. Принимая участие в примере из 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] );
}
}
Как отметил Даффимо в комментарии, будет эффективнее обходить транспонирование и просто записывать вложенные циклы for, чтобы печатать столбцы вместо строк. Если вам нужно печатать в обоих направлениях, это приведет к удвоению кода. Это достаточно распространенный компромисс (скорость для размера кода), и я оставляю вам решать.