gpt4 book ai didi

r - 带外层的构造矩阵

转载 作者:行者123 更新时间:2023-12-02 09:15:42 26 4
gpt4 key购买 nike

我有一个问题,如何构造这种类型的矩阵更节省时间。任务是用户输入自然数(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

这里它是一个函数

myfun <- function(n) {
series <- c(seq_len(n-1), n, rev(seq_len(n-1)))
return(outer(series, series, pmin))
}
myfun(4)

关于r - 带外层的构造矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47412911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com