在R中创建具有相同值的块矩阵

时间:2012-10-04 13:07:47

标签: r matrix

我想在n * n矩阵中创建具有相同值的k个块(k可以精确地按行号乘以列数乘以n * n):

例如,当n = 4且k = 4时,(k可以精确地除以4 * 4 = 16),矩阵就像这样创建:

1 1 2 2
1 1 2 2
3 3 4 4
3 3 4 4

如果没有for循环,我怎么能这样做?

1 个答案:

答案 0 :(得分:8)

有一个非常有用的数学运算符叫做Kronecker product

m1 <- matrix(1:4,nrow=2,byrow=TRUE)
m2 <- matrix(1,nrow=2,ncol=2)
kronecker(m1,m2)

Matrix包具有稀疏矩阵(?"kronecker-methods")的Kronecker积的方法,因此只要您能找到表达模式的方法,就可以轻松构建巨大的稀疏图案矩阵Kronecker产品。