2015-06-21 139 views
1

我有一個關於嵌套while循環的問題。 我想運行多個值的分佈計算。這裏mukappa嵌套while循環分佈計算

import numpy as np 
import matplotlib.pyplot as pl 
import scipy.special as sps 

mu = 1/9 # circular mean phase 
mu_steps = 2/9 
mu_end = 1 
kappa = np.pi/8 # circular dispersion 
kappa_steps = np.pi/8 
kappa_end = np.pi/2 

observations = 50 

while mu <= mu_end: 
    while kappa <= kappa_end: 
     s = np.random.vonmises(mu, kappa, observations) 
     count, bins, ignored = pl.hist(s, observations, normed=True) 
     x = np.arange(-np.pi, np.pi, 2*np.pi/observations) 
     y = -np.exp(kappa*np.cos(x-mu))/(2*np.pi*sps.jn(0,kappa)) 
     pl.plot(x, y/max(y), linewidth=2, color='r') 
     pl.show(False) 
     pl.draw() 
     kappa = kappa + kappa_steps 
    mu = mu + mu_steps 

所以我得到了功能運行,但它不停止。我知道這將是一個簡單的解決方案,但我再也看不到樹木了。

回答

1
>>> import numpy as np 
>>> mu = 1/9 # circular mean phase 
>>> mu_steps = 2/9 
>>> mu_end = 1 
>>> kappa = np.pi/8 # circular dispersion 
>>> kappa_steps = np.pi/8 
>>> kappa_end = np.pi/2 
>>> mu, mu_steps, mu_end 
(0, 0, 1) 
>>> kappa, kappa_steps, kappa_end 
(0.39269908169872414, 0.39269908169872414, 1.5707963267948966) 

你能看出問題在這裏嗎?

mu_steps == 0;變體mu總是<= mu_end

+0

非常感謝。正如我所承諾的。只需簡單的解決方案DOTS ...有時我對解決方案一無所知。 –

+0

非常歡迎! –