2016-04-29 8 views
1

Ich habe eine Matrix aus anderen Daten, die eine feste Dimension ist und möchte Spalten und Reihen von Nullen an den Enden dieser Matrix effizient hinzufügen, wie ich den Prozess 1000+ mal wiederholen, richtig Jetzt habe ich eine Schleife und cbind und rbind. Gibt es einen einfacheren Weg, dies zu tun?expand Extremitäten von R-Matrix mit Nullen

##my actual matrix is real data of fixed dimension.. so i can't simply 
##initialize a larger matrix like I could in this example.. 

my_matrix <- matrix(1,ncol=10,nrow=10) 
for(i in 1:10){ 
    my_matrix <- cbind(my_matrix,0) 
    my_matrix <- rbind(my_matrix,0) 
} 

Antwort

3

Additiv cbind und rbind in einer for-Schleife ist sehr langsam. Machen Sie es wie diese statt:

new_mat <- matrix(0, ncol=20,nrow=20) 
new_mat[1:nrow(my_matrix), 1:ncol(my_matrix)] <- my_matrix 

Erläuterung: Erstellen Sie eine Matrix aus Nullen der gewünschten Abmessungen, ersetzen Sie dann die entsprechende Teilmenge Bereich mit Ihren Daten

+0

Dank, funktioniert perfekt – hhphhphhp