[英]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)
是每個x
中y
最接近的元素。
例:
>> 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.