Frage

I've a DenseMatrix (original). I slice it to remove the last column (subset). After that I want to access the data in the subset. However, subset.data still points to the data in the old DenseMatrix (original). Any idea what I'm missing here and how to fix this ?

original: breeze.linalg.DenseMatrix[Int] = 
1    200  3  0    
10   201  4  0    
111  200  0  100  
150  195  0  160  
200  190  0  150  

scala> val numcols = original.cols
numcols: Int = 4

scala> val subset = original(::, 0 to numcols - 2)
subset: breeze.linalg.DenseMatrix[Int] = 
1    200  3  
10   201  4  
111  200  0  
150  195  0  
200  190  0  

scala> subset.data
res0: Array[Int] = Array(1, 10, 111, 150, 200, 200, 201, 200, 195, 190, 3, 4, 0, 0, 0, 0, 0, 100, 160, 150)

scala> subset.data.size
res1: Int = 20
War es hilfreich?

Lösung

Never mind I figured out one way of doing it.

by using the following

scala> subset.toDenseMatrix.data
res10: Array[Int] = Array(1, 10, 111, 150, 200, 200, 201, 200, 195, 190, 3, 4, 0, 0, 0)

scala> subset.toDenseMatrix.data.size
res11: Int = 15
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top