【问题标题】:Symmetric circulant matrices in RR中的对称循环矩阵
【发布时间】:2016-10-13 20:31:24
【问题描述】:

我想创建对称循环矩阵。

订单 4 示例:

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

我如何在 R 中做到这一点?

【问题讨论】:

  • 您在这里使用的定义是什么?输入只是数字 4 吗?
  • 是的,所有的输入都是数字。这只是一个例子。
  • 但是我需要按这个顺序第一行第一列。
  • 但是您的示例与维基百科上“循环”的定义不匹配。那你用什么定义?

标签: r matrix linear-algebra


【解决方案1】:

这似乎解决了问题,但太聪明了。 flip(x)==1 成语给出了[0 1; 1 0] 形式的矩阵(一旦转换为数字)...

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

对更大的矩阵重复2^n(如果您想经常这样做,请嵌入for循环中)...我不知道您想要的答案对于一个没有大小的矩阵是什么2^n(例如 12x12),但您也许可以找到扩展此机制的方法。

【讨论】:

    猜你喜欢
    • 2012-02-21
    • 2021-05-24
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多