2016-09-16 2 views
0

Следующий пример пытается умножить скалярное число типа Double с SparseVector[(Int, Double)]:Как умножить SparseVector со скаляром в Бриз?

val a = SparseVector(10)(3 -> 1.0, 6 -> 2.0, 9 -> 3.0) 
val b = 5.0 * a 

код не компилировать, потому что

Error: could not find implicit value for parameter op: breeze.linalg.operators.OpMulMatrix.Impl2[Double,breeze.linalg.SparseVector[(Int, Double)],That] val b = 5.0 * a

кажется, что неявное реализация такого типа умножения отсутствует.

Однако, если мы должны были сделать то же самое на DenseVector[Double], все в порядке:

val a = DenseVector(1.0, 2.0, 3.0) 
val b = 5.0 * a 

ли я пропустил пакет я должен импортировать в разреженном случае?

ответ

0

Используйте :* для масштабирования вместо *.

a :* 5.0 или 5.0 *: a.

Смежные вопросы