[Duvidas]Multiplicação de Matrizes

Olá pessoal,
Estou tentando multiplicar uma matriz A[3x2] por uma B[2x3] para gerar uma Res[3x3]…quando compilo, nao dá nenhum erro visivel; mas quando vou execultar ocorre um estouro de array…gostaria que vcs me ajudassem. Se eu fizer uma 3x3 X 3x3 dá certo, mas uma 3x2 X 2x3 não dá!

Meu codigo:

import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class MultiplicacaoVetores {
public static void main(String args[]) {

int mat1[][] = new int[3][2];
int mat2[][] = new int[2][3];
int res[][] = new int[3][3];	
int i, j, k;
String output = " ";

output += "Primeira Matriz [3x2]

";
output += "------------
";

for(i=0; i<3; i++) {
  for(j=0; j<2; j++) {
  	mat1[i][j] = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor do elemento [ " + (i+1) + "] [ " + (j+1) + "] da matriz[3x2]"));
       output += mat1[i][j] + "	";
  }
     output+="

";
}

output += "Matriz [2x3]

";
output += "------------
";

for(i=0; i<2; i++) {
  for(j=0; j<3; j++) {
  	mat2[i][j] = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor do elemento [ " + (i+1) + "] [ " + (j+1) + "] da matriz[2x3]"));
       output += mat2[i][j] + "	";
  }
     output+="

";
}

//laco para calcular a multiplicacao
for(i=0; i<3; i++) {
  for(j=0; j<3; j++) {
  	res[i][j] = 0;
  	for(k=0; k<3; k++) {
  		res[i][j] = res[i][j] + mat1[i][k] * mat2[k][j];
  	}
  }
}  		
  	
output += "Matriz Resultante[3x3]

";
output += "-------------------------
";

//imprimindo a matrix resultante
for(i=0; i<3; i++) {
  for(j=0; j<3; j++) {
  	output += res[i][j] + "	";
  }
  output+="

";
}

JTextArea area = new JTextArea();
area.setText(output);
area.setEditable(false);

JOptionPane.showMessageDialog(null, area, "Multiplicação de Matrizes", 
JOptionPane.INFORMATION_MESSAGE);

System.exit(0);

}
}

Problema de algoritmo. Acho que voce faltou em alguma aula de matematica. O laco da variavel k deve ir somente ate 2, e nao ate 3.

BTW: Dica, ao inves de ficar concatenando o output, sugiro que use um StringBuffer e use o metodo append desta classe. Ao final extraia o string resultando com o metodo toString()

[quote]Acho que voce faltou em alguma aula de matematica. O laco da variavel k deve ir somente ate 2, e nao ate 3.
[/quote]
Muito obrigado! Axo que faltei sim…^^
Obrigado pela dica tbm!
Vou tentar usa-la!

Felicidades!