【问题标题】:Dense matrix for 3D-shaped objects3D 形状对象的密集矩阵
【发布时间】:2018-03-28 05:52:24
【问题描述】:

我对 Breeze 库还很陌生。我正在尝试将形状 (2,1,40) 的 3D 数组转换为密集矩阵,但我不确定我是否以正确的方式进行操作。 我的要求是:

2 行 1 列的矩阵,两行中的每一行应该有 0.0 个值(40 次)

import breeze.linalg._

val matrix = new DenseMatrix[Float](shape(0), shape(1), Array.fill(shape(2))(0.0f))

【问题讨论】:

    标签: scala scala-breeze


    【解决方案1】:

    如果您正在寻找对高阶张量的直接支持,那么运气不好。 David Hall 已经stated 表示他们将require 进行大量工作才能正确实施,这非常有意义。他们非常math intensive

    话虽如此,您仍然可以将DenseMatrixDenseVectors 相乘,并操作这些向量的值。 2 x 1 矩阵基本上是一个向量,所以这里是 2 x 2 和“40 个零”向量的示例

    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) )
    

    我必须说,由于这种数据结构的计算性质复杂,不推荐使用这种方法。如果您正在处理 3D 空间中的点,我宁愿选择矩阵或分布式向量数据集。

    【讨论】:

      猜你喜欢
      • 2014-03-06
      • 2023-03-16
      • 2012-11-19
      • 1970-01-01
      • 1970-01-01
      • 2016-06-25
      • 1970-01-01
      • 2013-01-30
      • 1970-01-01
      相关资源
      最近更新 更多