我想在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循环,我怎么能这样做?
答案 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产品。