1

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

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

因为我在 中有负值x,所以我得到例如 value -3,因此得到一个错误,因为 bin 的数量不能为负。

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

谢谢。

4

1 回答 1

2

该函数hist可以接受bin中心的向量。这些中心可能是负的。
我认为问题是当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
于 2013-05-22T10:59:09.013 回答