我有一个关于嵌套 while 循环的问题。
我想计算多个值的分布。这里是 mu
和 kappa
。
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
所以我让函数运行了,但它没有停止。我知道这将是一个简单的解决方案,但我不再只见树木不见森林了。
最佳答案
>>> 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
.
关于python - 嵌套while循环分布计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30962321/