问题描述
我想知道是否有一种方法可以生成具有任何请求数量的行和列的矩阵,以使得底部三角形仅1
s,顶部三角形仅0
s。
预期输出的示例如下所示。在R
中有可能吗?
[,1] [,2] [,3] [,4]
[1,] 0 0 0 0
[2,] 1 0 0 0
[3,] 1 1 0 0
[4,] 1 1 1 0
[5,] 1 1 1 1
解决方法
您可以使用lower.tri
辅助功能
lower_mat <- function(r,c) {
m <- matrix(0,nrow=r,ncol=c)
m[lower.tri(m)] <- 1
m
}
lower_mat(5,4)
# [,1] [,2] [,3] [,4]
# [1,] 0 0 0 0
# [2,] 1 0 0 0
# [3,] 1 1 0 0
# [4,] 1 1 1 0
# [5,] 1 1 1 1