2012-10-04 67 views
4

我想在* n矩陣,以創建具有相同值的k個塊(K可以準確地由行次數被劃分的列數作爲N * N):創建中的R具有相同值塊矩陣

爲例如,當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循環?

回答

8

有一個極其有用的數學運算稱爲Kronecker product

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

Matrix包有稀疏矩陣(?"kronecker-methods")的克羅內克產品的方法,這樣就可以輕鬆地只要建立龐大的稀疏圖案的矩陣作爲你可以找到一種方式來表達克羅內克產品的模式。