2017-03-07 8 views
2

私は2つのスクリプトを使用してヒストグラムを作成しています.1つはmatlabs自身のhist関数です。もう1つはダウンロードしたスクリプトです。私がダウンロードしたスクリプトは絶対最小値と最大値をとり、その間にヒストグラムを生成します。しかし、MATLABとは異なり、このヒストグラムは表示されません。私はベクトルを提示されています。ヒストグラムのヒストグラムプロットを作成するには?

視覚的に2つを比較すると、私はplotを使用していますが、何らかの理由で縮尺が変わります。

enter image description here

そして、私はplotで、このヒストグラムを表示した場合、x軸のスケールの変更:たとえば、MATLABのhistを使用してヒストグラムを以下に示します

enter image description here

にはどうすれば規模を保つことができます同じ?

ダウンロードしたスクリプトがヒストグラムを生成しないため、表示するために私はplotを使用します。再びプロットは0と100の間であり、正確な比較ではないかもしれないと感じています。

+2

これはどのバージョンのMATLABですか?通常、 'plot(counts)'を使ってプロットするのではなく、第2プロットの 'x'値として' hist'(bin center)の出力の1つを使用します... –

+0

私はMatlab 2016aを使用しています – StuckInPhD

+0

スクリプトは、ビンのエッジ、またはヒストグラムを作成するために使用しているビンの中心をよりよく伝える必要があります。それはそうですか? –

答えて

4

利用可能な情報をすべて使用していないようです。例については、以下のコードを参照してくださいどのように何を行うことができますしたい:(プロットするために使用さ

  • histogram、:

    %% Generate some data: 
    rng(42653042); 
    data = randn(300); data = (data-min(data(:)))*90+100; 
    data(1:4:end) = data(1:4:end)/2; 
    %% Plot using hist: 
    figure(); hist(data(:),100); 
    %% Return bin info using hist: 
    [N,X] = hist(data(:),100); 
    %% Plot the other function's output w/o X: 
    figure(); plot(N); 
    %% Plot the other function's output w/ X: 
    figure(); plot(X,N); 
    figure(); bar(X,N); 
    

    機能histがでMATLABの新しいバージョンに交換する必要がありますすなわち、出力なしのhistの場合)。

  • histcountsをカウントするために使用する場合(すなわち、出力を伴うhistの場合)。
+0

ありがとう、私は第2の出力を認識していませんでした。これは、MATLABの出力を修正します。しかし、私が使用しているスクリプト(上に追加したもの)はそのような2番目の出力を提供していないので、私は再び比較できません。プロットすると0から100までのプロットが得られます。 – StuckInPhD

+0

@StuckInPhD 2番目のスクリプト他のものを出力する。それは、自分の 'hist'からすでに持っているべきカウント(' N')と位置( 'X')だけを与えます... –

+0

ありがとう@ Dev-il。私は固定された最小値と最大値の間にヒストグラムを生成するために2番目のスクリプトが必要ですが、Matlab doiesはこれを持っておらず、すべてのヒストグラムはそれ自身の最小値と最大値に適合しています。両者の形状と出力は非常に異なっています。分類目的のために、すべてのヒストグラムは固定スケール、例えば-50と250の間でなければなりません。私はmatlabの '' hist''のこの設定を見つけることができません – StuckInPhD

3

"n = hist(Y、x)ここで、xはベクトルであり、xで指定された長さの長さ(x)のビンのうちのYの分布を返します"、ビンの中心を指定します。

関連する問題