代码之家  ›  专栏  ›  技术社区  ›  nymuffin

在R中创建非对称对角线为0s的1s非对称矩阵

  •  1
  • nymuffin  · 技术社区  · 6 年前

    已编辑:

    我想高效地创建一个1452 x 44矩阵,其中:

    • 第一列有33个0,后面是1419个1
    • 第二列有33个1,然后是33个0,然后是1386个1 。。。
    • 第三十三列为1419个1后跟33个0

    在R中如何执行此操作?非常感谢!

    1 回复  |  直到 6 年前
        1
  •  2
  •   Gregor Thomas    6 年前

    编辑后,将我的评论移至答案:

    x1 = 44
    x2 = 1452
    m = matrix(c(rep(rep(0:1, c(x1, x2)), x2 / x1 - 1), rep(0, x1)),
               ncol = x2 / x1) 
    

    基本上,你需要一个44秒然后1452秒的模式重复一组。我们坚持最后一组44个0,因此它以0结束,并相应地设置尺寸。