组合多个直方图以创建类似3D的直方图

时间:2014-05-01 16:59:28

标签: matlab histogram

我有一个20x65536矩阵M填充了范围[0,14]的整数。

对于M的每一列,我想创建一个包含14个bin的直方图。总的来说,我会有65536个直方图。

之后,我想将所有这些直方图组合成一个类似3d的直方图,x轴为15个bin,y轴为65536个直方图索引,z轴为出现的数量。相应的箱子。

3 个答案:

答案 0 :(得分:3)

试试这个:

surf(histc(M, 0:14, 2))

答案 1 :(得分:1)

这应该可以满足您的需求:

% compute histograms
bins = 0 : 14;
count = hist(M, bins);

% plot as three-dimensional bar plot
bar3(bins, count)

然而,对于具有65536列的矩阵执行此操作并不是一个好主意,因为正常的计算机屏幕可以水平显示大约2000个像素。以下是25列矩阵的样子:

enter image description here

要使轴更好地适合bin值,请使用

ylim([-1 15])

答案 2 :(得分:0)

使用imagesc获取彩色图像,其中每个(x,y)的颜色是该直方图的bin中的计数数。

Mnew = histc(M,0:14,1);
imagesc(Mnew)
set(gca,'YDir','normal')

最后一行只是为了修复imagesc的细微差别,它会翻转y轴。