r - 如何在对角线内的 block 中创建一个带有零的矩阵?

标签 r

因此,我正在尝试创建一个 2000 * 2000 矩阵,该矩阵沿对角线具有 50*50 个零 block ,其他位置均为 1。

这是我的意思的一个微型例子。 a 是一个带 1 的 6x6 矩阵,每个 block 是一个 2*2 矩阵,沿对角线为零

a <- matrix(rep(1, times = 36), nrow = 6, byrow = TRUE)

a[1:2,1:2] <- 0
a[3:4,3:4] <- 0
a[5:6,5:6] <- 0

给予

     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    0    0    1    1    1    1
[2,]    0    0    1    1    1    1
[3,]    1    1    0    0    1    1
[4,]    1    1    0    0    1    1
[5,]    1    1    1    1    0    0
[6,]    1    1    1    1    0    0

当然,我选择的代码不适合创建如此大的矩阵,因为我必须重复底部部分 50 次。

创建此类矩阵的更好代码是什么?

最佳答案

rawr 是正确的,

a <- +!kronecker(diag(1, 3), matrix(1, 2, 2))

给予

     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    0    0    1    1    1    1
[2,]    0    0    1    1    1    1
[3,]    1    1    0    0    1    1
[4,]    1    1    0    0    1    1
[5,]    1    1    1    1    0    0
[6,]    1    1    1    1    0    0

+!kronecker(diag(1, 40), matrix(1, 50, 50)) 用 2000*2000 矩阵解决了我原来的问题

关于r - 如何在对角线内的 block 中创建一个带有零的矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50331873/

相关文章:

r - plm 与 lm - 结果不同?

r - 从 Postgres 中选择列与数组中的任何字符串匹配的行

r - pdf格式的多图图中的边距和图尺寸有问题

r - 如何在 corrplot() 中以数字方式可视化置信区间?

r - 将 pvclust R 函数应用于预先计算的 dist 对象

r - 如何在 R 正则表达式中打印/查看预定义模式 [ :alnum:], [ :punct:], [ :digit:], [ :blank:] etc. ]

r - 在 ggplot2 中的 x 轴上绘制有序因子

r - 错误: missing values and NaN's not allowed if 'na.rm' is FALSE

R,如果一个表中的数字属于另一个表中的范围

r - 为 R 表中的行名分配列名