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

See*_*een 4 r matrix

我想在*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
Run Code Online (Sandbox Code Playgroud)

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

Ben*_*ker 8

有一个非常有用的数学运算符叫做Kronecker产品:

m1 <- matrix(1:4,nrow=2,byrow=TRUE)
m2 <- matrix(1,nrow=2,ncol=2)
kronecker(m1,m2)
Run Code Online (Sandbox Code Playgroud)

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