#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. Вау………. Я чувствую себя таким медленным. Я действительно ценю помощь, спасибо!