Il problema è nel metodo di scambio: l'ho riscritto piuttosto che cercare di capire dov'è l'errore, ci mettevo meno

codice:
public static float[][]scambiarighe(float mat[][],int k,int h)
{
  for (int j = 0; j < mat[0].length; j++)
  {
    float temp = mat[k][j];
    mat[k][j] = mat[h][j];
    mat[h][j] = temp;
  }
  return mat;
}//chiusura metodo scambia
Ti riposto anche il metodo di ordinamento, visto che avevo fatto un paio di errori:

codice:
public static float[][] ordina(float[][] matx)
{
  float[] moduli = new float[matx.length];

  for (int k = 0; k < matx.length; k++)
  {
    moduli[k] = Prova.calcolamodulo(matx[k]);

    int i = k - 1;

    while (i >= 0 && moduli[i] > moduli[i + 1])
    {
      Prova.scambiarighe(matx, i, i + 1);

      float temp = moduli[i];
      moduli[i] = moduli[i + 1];
      moduli[i + 1] = temp;

      i--;
    }
  }

  return matx;
}