Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 微风矢量到矩阵转换_Scala_Scala Breeze - Fatal编程技术网

Scala 微风矢量到矩阵转换

Scala 微风矢量到矩阵转换,scala,scala-breeze,Scala,Scala Breeze,有没有办法将微风矢量转换为行/列大小为1的微风矩阵?我是Scala新手,发现在过去编写无缝处理向量和矩阵的函数非常有用(主要是在Matlab中)。例如,我希望下面代码中的func将subsetMatrix或subsetVector作为输入 val dummyMatrix = DenseMatrix.eye[Double](3) val subsetMatrix = dummyMatrix(::,0 to 2) val subsetVector = dummyMatrix(::,1) def

有没有办法将微风矢量转换为行/列大小为1的微风矩阵?我是Scala新手,发现在过去编写无缝处理向量和矩阵的函数非常有用(主要是在Matlab中)。例如,我希望下面代码中的func将subsetMatrix或subsetVector作为输入

val dummyMatrix = DenseMatrix.eye[Double](3)
val subsetMatrix = dummyMatrix(::,0 to 2)
val subsetVector = dummyMatrix(::,1)


def func(X1: DenseMatrix[Double]): Int = {
// Some operation on X1
}
使用asDenseMatrix

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

scala> val dv = DenseVector(1, 2, 3)
dv: breeze.linalg.DenseVector[Int] = DenseVector(1, 2, 3)

scala> dv.asDenseMatrix
res0: breeze.linalg.DenseMatrix[Int] = 1  2  3

scala> (res0.rows, res0.cols)
res1: (Int, Int) = (1,3)

scala>

更好的解决方案通常是在首先创建
子扇区
时使用范围切片(如果希望它是Nx1矩阵类型而不是长度为N的向量类型)。例如:

val subsetSingleColumnMatrix = dummyMatrix(::, 0 until 1)
例如:

scala> val z = DenseMatrix.rand[Double](3, 3)
z: breeze.linalg.DenseMatrix[Double] =
0.9523399908830603    0.5140714248369589   0.23363266806760596
0.27656335841627455   0.2143774018347031   0.3116275714282011
0.020435608706944386  0.13954770594758292  0.5493312961226657

scala> z(::, 0 until 1)
res47: breeze.linalg.DenseMatrix[Double] =
0.9523399908830603
0.27656335841627455
0.020435608706944386

为什么它不变成列向量?