【问题标题】:creating a matrix which its odd rows are shifted by 0.5创建一个矩阵,其奇数行移动 0.5
【发布时间】:2021-04-29 23:16:20
【问题描述】:

我想在 R 中创建一个 10*10 的矩阵,在奇数行中移动 +0.5,如下所示:

1.5 2.5 3.5 ...
1 2 3 ...
1.5 2.5 3.5 ...
... ... ... ...

我试过了:

x <- seq(1, 10, by=1)
y <- seq(1.5, 10.5, by=1)
mat <- rbind(x, y)

但我得到了一个包含两行的矩阵。我认为应该有更好的方法来创建“y”向量。

我该怎么做?最有效的方法是什么?

【问题讨论】:

  • 我不清楚,您希望在其他 8 行中具有什么值?你能用更多的行来扩展你的表吗?

标签: r matrix vector


【解决方案1】:

你可以使用矢量回收:

mat <- matrix(1:10, ncol = 10, nrow = 10, byrow = TRUE)
mat[c(TRUE, FALSE), ] <- mat[c(TRUE, FALSE), ] + 0.5
mat
#      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# [1,]  1.5  2.5  3.5  4.5  5.5  6.5  7.5  8.5  9.5  10.5
# [2,]  1.0  2.0  3.0  4.0  5.0  6.0  7.0  8.0  9.0  10.0
# [3,]  1.5  2.5  3.5  4.5  5.5  6.5  7.5  8.5  9.5  10.5
# [4,]  1.0  2.0  3.0  4.0  5.0  6.0  7.0  8.0  9.0  10.0
# [5,]  1.5  2.5  3.5  4.5  5.5  6.5  7.5  8.5  9.5  10.5
# [6,]  1.0  2.0  3.0  4.0  5.0  6.0  7.0  8.0  9.0  10.0
# [7,]  1.5  2.5  3.5  4.5  5.5  6.5  7.5  8.5  9.5  10.5
# [8,]  1.0  2.0  3.0  4.0  5.0  6.0  7.0  8.0  9.0  10.0
# [9,]  1.5  2.5  3.5  4.5  5.5  6.5  7.5  8.5  9.5  10.5
#[10,]  1.0  2.0  3.0  4.0  5.0  6.0  7.0  8.0  9.0  10.0

【讨论】:

    猜你喜欢
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多