Estou implementando uma rede hopfield. Tenho 3 vetores unidimensionais e uma matriz:
int[] a = new int[4];
int[] b = new int[4];
int[] c = new int[4];
int[][] matriz = new int[4][4];
Gostaria de multiplicar elementos seguindo a regra e lançar os valores encontrados na matriz, fiz da seguinte forma:
int[] a = new int[4];
int[] b = new int[4];
int[] c = new int[4];
int[][] matriz = new int[4][4];
matriz[0][0] = 0;
matriz[1][1] = 0;
matriz[2][2] = 0;
matriz[3][3] = 0;
matriz[0][1] = a[0] * a[1] + b[0] * b[1] + c[0] * c[1];
matriz[0][2] = a[0] * a[2] + b[0] * b[2] + c[0] * c[2];
matriz[0][3] = a[0] * a[3] + b[0] * b[3] + c[0] * c[3];
matriz[1][0] = matriz[0][1];
matriz[1][2] = a[1] * a[2] + b[1] * b[2] + c[1] * c[2];
matriz[1][3] = a[1] * a[3] + b[1] * b[3] + c[1] * c[3];
matriz[2][0] = matriz[0][2];
matriz[2][1] = matriz[1][2];
matriz[2][3] = a[2] * a[3] + b[2] * b[3] + c[2] * c[3];
matriz[3][0] = matriz[0][3];
matriz[3][1] = matriz[1][3];
matriz[3][2] = matriz[2][3];
O código está muito extenso, existe alguma forma de fazer essa multiplicação de forma mais simples, talvez usando variaveis e diminuindo o código?