Matlab:颜色等级星座图

时间:2012-11-22 11:13:15

标签: matlab plot histogram

我正在使用Matlab。我有一个由复数值组成的大型列向量。 e.g。

  

数据= [
      -0.4447 + 0.6263i
      0.3114 + 0.8654i
      0.7201 + 0.6808i
      0.7566 + 0.8177i
     -0.7532 - 0.8085i
     -0.7851 + 0.6042i
     -0.7351 - 0.8725i
     -0.4580 + 0.8053i
      0.5775 - 0.6369i
      0.7073 - 0.5565i
      0.4939 - 0.7015i
     -0.4981 + 0.8112i
      ....
     ]

这代表一个星座图,如下所示。

enter image description here

我想根据特定点的频率对星座点进行颜色分级。我认为我需要创建一个直方图,但我不知道如何使用复杂的矢量,然后如何绘制颜色等级。 任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

我想你想做一张热图:

histdata = [real(data), imag(data)];
nbins_x = nbins_y = 10; 
[N, C] = hist3(histdata, [nbins_x, nbins_y]); % the second argument is optional.
imagesc(N);

此处hist3创建直方图矩阵,imagesc绘制缩放的热图。如果您更喜欢3D可视化,只需键入hist3(histdata)即可。

如果您只是右键单击工作区窗口中的N,则还有许多其他可视化选项。我建议也尝试contourf(N),这是一个填充的轮廓图。

答案 1 :(得分:1)

所以,你想要做的是找到一个2比2的直方图。最简单的方法是分离实点和虚点,并使用hist2d函数,如下所示:

rdata=real(data);
idata=imag(data);

hist2d([rdata;idata]);