Matlab - hist3没有返回预期的输出

时间:2016-08-21 10:21:03

标签: matlab histogram

我试图使用hist3直观地显示二维分布,但该函数表现出意外。我认为它返回输入矩阵中每对数字出现次数的2D直方图(计数),并显示在输出矩阵中其索引对应于该数字对的位置处计数,缩放到系数10(默认情况下)或其他一些方矩阵大小。但这不是我的测试示例所示:

例如,如果我定义以下输入矩阵

1   1
2   2
3   3
4   4
5   5
然后是命令 v = hist3(m,[5 5]) 具有以下预期输出:

1   0   0   0   0
0   1   0   0   0
0   0   1   0   0
0   0   0   1   0
0   0   0   0   1

但是对于这个输入矩阵:

4   1
4   2
4   3
4   4
4   5

输出是:

0   0   0   0   0
0   0   0   0   0
1   1   1   1   1
0   0   0   0   0
0   0   0   0   0

..而不是(正如我预期的那样):

0   0   0   0   0
0   0   0   0   0
0   0   0   0   0
1   1   1   1   1
0   0   0   0   0

任何人都可以帮助清除混乱吗?谢谢!

1 个答案:

答案 0 :(得分:1)

这是因为默认索引值介于2和6之间,因此4是第三个索引。尝试绘制它:

figure;
hist3(m,[5 5])

修改

使用hist3

确定边缘的方法
EDGES = {(1:5)-0.5, (1:5)-0.5};
figure;hist3(m,'Edges',EDGES);