Многомерная интерполяция в Scala

Мне нужно сделать многомерную интерполяцию в Scala. Я использую LinearInterpolator из breeze.interpolation, но не могу найти способ передать матрицу. Интересно, кто-нибудь знает, возможно ли это?

Это то, что я пробовал:

import breeze.interpolation.LinearInterpolator 
import breeze.linalg.{DenseMatrix, DenseVector} 
val dm = DenseMatrix(
  Array(1.2, 2.4, 6.8), 
  Array(1.5, 2.6, 6.1), 
  Array(1.3, 2.9, 6.8), 
  Array(1.7, 2.2, 6.2), 
  Array(1.1, 2.8, 6.8), 
  Array(1.7, 2.1, 6.9)
) 
val dv = DenseVector(2.2, 3.1, 5.2, 1.8, 4.4, 7, 2)   
LinearInterpolator(dm, dv)

Он не запускается, потому что Linearinterpolator() не разрешает DenseMatrix. Спасибо заранее!


person zmicer    schedule 07.04.2018    source источник
comment
Не могли бы вы поделиться своими попытками и предоставить MCVE?   -  person Andrey Tyukin    schedule 07.04.2018
comment
@AndreyTyukin: Я хотел бы реализовать следующий код (ниже), но он не запускается, потому что Linearinterpolator(), похоже, не разрешает DenseMatrix. Спасибо заранее! import breeze.interpolation.LinearInterpolator import breeze.linalg.{DenseMatrix, DenseVector} val dm = DenseMatrix(Array(1.2, 2.4, 6.8), Array(1.5, 2.6, 6.1), Array(1.3, 2.9, 6.8), Array( 1.7, 2.2, 6.2), Массив(1.1, 2.8, 6.8), Массив(1.7, 2.1, 6.9)) val dv = DenseVector(2.2, 3.1, 5.2, 1.8, 4.4, 7,2) LinearInterpolator(dm, dv)   -  person zmicer    schedule 08.04.2018
comment
Пожалуйста, не публикуйте стены кода в разделе комментариев. Если вы хотите обновить свой вопрос, используйте маленькую серую кнопку «Изменить».   -  person Andrey Tyukin    schedule 08.04.2018


Ответы (1)


Согласно документации это может быть невозможно:

Модуль breeze.interpolation в настоящее время поддерживает средства интерполяции для данных в одном измерении (одномерная интерполяция).

и посмотрите на типы атрибуты класса LinearInterpolator, которые вы видите, вам нужно передать Vector, и DenseMatrix не является Vector.

person michaJlS    schedule 08.04.2018
comment
@michaJIS Так написано в документации, но это не работает. - person zmicer; 09.04.2018
comment
@zmicer - в документации написано, что НЕ поддерживает многомерную интерполяцию. Типы говорят то же самое. - person michaJlS; 09.04.2018