例如,我想将标量Gamma乘以NxN矩阵A,并将结果作为NxN矩阵B返回,即B = Gamma * A.
首先,我创建DenseMatrix64F A
,DenseMatrix64F B
和double Gamma
。然后,我想使用这个方法:
org.ejml.ops.CommonOps.mult(Gamma, A, B);
我收到Gamma
为double
的编译错误,该错误无法应用于mult()
中的CommonOps
。 mult
方法的网页为here。
我不知道我哪里错了。你能帮我解决一下这个问题吗?
答案 0 :(得分:0)
要执行逐个元素的标量乘法,请使用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,这对您的示例不是必需的。