2017-02-22 209 views
3

到目前爲止,我有這個;如何在Matlab中減少直方圖上條的寬度

Disp_X = X - mean(X); 
hist(Disp_X); 
h = hist(Disp_X); 

h.BinWidth = 0.001; 

h.BinWidth在之前的工作,使我的酒吧要窄得多,但現在我收到此錯誤信息;

「將字段賦值給非結構數組對象」。

我不明白爲什麼之前沒有發生過,現在是這樣。

我也有點試圖將兩個直方圖繪製到一個圖上。我在x和y上都有平均距離的頻率,並且希望它們被繪製在同一個圖上。

回答

4

您要的命令是histogram而不是histhist是繪製輸出的舊直方圖。該函數的輸出是箱的計數和中心。 histogram的輸出是一個直方圖對象。

X = rand(1000,1); 
Disp_X = X - mean(X); 
h = histogram(Disp_X); 
h.BinWidth = 0.001; 

然後添加另一個直方圖。

hold on 
Y = rand(1000,1); 
Dy = Y - mean(Y); 
h2 = histogram(Dy); 
2

馬特的答案是正確的,如果你正在使用R2014b或以後,當被介紹histogram。如果您使用的是舊版本,那麼你就不能使用點符號,並有權使用set

Disp_X = X - mean(X); 
hist(Disp_X); 
h = hist(Disp_X); 

set(h, 'BinWidth', 0.001); 
2

兩個其他的答案是正確的,但最簡單的選擇將是設置此屬性,而調用該函數:

histogram(Disp_X,'BinWidth',0.001)