A matriz transposta de:
4 5 6 7 8
2 3 4 5 6
Será:
4 2
5 3
6 4
7 5
8 6
MATRIZ NORMAL
4 5 6 7 8
2 3 4 5 6
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 2
at matrizes.Main.main(Main.java:706)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 36 segundos)
int matrizA[][] = new int [mA][nA]; // Matriz A
int[][] transposta=new int[matrizA[0].length][matrizA.length];;
System.out.println("\n\n");
System.out.println("MATRIZ NORMAL ");
for(int i=0; i<matrizA.length; i++)
{
for(int j=0; j<matrizA[i].length; j++)
{
System.out.print(matrizA[i][j]+"\t");
}
System.out.println();
}
for(int linha=0;linha<matrizA.length;linha++){
for(int coluna=0;coluna<matrizA[linha].length;coluna++){
if(coluna > linha || coluna < linha)
transposta[linha][coluna]=matrizA[coluna][linha];
if(coluna==linha)
transposta[linha][coluna]=matrizA[linha][coluna];
}
}
System.out.println();
System.out.println("MATRIZ TRANSPOSTA ");
for(int i=0; i<transposta.length; i++)
{
for(int j=0; j<transposta[i].length; j++)
{
System.out.print(transposta[i][j]+"\t");
}
System.out.println();
}
System.out.println("\n\n");
Você precisa inverter as coisas.
O erro lançado e´devido ao fato de você tentar ler a posição 2 de um vetor que só tem 2 posições (0 e 1).
Seria altera essa parte?
for(int linha=0;linha<matrizA.length;linha++){
for(int coluna=0;coluna<matrizA[linha].length;coluna++){
if(coluna > linha || coluna < linha)
transposta[linha][coluna]=matrizA[coluna][linha];
if(coluna==linha)
transposta[linha][coluna]=matrizA[linha][coluna];
}
Veja, você tem a matriz original e a transposta.
A transposta tem o mesmo número de linhas que a original tem de colunas e o mesmo número de colunas que a original tem de linhas.
É só ajeitar isso que fica tudo ok.
3x3 Funciona legal
MATRIZ NORMAL
1 2 3
4 5 6
7 8 9
MATRIZ TRANSPOSTA
1 4 7
2 5 8
3 6 9
Só não funciona com 2x5.
Sim, pois o número de linhas é igual ao número de colunas.
A questão é você conseguir sincronizar.
Para transpor uma matriz basta apenas inverter o for na hora da impressão…
matrizA=2x5
matrizAt=5x2
Olhando é fácil e simples na pratica. 
Resposta mole, mole para você.
public class MatrizTransposta {
public static void main(String[] args) {
int matrizA[][] = new int[2][5];
int matrizB[][] = new int[5][2];
matrizA[0][0] = 0;
matrizA[0][1] = 1;
matrizA[0][2] = 2;
matrizA[0][3] = 3;
matrizA[0][4] = 4;
matrizA[1][0] = 5;
matrizA[1][1] = 6;
matrizA[1][2] = 7;
matrizA[1][3] = 8;
matrizA[1][4] = 9;
System.out.println("Matriz A");
for(int i = 0; i < matrizA.length; i++) {
for(int j = 0; j < matrizA[i].length; j++) {
System.out.print(matrizA[i][j] + "\t");
}
System.out.println("");
}
for(int i = 0; i < matrizA.length; i++) {
for(int j = 0; j < matrizA[i].length; j++) {
matrizB[j][i] = matrizA[i][j];
}
}
System.out.println("");
System.out.println("");
System.out.println("Matriz B");
for(int i = 0; i < matrizB.length; i++) {
for(int j = 0; j < matrizB[i].length; j++) {
System.out.print(matrizB[i][j] + "\t");
}
System.out.println("");
}
}
}