Умножим 2 матрицы 4x1 и 1x4 - PullRequest
0 голосов
/ 05 ноября 2018

Программа должна умножить 2 матрицы 4x1 и 1x4 и вывести результат на консоль (матрица 4X4). Но ничего не отображается. В чем проблема?

public class Matrix {

public static void main(String[] args) {

    int[][] matrixA = new int [4][1];
    int[][] matrixB = new int [1][4];
    int[][] matrixC = new int [4][4];

    matrixA[0][0] = 1;
    matrixA[1][0] = 2;
    matrixA[2][0] = 3;
    matrixA[3][0] = 4;

    matrixB[0][0] = 4;
    matrixB[0][1] = 3;
    matrixB[0][2] = 2;
    matrixB[0][3] = 1;


    for (int i = 0; i < 4; i++) { // A rows
        for (int j = 0; j < 4; j++) { // B columns
            for (int k = 0; k < 1; k++) { // A columns
                matrixC[i][j] += matrixA[i][k] * matrixB[k][j];
                    System.out.print(matrixC[i][j]+ "   ");
            }
        }
    } 
    int j = 0;
    for (int i = 0; i < 4; i++) {
        for (int k = 0; k < 1; k++) 
        System.out.print(matrixC[i][j]+ "   ");
        System.out.println();   
    }

} //end main

} // конечный класс

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Я решил проблему! Теперь это дисплей 4х4. Спасибо за помощь!

public class Matrix {

public static void main(String[] args) {

    int[][] matrixA = new int [4][1];
    int[][] matrixB = new int [1][4];
    int[][] matrixC = new int [4][4];

    matrixA[0][0] = 1;
    matrixA[1][0] = 2;
    matrixA[2][0] = 3;
    matrixA[3][0] = 4;

    matrixB[0][0] = 4;
    matrixB[0][1] = 3;
    matrixB[0][2] = 2;
    matrixB[0][3] = 1;


    for (int i = 0; i < 4; i++) { // A rows
        for (int j = 0; j < 4; j++) { // B columns
            for (int k = 0; k < 1; k++) { // A columns
                matrixC[i][j] += matrixA[i][k] * matrixB[k][j];
                    System.out.print(matrixC[i][j]+ "   ");
                    //System.out.println();
            }
        }
        System.out.println();
    } 

} //end main
} //end class
0 голосов
/ 05 ноября 2018

Вы ввели переменную j перед вторым набором циклов for. Кроме того, даже если они не являются обязательными, я настоятельно рекомендую всегда включать фигурные скобки. И k < 4. Как,

for (int i = 0; i < 4; i++) {
    for (int k = 0; k < 4; k++) {
        System.out.print(matrixC[i][k] + "   "); // not [i][j]
    }
    System.out.println();
}

или просто используйте Arrays.deepToString(Object[]) как

System.out.println(Arrays.deepToString(matrixC));
...