如何将一个向量插入矩阵?
How to insert vector of ones to Matrix?
我有一个向量和一个矩阵:
1
1
0 0
0 0
我想将向量添加到矩阵中以生成:
1 0 0
1 0 0
我到目前为止:
val dv = DenseVector(1.0,1.0);
val dm = DenseMatrix.zeros[Double](2,2)
阅读API:http://www.scalanlp.org/api/breeze/#breeze.linalg.DenseMatrix
以及这两个文档:
https://github.com/scalanlp/breeze/wiki/Quickstart https://github.com/scalanlp/breeze/wiki/Linear-Algebra-Cheat-Sheet
但是这个操作好像不可用?
是否有 method/function 将 1 的向量添加到矩阵之前?
您可以创建一个函数来创建带有一列前置的密集矩阵:
def prependOnesColumn[V](original: DenseMatrix[V]): DenseMatrix[V] = {
val ones = DenseMatrix.ones(original.rows, 1)
val dataWithOnes = ones.data ++ original.data
DenseMatrix.create(original.rows, original.cols + 1, dataWithOnes)
}
这里还有一个选项。首先将 DenseVector 转换为 2X1 矩阵,然后使用 DenseMatrix.horzcat() 方法:
val newMat = DenseMatrix.horzcat(new DenseMatrix(2,1,dv.toArray), dm)
# breeze.linalg.DenseMatrix[Double] = 1.0 0.0 0.0
# 1.0 0.0 0.0
newMat.rows
# 2
newMat.cols
# 3
我有一个向量和一个矩阵:
1
1
0 0
0 0
我想将向量添加到矩阵中以生成:
1 0 0
1 0 0
我到目前为止:
val dv = DenseVector(1.0,1.0);
val dm = DenseMatrix.zeros[Double](2,2)
阅读API:http://www.scalanlp.org/api/breeze/#breeze.linalg.DenseMatrix 以及这两个文档: https://github.com/scalanlp/breeze/wiki/Quickstart https://github.com/scalanlp/breeze/wiki/Linear-Algebra-Cheat-Sheet
但是这个操作好像不可用?
是否有 method/function 将 1 的向量添加到矩阵之前?
您可以创建一个函数来创建带有一列前置的密集矩阵:
def prependOnesColumn[V](original: DenseMatrix[V]): DenseMatrix[V] = {
val ones = DenseMatrix.ones(original.rows, 1)
val dataWithOnes = ones.data ++ original.data
DenseMatrix.create(original.rows, original.cols + 1, dataWithOnes)
}
这里还有一个选项。首先将 DenseVector 转换为 2X1 矩阵,然后使用 DenseMatrix.horzcat() 方法:
val newMat = DenseMatrix.horzcat(new DenseMatrix(2,1,dv.toArray), dm)
# breeze.linalg.DenseMatrix[Double] = 1.0 0.0 0.0
# 1.0 0.0 0.0
newMat.rows
# 2
newMat.cols
# 3