r - 在 R 中创建某个矩阵

标签 r matrix

有谁知道创建矩阵的快速方法
就像 R 中的以下内容。

     [,1] [,2] [,3] [,4]
[1,]    1    1    1    1
[2,]    1    2    2    2
[3,]    1    2    3    3
[4,]    1    2    3    4

上面的矩阵是 4x4,我想创建类似 10000x10000 的东西。

最佳答案

你可以做:

N <- 4
m <- matrix(nrow = N, ncol = N)
m[] <- pmin.int(col(m), row(m))

或@dickoa 建议的较短版本:
m <- outer(1:N, 1:N, pmin.int)

这些也有效,并且都更快:
m <- pmin.int(matrix(1:N, nrow = N, byrow = TRUE),
              matrix(1:N, nrow = N, byrow = FALSE))

m <- matrix(pmin.int(rep(1:N, each = N), 1:N), nrow = N)

最后,这是一个使用矩阵乘积的可爱方法,但速度相当慢:
x <- matrix(1, N, N)
m <- lower.tri(x, diag = TRUE) %*% upper.tri(x, diag = TRUE)

请注意,R 的 10k×10k 矩阵看起来很大,我希望您不会耗尽内存。

关于r - 在 R 中创建某个矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17554779/

相关文章:

R - 如何将 2 个成对向量组合成矩阵

cuda magma矩阵-矩阵加法内核

R将向量 reshape 为多列

r - OpenBUGS 错误 undefined variable

r - 修复天花板中的浮点不精确性

r - 转换删除 R 中的文档错误

r - 如何组合 2 个变量并忽略 NA

javascript - 在 R Shiny 中显示逗号和条件突出显示 - 不兼容

c - 优化的 2x2 矩阵乘法 : Slow assembly versus fast SIMD

r - 为什么 model.matrix 这么慢?