箱数为负数

时间:2013-05-22 10:52:46

标签: matlab histogram bin negative-number

我有以下代码返回直方图的值:\

[a,b]=hist(x(:),unique(x));

由于我在x中有负值,因此我得到值-3,因此得到错误,因为容器的数量不能为负数。

有什么可以解决这个问题?

感谢。

1 个答案:

答案 0 :(得分:2)

函数hist可以接受bin中心的 vecotr 。这些中心可能是负面的 我认为问题是unique(x)返回负标量然后hist将其视为分箱数而不是分箱中心

解决方法

ux = unique( x );
if numel( ux ) == 1
   % there is only one unique value in vecor x - 
   % no need to do a histogram, it will only have one bin!
   a = numel( x );
   b = ux;
else
   % many unique values in x - compute a histogram.
   [a, b] = hist(x, ux);
end