ejml library use mult() to multiply a matrix by a scalar

For example, I want to multiply the scalar, Gamma, by the NxN matrix, A, and return the result as the NxN matrix, B, ie B = Gamma * A.

Во-первых, я создаю DenseMatrix64F A, DenseMatrix64F B а также double Gamma, Then, I would like to use the method:

org.ejml.ops.CommonOps.mult(Gamma, A, B);

Я получаю ошибку компилятора Gamma является double that cannot be applied to mult() в CommonOps, The webpage for the mult метод здесь.

Я не знаю, где я иду не так. Please could you help me solve the problem?

1 ответ

Для поэтапного скалярного умножения используйте org.ejml.CommonOps.scale,

В вашем случае попробуйте:

org.ejml.CommonOps.scale(double Gamma, DenseMatrix64F A, DenseMatrix64F B).

В вашем примере ошибка возникает потому, что форма с тремя аргументами org.ejml.CommonOps.mult ожидает, что первый аргумент будет иметь тип DenseMatrix64F, как в:

org.ejml.CommonOps.mult(DenseMatrix64F a, DenseMatrix64F b, DenseMatrix64F c)

Таким образом, когда вы проходите в double в качестве первого аргумента вы получите ошибку компилятора. Более того, mult выполняет умножение матрицы c = a * b, что не является необходимым для вашего примера.

Другие вопросы по тегам