Как вставить вектор единиц в матрицу?
У меня есть вектор и матрица:
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
Но эта операция недоступна?
Есть ли метод/функция для добавления вектора единиц к матрице?
person
blue-sky
schedule
10.12.2016
source
источник
Ответы (2)
Другой вариант здесь. Сначала преобразуйте 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
person
Psidom
schedule
10.12.2016
Вы можете создать функцию для создания плотной матрицы с добавленным столбцом единиц:
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)
}
person
Atreys
schedule
10.12.2016