gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 01:01:25 25 4
gpt4 key购买 nike

因此,我正在尝试创建一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com