2017-08-28 47 views
0

我有一個問題,它是當我運行這個蒙特卡羅方法aprox多個積分的結果,結果是一個NA的矩陣,只是在我的矩陣'結果'中出現最後一個迭代...在這裏是代碼:當我將它保存在矩陣中時,爲什麼在我的結果中出現NA?

fun <- function(x) exp(-x[1]-x[2]) 
k <- seq(10,1000,10) 

for(i in 1:length(k)){ 
    result <- matrix(nrow = length(k), ncol = 2) 
    U <- matrix(runif(n = 2*k[i]), ncol = 2) 
    aprox <- mean(apply(X = U, MARGIN = 1, FUN = fun)) 
    result[i,1] <- k[i] 
    result[i,2] <- aprox 
} 
result 

感謝大家。

回答

0
fun <- function(x) exp(-x[1]-x[2]) 
k <- seq(10,1000,10) 

result <- matrix(NA, nrow = length(k), ncol = 2) 

for(i in 1:length(k)){ 
    U <- matrix(runif(n = 2*k[i]), ncol = 2) 
    aprox <- mean(apply(X = U, MARGIN = 1, FUN = fun)) 
    result[i,1] <- k[i] 
    result[i,2] <- aprox 
} 
result 
     [,1]  [,2] 
    [1,] 10 0.4485121 
    [2,] 20 0.3622201 
    [3,] 30 0.3880991 
    [4,] 40 0.3968607 
    [5,] 50 0.3702156 
    [6,] 60 0.3717430 
    [7,] 70 0.3850652 

result矩陣的定義應該是外循環

+0

哈哈哈謝謝,我很分心,我懷念那個,再次感謝你來回答。 –

+0

@StivenHerrera所以你會接受這個答案? – minem

+0

是的,我接受它,ty再次。 –

相關問題