【问题标题】:Making a chess matrix制作国际象棋矩阵
【发布时间】:2021-02-17 10:17:34
【问题描述】:

所以我正在使用 r,并且我想编写一个取值为 n 的代码,创建一个 n x n 矩阵,该矩阵具有交替的 1 和 0。

例如:

如果没有收到错误或警告,我似乎无法执行此操作,并且它不适用于 n 的所有整数,任何帮助将不胜感激,谢谢。

【问题讨论】:

  • 不是很推荐,但它有效:suppressWarnings(matrix(1:0, n, n))

标签: r matrix


【解决方案1】:

这个呢?

n <- 5L

matrix(seq(1:n^2) %% 2, nrow = n)  
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    1    0    1
[2,]    0    1    0    1    0
[3,]    1    0    1    0    1
[4,]    0    1    0    1    0
[5,]    1    0    1    0    1

【讨论】:

  • 工作完美,谢谢,没想到使用序列
  • 不错的答案!如果你喜欢代码高尔夫,可能会更短一点 seq(n^2)。)支持你的,+1!
  • 感谢@ThomasIsCoding。我不知道 seq() 甚至没有提供起始值就可以工作。感谢更新。 :)
【解决方案2】:

试试下面的代码

m <- matrix(rep_len(c(1, 0), n^2), n)

m <- replace(m <- diag(n), !((row(m) - col(m)) %% 2), 1)

给了

> m
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    1    0    1
[2,]    0    1    0    1    0
[3,]    1    0    1    0    1
[4,]    0    1    0    1    0
[5,]    1    0    1    0    1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    • 2022-06-17
    • 2014-03-02
    • 2015-05-02
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    相关资源
    最近更新 更多