2016-04-14 5 views
0

Ein Code, der ein zufälliges Diagramm in Form einer Matrix erstellt. Jetzt möchte ich es viele, sagen m, zufällige Graphen so die Ausgabe m Matrizen erstellen. Ich versuche das mit einer for-Schleife zu machen. Dies wäre meine bevorzugte Methode, aber ich bin offen für andere Vorschläge (Familie anwenden?). Hier ist mein Code, wobei n die Anzahl der Knoten/Scheitelpunkte der Graph hat und Beta ist die Menge an Vorzugs Befestigung (halten diese zwischen 0 und 1,5)Wiederholen einer Funktion mehrmals mit einer for-Schleife

multiplerandomgraphs <- function(n, beta, m) { 
for(k in 1:m) { 
    randomgraph <- function(n, beta) { 
    binfunction <- function(y) { 
    L <- length(y) 
    x <- c(0, cumsum(y)) 
    U <- runif(1, min = 0 , max = sum(y)) 
    for(i in 1:L) { 
     if(x[i] <= U && x[i+1] > U){ 
     return(i) 
     } 
    } 
    } 
    mat <- matrix(0,n,n) 
    mat[1,2] <- 1 
    mat[2,1] <- 1 
    for(i in 3:n) { 
    degvect <- colSums(mat[ , (1:(i-1))]) 
    degvect <- degvect^(beta) 
    j <- binfunction(degvect) 
    mat[i,j] <- 1 
    mat[j,i] <- 1 
    } 
return(mat) 
    } 
} 
} 

Antwort

1

Sie Ihre randomgraph Funktion als randomgraph <- function(i, n, beta) {} mit der definieren body derselbe wie Ihre Definition, übergibt den Parameter i als Dummyparameter. Und dann verwenden Sie die Funktion anwenden als listOfMatrix <- lapply(1:m, randomgraph, n, beta), die eine Liste der Matrix zurückgeben.

+0

Ich denke, vielleicht meinte er, Familie innerhalb des Körpers zu verwenden, aber egal wie, Ihr oder Killian kehrt Null zu zufälligen Graphen zurück. Wahrscheinlich nur ich. – Chris

Verwandte Themen