Scala微风矩阵切片和矢量索引需要解决方法



因为方法foo中的奇怪行为,我不能写像bar这样的方法我需要:

import breeze.linalg.DenseMatrix
import breeze.linalg.DenseVector
class Test {
    val dim = 3
    val X:DenseMatrix[Double] = DenseMatrix.rand(dim,dim)
    val u:DenseVector[Double] = DenseVector.fill(dim){1.0}
    def foo:Unit = {
        val i=0;
        val row_i:DenseVector[Double] = X(i,::).t  // OK
        val s = u(i)+u(i)                          // OK
        val j:Integer = 0
        val row_j:DenseVector[Double] = X(j,::).t  // does not compile (A)
        val a = u(j)+u(j)                          // does not compile (B)
    }
    def bar(i:Integer):Double = u(i)+u(i)          // does not compile (C)
}

有解决方法吗?预先感谢所有答复。

编译错误:

(a)找不到参数罐的隐式值: Breeze.linalg.Support.Canslice2 [Breeze.Linalg.Densematrix [double],Integer,Collection.Mmutable。::。类型,结果] 未足够的方法的论点应用:(隐式罐头: Breeze.Linalg.Support.Canslice2 [Breeze.linalg.Densematrix [double],Integer,Collection.Mmutable。::。类型,结果])

导致性状张紧。未指定的值参数罐头。

(b),(c)

找不到参数罐的隐式值: Breeze.Linalg.Support.Canslice [Breeze.linalg.Densevector [double],整数,结果] 应用方法的论点不足:(隐式罐头:breeze.linalg.support.canslice [breeze.linalg.ensensevector [double],integer,unter])结果)结果 在特质张力中。未指定的值参数罐头。

首先:将您的Integer转换为Int。这至少会解决第一个汇编误差。以下更新您的代码确实编译

import breeze.linalg.DenseMatrix
import breeze.linalg.DenseVector
import breeze.linalg.DenseMatrix
import breeze.linalg.DenseVector
class Test {
    val dim = 3
    val X:DenseMatrix[Double] = DenseMatrix.rand(dim,dim)
    val u:DenseVector[Double] = DenseVector.fill(dim){1.0}
    def foo:Unit = {
        val i=0;
        val row_i:DenseVector[Double] = X(i,::).t  // OK
        val s = u(i)+u(i)                          // OK
        val j:Int = 0
        val row_j:DenseVector[Double] = X(j,::).t  // does not compile (A)
        val a = u(j)+u(j)                          // does not compile (B)
    }
    def bar(i:Int):Double = u(i)+u(i)          // does not compile (C)
}

来自REPL:

// Exiting paste mode, now interpreting.
import breeze.linalg.DenseMatrix
import breeze.linalg.DenseVector
defined class Test

因此,您的其他错误对我也消失了(Scala 2.11.8)。让我知道您是否还有其他问题。

最新更新