如何动态地向Scala中的Breeze DenseMatrix添加行和列

时间:2016-01-13 06:51:06

标签: scala scala-breeze

我使用以下值对矩阵进行硬编码:

val m = breeze.linalg.DenseMatrix((1, 4), (2, 5))
val v = breeze.linalg.DenseMatrix((7, 8), (3, 6))

我想通过从列表中读取来在行和列上插入这些值。

2 个答案:

答案 0 :(得分:2)

如果你有一个rows:Seq[Seq[Double]],那么外部〜eq中的每个条目都是一行:

DenseMatrix(rows:_*)

如果您提前了解矩阵尺寸,并且每行/每列都有DenseVectors,那么

val dm = DenseMatrix.zeros[Double](rows, cols)
dm(::, c) := myColDenseVector
dm(r, ::) := myRowDenseVector.t

或者,如果你有一堆DenseVectors,你可以说:DenseVector.horzcat(columns:_*)

答案 1 :(得分:0)

这是我发现的:

val x =  new DenseMatrix(2, 3, Array(11, 12, 13, 21, 22, 23))

通过切除数组中指定的数字2和3,为矩阵提供2行3列。

结果是:

11  13  22
12  21  23