val H = DenseMatrix.zeros(L,N) for (j <- 0 to L) { H (::,j) = M(::,j) + v }
但这并不真正符合Scala的不变性,因为H当时已经定义,因此对val错误进行了重新分配。感谢您的建议!
要将向量添加到矩阵的所有列,不需要遍历列;例如,您可以使用列广播功能:
H(::,*) + v // assume v is breeze dense vector
import breeze.linalg._ val L = 3 val N = 2 val v = DenseVector(1.0,2.0,3.0) val H = DenseMatrix.zeros[Double](L, N) val result = H(::,*) + v //result: breeze.linalg.DenseMatrix[Double] = 1.0 1.0 // 2.0 2.0 // 3.0 3.0