簡體   English   中英

Matlab中具有單個值的歷史

[英]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的答案)

您可以使用查找功能或邏輯索引找到數據范圍,然后使用此處描述的axis([xmin xmax ymin ymax])屬性

暫無
暫無

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

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