[英]hist with a single value in Matlab
當您使用hist函數時,如下所示:
[h x] = hist(data, 1000)
只要數據長於一個length(data) > 1
。
但是,如果它= 1
那么它將執行以下操作:
數據在-500到500范圍內擴散。有沒有辦法阻止它這樣做?
您正在使用的函數的形式( hist(data,1000)
)表示將生成1000個bin,並且MATLAB默認將其大小設置為1的寬度,因為它沒有有關數據范圍的信息(a單個值沒有有意義的范圍)。 這是文檔中的內容 :
n = hist(Y,nbins)其中nbins是標量,使用nbins個bin數。
有一些選項可以使它“更好”(用引號引起來,因為除了你自己,沒人知道自己想要什么):
1)您可以使用其他形式的函數來指定垃圾箱應位於的位置:
n = hist(Y,x),其中x是向量,返回Y在中心由x指定的length(x)箱中的Y分布。 例如,如果x是5個元素的向量,則hist將Y的元素分布到以x軸為中心的五個bin中,其中x的元素都不復雜。 注意:如果更自然地指定bin邊緣而不是中心,請使用histc。
2)如果小於某個最小值,則可以將箱數限制為數據向量中的元素數:
hist(data, min(1000, numel(data)))
3)您可以檢查特殊情況(例如N = 1)-您提到這是不理想的,但是使用腳本/函數根本就不困難,因此您可能必須弄清為什么這是不可接受的。
4)您可以在繪制后適當縮放x軸(類似於@Parag的答案)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.