2017-02-22 32 views
3

これまでのところ私はこれを持っています。Matlabのヒストグラムのバーの幅を小さくするには

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

h.BinWidth = 0.001; 

h.BinWidthは私のバーがはるかに狭い作るために前に働いていたが、今私は、このエラーメッセージを取得しています。

"構造体ではない配列オブジェクトへのフィールドの割り当て"

私はそれが以前に起こっていなかった理由を本当に理解していない、そして今はそれです。

私は、1つのプロットに2つのヒストグラムをプロットしようとする際に少し問題があります。私はxとyの両方の平均からの距離の周波数を持っており、それらを同じグラフ上にプロットしたいと思います。

答えて

4

histogramは、histではありません。 histは出力をプロットする古いヒストグラムです。その関数の出力は、ビンの数と中心です。 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

histogramを導入したときに、後でR2014bを使用している場合やマットの答えは正しいです。古いバージョンを使用している場合は、ドット表記を使用して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) 
関連する問題