2016-04-14 27 views
0

Aは行列の形でランダムグラフを作成するコードを持っています。今私はそれがm行列であるので、多くの、例えばm、ランダムなグラフを作成したいと思います。私はforループでこれをやろうとしています。これは私の好みの方法ですが、私は他の提案(家族を応募していますか?ここでnはグラフのノード/頂点の数を持っているし、ベータ版が優先付着量である私のコードは、あなたが持つrandomgraph <- function(i, n, beta) {}としてあなたrandomgraph関数を定義することができますforループを使用して関数を複数回繰り返す

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) 
    } 
} 
} 

答えて

1

(0と1.5の間でこれを維持する)でありますbodyを定義と同じにすると、パラメータiはダミーパラメータとして残ります。そしてapply関数をlistOfMatrix <- lapply(1:m, randomgraph, n, beta)として使用し、マトリックスのリストを返します。

+0

おそらく、彼は身体内の適用家族を使用することを意味していたと思われますが、いずれの方法でも、あなたの、またはKillian'sはNullをランダムグラフとして返します。おそらく私だけ。 – Chris

関連する問題