2016-11-26 7 views

ответ

0

Похоже CSC матрицы поддерживают только B столбцы в виде DenseVector:

scala> import breeze.linalg._ 
import breeze.linalg._ 

scala> import breeze.numerics._ 
import breeze.numerics._ 

scala> val A = CSCMatrix((1d,0d,0d),(0d,1d,0d),(0d,0d,1d)) 
A: breeze.linalg.CSCMatrix[Double] = 
3 x 3 CSCMatrix 
(0,0) 1.0 
(1,1) 1.0 
(2,2) 1.0 

scala> val B = DenseVector(3d,4d,5d) 
B: breeze.linalg.DenseVector[Double] = DenseVector(3.0, 4.0, 5.0) 

scala> A \ B 
res0: breeze.linalg.DenseVector[Double] = DenseVector(3.000000000000001, 4.000000000000002, 5.000000000000001) 
+0

: вы имеете право с Апи точки зрения, но моя проблема заключается в том, что этот код не компилируется. я получаю следующее: Ошибка: (44, 9) не удалось найти неявное значение параметра op: breeze.linalg.operators.OpSolveMatrixBy.Impl2 [breeze.linalg.CSCMatrix [Double], breeze.linalg.DenseVector [Double], That ] A \ B Ошибка: (44, 9) недостаточно аргументов для метода \: (неявный op: [Double], что]) Это. Параметр не заданного значения op. A \ B ^ –

+0

Хм, поэтому использование 'DenseVector' для вашего' B' не работает? Какую версию Бриз вы используете? –

+0

если я смотрю в intellijidea: это breeze-macros_2.10-0.11.2.jar –