Как умножить 2d-массив на скаляр

#java #arrays #matrix

#java #массивы #матрица

Вопрос:

Я пишу программу для выполнения матричных вычислений, и мне нужна помощь с методом, который будет умножать мой массив на двойное число, например 2.0. Это то, что у меня есть до сих пор.

     public Matrix mul(double k) {
        Matrix scaledA = new Matrix(this.rows, this.columns);
        for (int r = 0; r < this.rows; r  ) {
            for (int c = 0; c < this.columns; c  ) {
                scaledA.data[r][c] = scaledA.data[r][c] * k;
            }
        } 
    return scaledA;
    }   
 

И вот как я пытаюсь вызвать это в main.

     Matrix g = new Matrix(new double[][]{{1, 4},{-2, 3},{0, -1}});
    double k = 2.0;
    Matrix h = g.mul(k);
    System.out.println("h:n"   h);
 

Я могу его скомпилировать, но когда он печатает весь массив, который должен быть масштабирован, равен 0.0, Может ли кто-нибудь указать мне правильное направление. Я чувствую, что мне не хватает чего-то основного, но я не могу понять это.

Комментарии:

1. Не похоже scaledA.data , что он когда-либо инициализируется значениями из this матрицы.

Ответ №1:

Вы используете неправильный массив в качестве источника для умножения:

 scaledA.data[r][c] = scaledA.data[r][c] * k;
 

должно быть

 scaledA.data[r][c] = this.data[r][c] * k;
 

Комментарии:

1. Вау………. Я чувствую себя таким медленным. Я действительно ценю помощь, спасибо!