Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.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-Breeze展开矩阵_Scala_Octave_Scala Breeze - Fatal编程技术网

Scala-Breeze展开矩阵

Scala-Breeze展开矩阵,scala,octave,scala-breeze,Scala,Octave,Scala Breeze,在Octave/Matlab中,我可以如下展开单位矩阵 >> I = eye(3) I = Diagonal Matrix 1 0 0 0 1 0 0 0 1 >> A = [ 3 2 3 2 2 1 3 2 2 1 ] >> E = I(:, A) E = 0 0 0 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 0

在Octave/Matlab中,我可以如下展开单位矩阵

>> I = eye(3)
I =
Diagonal Matrix
  1   0   0
  0   1   0
  0   0   1

>> A = [ 3 2 3 2 2 1 3 2 2 1 ]

>> E = I(:, A)
E =
   0   0   0   0   0   1   0   0   0   1
   0   1   0   1   1   0   0   1   1   0
   1   0   1   0   0   0   1   0   0   0

如何使用Scala/Breeze实现相同的功能(即从A获得e,可能使用I)

明白了。实际上非常类似于八度

scala> val I = DenseMatrix.eye[Int](3)
I: breeze.linalg.DenseMatrix[Int] =
1  0  0
0  1  0
0  0  1

scala> val A = DenseMatrix(2, 1, 2, 1, 1, 0, 2, 1, 1, 0) // zero based in breeze

scala> I(::, A.toArray.toSeq)
res26: breeze.linalg.SliceMatrix[Int,Int,Int] =
0  0  0  0  0  1  0  0  0  1
0  1  0  1  1  0  0  1  1  0
1  0  1  0  0  0  1  0  0  0
警告是:

  • 矩阵必须包含整数
  • 索引以0为基础(与倍频程/Matlab中以1为基础相反)