Scala Breeze中DenseVector中非连续索引的切片和更新

Scala Breeze中DenseVector中非连续索引的切片和更新,scala,numpy,scala-breeze,Scala,Numpy,Scala Breeze,我想做如下的事情 NumPy中的等价代码 a = np.zeros(5) a[np.array([1, 2, 4])] += [1, 2, 3] a array([ 0., 1., 2., 0., 3.]) 我尝试了以下方法,但不起作用 val v = DenseVector.zeros[Double](5) v(1, 2, 4) :+= DenseVector(1, 2, 3) <console>:18: error: could not find implicit v

我想做如下的事情

NumPy中的等价代码

a = np.zeros(5)
a[np.array([1, 2, 4])] += [1, 2, 3]
a
array([ 0.,  1.,  2.,  0.,  3.])
我尝试了以下方法,但不起作用

val v = DenseVector.zeros[Double](5)
v(1, 2, 4) :+= DenseVector(1, 2, 3)

<console>:18: error: could not find implicit value for parameter op:breeze.linalg.operators.OpAdd.InPlaceImpl2[breeze.linalg.Vector[Double],breeze.linalg.DenseVector[Int]]
              v(1, 2, 4) += DenseVector(1, 2, 3)
val v=DenseVector.zero[双精度](5)
v(1,2,4):+=DenseVector(1,2,3)
:18:错误:找不到参数op:breeze.linalg.operators.OpAdd.InPlaceImpl2[breeze.linalg.Vector[Double],breeze.linalg.DenseVector[Int]]的隐式值
v(1,2,4)+=密度角(1,2,3)

任何帮助都将不胜感激

请不要只说“它不起作用”。什么不起作用?编译器错误?运行时错误?错误的结果?怎么搞的?你期待什么?而且你不能从Python直接翻译成Scala!你的scala代码没有任何意义。。。你想干什么?将索引为1、2和4的元素设置为值1、2、3?我已经对其进行了编辑,正在执行一个切片,如
v(1、2、4)
为我提供了一个切片向量,我不确定如何操作它。文档非常稀少。是的,这就是我想要做的。很抱歉,在您编辑您的评论之前我已经回答了。
(index-zip-val_)map{case(I,x)=>v(I)=x}
可能吗?