我使用提供的函數here計算了直方圖上的平滑。根據我的理解,下圖中點0.5標記的點是直方圖的導數等於零的點,即平滑曲線在下降點與點相交的點。我怎樣才能自動或數字計算這一點(通過計算)而不可視化直方圖? 如何計算導數爲零的直方圖上的點?
1
A
回答
1
您可以消除示例中的所有繪圖命令。 什麼它歸結爲以下幾點:
y = [randn(1,5001), randn(1,2001)+6];
[heights,centers] = hist(y);
n = length(centers);
w = centers(2)-centers(1);
t = linspace(centers(1)-w/2,centers(end)+w/2,n+1);
dt = diff(t);
Fvals = cumsum([0,heights.*dt]);
F = spline(t, [0, Fvals, 0]);
DF = fnder(F); % computes its first derivative
現在,你如何獲得實際的數據點的DF?如果你閱讀manual page for fnplt
,你會發現將它分配給一個變量將產生數據點並且不會出現圖表。
pts = fnplt(DF);
現在我們只檢查其中的數據爲> 0
以及其中符號的變化:
pts(2, find(diff(pts(1,:) > 0) == -1) + 1)
讓我們把它拆開:
pts(1,:) > 0
創建一個邏輯向量與1,其中花鍵是大於0,否則爲0。
diff(pts(1,:) > 0)
計算連續元素之間的差異。當pts(1,:)
從1變爲0時,這將是-1。用find
,我們找到這些轉換的位置。這會給我們最後一點,樣條曲線在到達或通過0之前仍然是正的。最後,我們加1以得到樣條曲線在改變符號後的位置。
+0
不清楚你的解釋中的最後一行,甚至當我用相同的數據計算你的解決方案時,我沒有給出與我在問題中直方圖圖像中標記的可視化結果相同的答案。 – Tee
相關問題
- 1. 計算流數據上的直方圖 - 在線直方圖計算
- 2. 如何計算輪廓的直方圖?
- 3. 的Python - 計算直方圖
- 4. 計算直方圖
- 5. 計算對數極座標上的方向梯度直方圖
- 6. 如何從NP直方圖計算熵
- 7. 如何計算亮度直方圖?
- 8. 從OpenCV中的一維浮點數組計算直方圖
- 9. 如何計算帶零點的列上的火花相關性?
- 10. Python - 計算圖像的直方圖
- 11. 計算累積直方圖
- 12. 直方圖計算程序
- 13. 如何計算sql中的零個數?
- 14. 計算垂直和水平直方圖
- 15. 如何計算圖像的二進制直方圖?
- 16. 計算OPENGL中的直方圖
- 17. cuda中的直方圖計算
- 18. java中的直方圖計算
- 19. 帶推力的直方圖計算
- 20. 直到零計數
- 21. 如何計算直方圖的連續行之間的差異?
- 22. matplotlib直方圖:如何顯示欄上的計數?
- 23. 計算xor爲零的整數分區
- 24. 用repa計算圖像直方圖
- 25. 導致數字基本爲零的浮點運算
- 26. 如何計算兩個直方圖之間的距離
- 27. 如何計算直方圖中的異常值? - R/Matlab
- 28. 計算圖的直徑
- 29. 快速計算網格上的直方圖
- 30. 基於方面計數的直方圖
「直方圖的導數」在「0.4」附近爲零。 '0.5'附近發生的是直方圖*本身*變爲零。巨大的差異。 –
謝謝@AndrasDeak。有沒有一種方法可以在不顯示直方圖的情況下從我的數據計算0.5點? – Tee