R 带外环的构造矩阵
我有一个问题,如何构造这种类型的矩阵更省时。任务是用户输入自然数(n=1,2,3,4,5…),R必须打印此类矩阵(在n=4的矩阵类型下方)。我观察到,第一列和第二列与第六列和第七列是对称的,这足以正确打印左侧的第一列和第二列。我还观察到,第三列作为第二列+c(0,0,1,1,1,0,0)获得,对应于该列的1+1+1=3-编号。但是我不明白,在一般情况下,这个矩阵的算法是什么(例如,对于n=6,dim是2n-1 x 2n-1(nrow x ncol)。它是一列一列构造这个矩阵的最简单的变体还是简化任务的函数R 带外环的构造矩阵,r,matrix,R,Matrix,我有一个问题,如何构造这种类型的矩阵更省时。任务是用户输入自然数(n=1,2,3,4,5…),R必须打印此类矩阵(在n=4的矩阵类型下方)。我观察到,第一列和第二列与第六列和第七列是对称的,这足以正确打印左侧的第一列和第二列。我还观察到,第三列作为第二列+c(0,0,1,1,1,0,0)获得,对应于该列的1+1+1=3-编号。但是我不明白,在一般情况下,这个矩阵的算法是什么(例如,对于n=6,dim是2n-1 x 2n-1(nrow x ncol)。它是一列一列构造这个矩阵的最简单的变体还是简化
1 1 1 1 1 1 1
1 2 2 2 2 2 1
1 2 3 3 3 2 1
1 2 3 4 3 2 1
1 2 3 3 3 2 1
1 2 2 2 2 2 1
1 1 1 1 1 1 1
是的,
outer
可以让这更容易。与pmin
相结合,它可以提供您想要的行为
n <- 4
series <- c(seq_len(n-1), n, rev(seq_len(n-1)))
# [1] 1 2 3 4 3 2 1
outer(series, series, pmin)
# [,1] [,2] [,3] [,4] [,5] [,6] [,7]
# [1,] 1 1 1 1 1 1 1
# [2,] 1 2 2 2 2 2 1
# [3,] 1 2 3 3 3 2 1
# [4,] 1 2 3 4 3 2 1
# [5,] 1 2 3 3 3 2 1
# [6,] 1 2 2 2 2 2 1
# [7,] 1 1 1 1 1 1 1
n谢谢!现在我了解了此功能的功能!很高兴能提供帮助。outer
如果每天使用,将提高您的生活质量。
myfun <- function(n) {
series <- c(seq_len(n-1), n, rev(seq_len(n-1)))
return(outer(series, series, pmin))
}
myfun(4)