我正在尝试编写Python代码,用于生成一个二维矩阵的似然值,该矩阵基于10个测量值的x̄和σ网格值。其中,x̄从0.5到1.5,步长为0.01;σ从0.01到0.3,步长为0.01。完成后,我想创建分布的等高线图。
我使用的似然函数是高斯似然函数。目前我已经编写了:
X是我需要的10个数据值的数组,但我不确定我在这里做错了什么。plt.contour需要一个二维数组,这就是我应该创建的,但我不太确定如何操作。任何帮助将不胜感激!
我使用的似然函数是高斯似然函数。目前我已经编写了:
List1 = open("DataSet1.dat").readlines()
List2 = [float(i) for i in List1]
x = List2[0:10]
gaussian_pmf = lambda x, mu, sigma: (1 / (sigma*np.sqrt(2*np.pi)))*np.exp((-
(x-mu)**2)/(2*(sigma**2)))
mu = np.arange(0.5,1.51,0.01)
sigma = np.arange(0.01,1.02,0.01)
for i in range(0,len(mu)):
distribution = []
for i in range (0,len(x)):
distribution.append(gaussian_pmf(x[i],mu,sigma))
plt.contour(distribution)
plt.show()
X是我需要的10个数据值的数组,但我不确定我在这里做错了什么。plt.contour需要一个二维数组,这就是我应该创建的,但我不太确定如何操作。任何帮助将不胜感激!
x
中设置任何范围,meshgrid
会处理它。 - Maxim