簡體   English   中英

Matlab,直方圖如何在圖中找到我的數據

[英]matlab, histogram how to find my data in the plot

我有2個向量的數據。 然后使用[n,xout] = hist(x,y)返回包含頻率計數和單元位置的向量n和xout。 x是我的真實數據,y是我要建立直方圖的線段。 比起我用bar(xout,n)來繪制直方圖。 最后,我用高斯擬合擬合該直方圖。

現在,我想知道我的真實數據(向量x的每個點)在直方圖中的位置? 有人可以幫我弄清楚嗎?

[~, result] =  min(abs(bsxfun(@minus, y(:), x(:).')));

對於x每個值,這將給出y最接近的元素的索引。 所以y(result)是每個xy最接近的元素。

例:

>> x = [0.4 1.6 5.3 4.2 3.1 7.8];
>> y = [0 2 4 6 8];
>> [~, result] =  min(abs(bsxfun(@minus, y(:), x(:).')))
result =
     1     2     4     3     3     5
>> y(result)
ans =
     0     2     6     4     4     8

您想使用histc

[binCounts, idx] = histc(x, y);

然后找到其中x的某個值是的bin:

bin = idx(x == 0.4);

請注意,因為histc第二個輸入不是hist這樣的中心,而是每個bin的最終值。 因此,您可能需要更改y向量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM