0
我试图绘制密度为复平面中随机二次monic多项式的零点密度图。事实上,我正在密谋!但是这只是一个小小的细节,让我感到困扰:坐标轴的值与图中的点不匹配。这是我的代码。在Matlab中绘制密度图时显示正确的坐标轴值
n=2;
p = [1 random('Uniform', -1, 1, [1,n])]
roots(p)
z = zeros(0);
n = 2;
for j=1:10000
p = [1 random('Uniform', -1, 1, [1,n])];
R = roots(p);
z = [ z, R.' ];
end
Re = real(z);
Im = imag(z);
[values, centers] = hist3([Im(:) Re(:)],[1000 1000]);
imagesc(centers{:}, values,[0,10]);
colorbar
axis equal
axis xy
cmap = summer(max(values(:)));
cmap(1:1,:) = 0;
colormap(cmap);
现在这里是通过该代码生成的图。
可以尝试这个代码,并检查最大值(Re)和最大值(IM),其对应于实部的最大值(x轴)和虚部(y轴)。我有max(Re)= 1.6076(它总是接近1.5)和max(Im)= 0.9993(它总是接近1)。这些值与情节不符,这似乎是相反的。
如果我尝试散射函数(失去密度和所有漂亮的视觉),我有正确的值。以下命令生成下图。
scatter(Re(1,:), Im(1,:),'.')
这清楚地表明,第一曲线实际上是(不旋转,因为我想先)是正确的,除了轴值。我需要帮助解决这个问题。谢谢。
PS:在答案here中得到这个图的命令。请注意那里的评论。我明确要求解决这个问题,并得到一个。给定的解决方案实际上在某些情况下工作,但在这个失败,我不知道为什么。
谢谢你的回答。我做了搜索和命令 ** imagesc(min(Re):00001:max(Re),min(Im):00001:max(Im),values,[0,10]); ** 工作得很好。你知道这个命令和你的命令有什么区别吗? – Integral
在image/imagesc中,只会使用x(1)/ y(1)和x(end)/ y(end),其余这些向量完全不相关。即x可能只是[min(Re)max(Re)],您仍然可以得到相同的结果。只要你把Re作为x和Im作为y,你就可以走了。使用中心只是一种方法,可以保证您获得与hist3相同的下限/上限,而不用担心它们如何通过hist3进行实际计算。 –