R中的对称循环矩阵

R中的对称循环矩阵,r,matrix,linear-algebra,R,Matrix,Linear Algebra,我想创建对称循环矩阵 订单4的示例: 1 2 : 3 4 2 1 : 4 3 ......... 3 4 : 1 2 4 3 : 2 1 1 2 : 3 4 2 1 : 4 3 ......... 3 4 : 1 2 4 3 : 2 1 订单8的示例: 1 2 3 4 : 5 6 7 8 2 1 4 3 : 6 5 8 7 3 4 1 2 : 7 8 5 6 4 3 2 1 : 8 7 6 5 .................. 5 6 7 8 : 1 2 3 4 6 5 8 7 : 2 1

我想创建对称循环矩阵

订单4的示例:

1 2 : 3 4 2 1 : 4 3 ......... 3 4 : 1 2 4 3 : 2 1 1 2 : 3 4 2 1 : 4 3 ......... 3 4 : 1 2 4 3 : 2 1 订单8的示例:

1 2 3 4 : 5 6 7 8 2 1 4 3 : 6 5 8 7 3 4 1 2 : 7 8 5 6 4 3 2 1 : 8 7 6 5 .................. 5 6 7 8 : 1 2 3 4 6 5 8 7 : 2 1 4 3 7 8 5 6 : 3 4 1 2 8 7 6 5 : 4 3 2 1 1 2 3 4 : 5 6 7 8 2 1 4 3 : 6 5 8 7 3 4 1 2 : 7 8 5 6 4 3 2 1 : 8 7 6 5 .................. 5 6 7 8 : 1 2 3 4 6 5 8 7 : 2 1 4 3 7 8 5 6 : 3 4 1 2 8 7 6 5 : 4 3 2 1
我在R怎么做

这似乎解决了问题,但太聪明了。
flip(x)=1
习惯用法给出了一个矩阵(一旦转换为数字),其形式为
[01;10]

flip <- function(x) x[rev(seq(nrow(x))),]
x <- matrix(c(1,2,2,1),2)
x2 <- kronecker(2*(flip(x)==1),x,"+")   ## 4x4 solution
x3 <- kronecker(4*(flip(x)==1),x2,"+")  ## 8x8 solution

flip您在这里使用的定义是什么?输入是数字4吗?是的,所有的输入都是数字。这只是一个示例。这是一个开始,但我需要按此顺序排列第一行和第一列。但您的示例与wikipedia上“循环”的定义不匹配。那么你用的是什么定义呢?