Boa tarde pessoal.
Estou com um seguinte problema, preciso fazer a multiplicação entre duas matrizes e fiz esse código, olhei exemplos na net mas estou com dúvidas ainda
public int[][] produtoMatrizes(int[][] matrizNova) {
int[][] auxMatriz = new int[matriz.length][matriz.length];
for (int linhas = 0; linhas < auxMatriz.length; linhas++) {
for (int colunas = 0; colunas < auxMatriz[linhas].length; colunas++) {
for (int posAux = 0; posAux < matriz[linhas].length; posAux++) {
auxMatriz[linhas][colunas] += matriz[linhas][posAux] * matrizNova[posAux][colunas];
}
}
}
return auxMatriz;
}
e um para adicionar uma matriz nova que desejo multiplicar
public int[][] adicionaMatrizNova() {
int menorValor = -9;
int maiorValor = 9;
Random valor = new Random();
for (int linhas = 0; linhas < matriz.length; linhas++) {
for (int colunas = 0; colunas < matriz[linhas].length; colunas++) {
matriz[linhas][colunas] = valor.nextInt(3) + 1; //(maiorValor - menorValor + 1) + menorValor; //gerar valores negativos e positivos
}
}
return matriz;
}
e retornar ela embaixo da matriz gerado inicialmente
public String dados2() {
StringBuilder saida = new StringBuilder("\n"); //StringBuilder consome menos memória
for (int l = 0; l < matrizProduto.length; l++) {
for (int c = 0; c < matrizProduto[l].length; c++) {
saida.append(matrizProduto[l][c]);
saida.append("\t");
}
saida.append("\n");
}
return saida.toString();
}
}
Na execução do programa o usuário informa a quantidade de linhas e colunas da matriz, e faz outros métodos que tem no programa, quando clicar em multiplicar matrizes é solicitado uma nova matriz
fiz
private void jBMultiplicarMatrizActionPerformed(java.awt.event.ActionEvent evt) {
int [][] novaMatriz = objMatriz.adicionaMatrizNova();
int colunas = 0;
int linhas = 0;
linhas = Integer.parseInt(JOptionPane.showInputDialog(this, "Informe um valor para linhas", "Manipula Matriz", 0));
if (linhas <= 1) {
JOptionPane.showMessageDialog(this, "Informe um valor válido para linhas", "Manipula Matriz", 0);
return;
}
colunas = Integer.parseInt(JOptionPane.showInputDialog(this, "Informe um valor para colunas", "Manipula Matriz", 0));
if (colunas <= 1) {
JOptionPane.showMessageDialog(this, "Informe um valor válido para colunas", "Manipula Matriz", 0);
return;
}
objMatriz2 = new MatrizDeInteiros(linhas, colunas);
jTAResultado.setText("\nOs valores da matriz original" + objMatriz.dados() + "\nOs valores da matriz nova: \n" + objMatriz2.dados2() + "\nA resposta dessa multiplicação é: \n" + objMatriz.imprimeMatriz(objMatriz.produtoMatrizes(novaMatriz)));
Queria pelo saber o que está faltando no método de multiplicar matrizes, é ele que está dando erro