假设我们有一个矩阵,它有基列和非基列。我们需要能够获得矩阵的基部分或非基部分。哪些列是数组中指定的基数,声明如下var base: Array[Boolean]
目前我正在这样做:
def getMatrix(matrix: DenseMatrix[Double], pred: Boolean, m: Int, n: Int): DenseMatrix[Double] = {
var a = DenseMatrix.zeros[Double](m, n)
var scanPos: Int = 0
var insertPos: Int = 0
for (el <- base) {
if (el == pred) {
a(::, insertPos) := matrix(::, scanPos)
insertPos += 1
}
scanPos += 1
}
return a
}
但是这段代码很丑,我真的很讨厌它。必须有一个更优雅的解决方案,我要求它
PS:来自微风库的 DenseMatrix 类,可以被视为二维数组