如何通过在R中创建一个函数将矩阵转换为减少行的梯形图?

时间:2014-03-14 20:44:44

标签: r for-loop matrix

由于某些原因我不知道,这似乎只是通过外部for循环一次,任何人都在关心帮助?这是我到目前为止的代码:

echelon <- function(mat){
    noswaps <- 0
    for(c in 1:dim(mat)[2]){
        if(sum(abs(mat[,c])) != 0){
        pivotcolumn <- mat[,c]
        for(r in 1:dim(mat)[1]){
            if(mat[r,c] != 0){
                pivot <- mat[r,c]
                tmprow <- mat[r,]
                mat[r,] <- mat[(noswaps + 1),]
                mat[(noswaps + 1),] <- tmprow
                mat[(noswaps + 1),] <- mat[(noswaps + 1),]/mat[(noswaps + 1),c]
                if(r > noswaps+1){
                    mat[r,] <- mat[r,] - (mat[r,c]*mat[(noswaps+1),])
                }
                noswaps <- noswaps + 1
                break
            }
        }
        }
    }
    return(mat)
}

1 个答案:

答案 0 :(得分:0)

This post展示了如何消除Gauss-Jordan,这可以让你减少行梯形式。