我是Breeze图书馆的新手。我正在尝试将3D阵列形状(2,1,40)转换为密集矩阵,但我不确定我是否以正确的方式进行。 我的要求是:
具有2行,1列和两行中的每一行的矩阵应具有0.0值(40倍)
import breeze.linalg._
val matrix = new DenseMatrix[Float](shape(0), shape(1), Array.fill(shape(2))(0.0f))
答案 0 :(得分:0)
如果您正在寻找对高阶张量的直接支持,那么运气不好。 David Hall已经stated他们会require做很多工作来正确实施,这是完全合理的。他们非常math intensive。
据说,你仍然可以使DenseMatrix
DenseVectors
为val matrix = DenseMatrix(
(DenseVector.zeros[Double](40), DenseVector.zeros[Double](40)),
(DenseVector.zeros[Double](40), DenseVector.zeros[Double](40))
)
matrix(0,0)(0) = 1.0
println( matrix(0,0) )
并操纵这些向量的值。 2乘1矩阵基本上是一个向量,所以这里的例子是2乘2和" 40个零"载体
{{1}}
我必须说这种方法不建议使用,因为这种数据结构的计算复杂。如果您正在使用3D空间中的点,我宁愿选择矩阵或分布式矢量数据集。