2014-03-01 34 views
-1

可以说我有一个矩阵x=[ 1 2 1 2 1 2 1 2 3 4 5 ]。要查看其直方图,我可以做h=hist(x).如何从matlab获取直方图数据对象

现在,h检索一个只包含出现次数的矩阵,并不存储它发生的原始值。

我想要的是类似于一个函数,它从x取值,并返回它的出现次数。话虽如此,histeq我们应该钦佩的是,它自动衡量最接近的值!

应该如何解决这个问题?人们究竟做得如何?

我的兴趣的原因是在图像︰

可以说我有一个形象。我想查找图像色度值的所有出现次数。

回答

1

我真的不舒尔你在找什么,但如果你蚂蚁使用历史记录,以计算出现次数的数量,用途:

[h,c]=hist(x,sort(unique(x))) 

否则HIST使用由中心定义的范围。第二个输出参数返回相应的数字。

+0

+1我只是打字一样:-)我同意,这个问题不明确 –

1

hist具有第二返回值将对应于第一返回值的形式返回的计数n的bin中心xc[n, xc] = hist(x)。您应该仔细查看描述大量控制hist行为的可选参数的引用。但是,hist对于您的特定问题太强大了。

若要简单计算特定值的出现次数,您可以简单地使用诸如sum(x(:) == 42)之类的内容。冒号操作符将对您的图像矩阵进行线性化,等于运算符将产生一个布尔值列表,其中每个元素x的值为1,因此sum将产生这些出现的总数。

0

hist/histc另一种方法是使用bsxfun

n = unique(x(:)).'; %'// values contained in x. x can have any number of dims 
y = sum(bsxfun(@eq, x(:), n)); %// count for each value