Matrix b; try { b = (Matrix)clone(); } catch (CloneNotSupportedException ex) { b = new Matrix(nr, nc); }
Matrix b = new Matrix(nc, nr);
  public final Matrix transpose() {    int nr = m_Elements.length, nc = m_Elements[0].length;    Matrix b;    try {      b = (Matrix)clone();    } catch (CloneNotSupportedException ex) {      b = new Matrix(nr, nc);    }    for(int i = 0;i < nc; i++) {      for(int j = 0; j < nr; j++) {	b.m_Elements[i][j] = m_Elements[j][i];      }    }    return b;  }