2014-03-01 39 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