"assign" 改变了对象,所以你可能已经使用了两次。
例如,请参阅以下Parallel Colt 0.10.0
与 Scala REPL 一起使用的代码。
scala> import cern.colt.matrix.tdouble._
import cern.colt.matrix.tdouble._
scala> import cern.jet.math.tdouble.DoubleFunctions
import cern.jet.math.tdouble.DoubleFunctions
scala> val A = new SparseDoubleMatrix2D(2, 2);
A: cern.colt.matrix.tdouble.impl.SparseDoubleMatrix2D =
2 x 2 sparse matrix, nnz = 0
scala> A.set(0, 0, 2.0)
scala> val B = new SparseDoubleMatrix2D(2, 2);
B: cern.colt.matrix.tdouble.impl.SparseDoubleMatrix2D =
2 x 2 sparse matrix, nnz = 0
scala> B.set(0, 0, 3.0)
scala> A.assign(B, DoubleFunctions.mult)
res11: cern.colt.matrix.tdouble.DoubleMatrix2D =
2 x 2 sparse matrix, nnz = 1
(0,0) 6.0
scala> A.assign(B, DoubleFunctions.mult)
res12: cern.colt.matrix.tdouble.DoubleMatrix2D =
2 x 2 sparse matrix, nnz = 1
(0,0) 18.0
scala> A.assign(B, DoubleFunctions.mult)
res13: cern.colt.matrix.tdouble.DoubleMatrix2D =
2 x 2 sparse matrix, nnz = 1
(0,0) 54.0
或者,它可能是您使用的 Colt 不同版本中的错误。