Wegen der ungeraden Verhalten in der Methode foo ich nicht Methoden wie bar schreiben kann, , die ich brauche:Benötigen Sie Abhilfe für scala Brise Matrix Aufschneiden und Vektor Indizierung
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)
}
Gibt es eine Abhilfe? Vielen Dank im Voraus für alle Antworten.
Compilation Fehler:
(A) impliziten Wert nicht für den Parameter canSlice finden konnte: breeze.linalg.support.CanSlice2 [breeze.linalg.DenseMatrix [Double], Integer, collection.immutable .: : .type, Result] nicht genug Argumente für die Methode apply: (implizite canSlice: breeze.linalg.support.CanSlice2 [breeze.linalg.DenseMatrix [Double], Ganzzahl, collection.immutable. ::. type, Result])
Ergebnis in Merkmal TensorLike. Unspezifizierter Wertparameter canSlice.
(B), (C)
nicht impliziten Wert für den Parameter canSlice finden kann: breeze.linalg.support.CanSlice [breeze.linalg.DenseVector [Double], Integer, Ergebnis] nicht genug Argumente für Methode gelten: (implizite canSlice: breeze.linalg.support.CanSlice [breeze.linalg.DenseVector [Double], Integer, Ergebnis]) Ergebnis in Trait TensorLike. Unspezifizierter Wertparameter canSlice.
Bitte geben Sie die Komplikationsfehler, anstatt uns zu raten –
@ The Archetypal Paul, tut mir leid, ich verließ IntelliJ, um die Probleme zu sehen, aber tatsächliche Kompilierung zeigte verschiedene Fehler. Deshalb habe ich den Beitrag entsprechend bearbeitet. – gcc