这个问题已在这篇文章中得到解答邮政,但我希望对它进行一点改编。
我想采用上述帖子的顶部解决方案。我希望有一个这样的分布网格,而不是单个双变量分布。网格应该是矩形的,每个源的位置都是可控的。
然后我想调整这个结果图像以删除所有轴并仅留下表面分布。
我想要的网格应该是这样的这里。但每个圆的位置应该是二维高斯。
期望输出
像这样,有或没有轴上的投影。
分布
电网中每个源应具有以下分布:
$$f(x, y) = \frac{1}{2\pi \sigma_x \sigma_y}\exp[-\frac{(x-\mu_x)^2}{\sigma_x^2} + -\frac{(y-\mu_y)^2}{\sigma_y^2}]$$.
其中 $\sigma_x = \sigma_y$,并且对于不同的源,$\mu_x$ 和 $\mu_y$ 的值不同。请注意,此分布具有协方差矩阵的对角线形式,元素 $\sigma_x$ 和 $\sigma_y$ 在对角线上。
答案1
我不知道我是否会理解 pgfplots 中的循环。
输出
(简单的)代码
@Jake 指出这对于 pgfplots 来说需要进行大量的计算,因此你最好预先计算这些函数通过外部工具
\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
[
declare function=
{
gaussian(\x)= exp(-.5*\x^2);
gaussianDouble(\x,\y)= gaussian(\x)*gaussian(\y);
}
]
\begin{axis}
\foreach\i in {0,4,...,12}
{
\foreach\j in {0,4,...,12}
{
\addplot3[surf, samples=20, domain=-2:2, y domain=-2:2]({x+\i},{y-\j},{gaussianDouble(x,y)});
}
}
\end{axis}
\end{tikzpicture}
\end{document}
在 Scilab 中
没有答案,但这是你想要的吗?
如果可以的话,我可以编辑您的问题以在其中包含图片吗?
输出
(Scilab)代码
function z=normal(x,y)
norm = x.^2 + y.^2
z = exp(-.5*norm)
endfunction
clf()
x=linspace(-3,3,30)
[X,Y]=meshgrid(x)
for i=0:2:10
for j=0:2:10
surf(X+i,Y+j,normal(X,Y))
end
end
f=gcf()
f.color_map = autumncolormap(32);