我想在Python中生成一个高斯分布,其中x和y维度表示位置,z维度表示某个量的大小。
该分布具有最大值2e6和标准差sigma = 0.025。
在MATLAB中,我可以使用以下代码:
x1 = linspace(-1,1,30);
x2 = linspace(-1,1,30);
mu = [0,0];
Sigma = [.025,.025];
[X1,X2] = meshgrid(x1,x2);
F = mvnpdf([X1(:) X2(:)],mu,Sigma);
F = 314159.153*reshape(F,length(x2),length(x1));
surf(x1,x2,F);
在Python中,我目前的代码如下:
x = np.linspace(-1,1,30)
y = np.linspace(-1,1,30)
mu = (np.median(x),np.median(y))
sigma = (.025,.025)
有一个Numpy函数numpy.random.multivariate_normal,据说可以做与MATLAB的mvnpdf相同的事情,但我很难理解文档。特别是在获得numpy.random.multivariate_normal所需的协方差矩阵方面。
numpy.random.multivariate_normal()
做的是同样的事情,因为它并没有给出分布的概率密度函数,它只是从协方差矩阵和期望值mu定义的分布中绘制随机数。 - Nras