[英]Create a certain matrix in R
有没有人知道在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矩阵看起来很大,我希望你的内存不会用完。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.