2016-06-16 30 views
-1

私がプロットしたい3つのベクトル(500x1倍)をExcelからインポートしましたが、私のコードは機能しません。影付きエラーバーmatlab

x=frequency; 
y=real_part; 
    figure;hold on; 

    H(1) = shadedErrorBar(x, y, {@mean, @(x) 0.25*std(x) }, '-r', 0); 

ここで、frequencyとreal_partはmy 3ベクトルの2つです。 はshadedErrorBarを用い

エラー(線85)の長さ(x)はUntitled2(ライン5)H(1)= shadedErrorBar(X、Y、{に 長(errBar)

エラーに等しくなければならないと言います@mean、@(x) 2 * std(x)}、 '-r'、0);

しかし、それらの全てが同じ長さである。手伝って頂けますか? 私はここにコードを取ったhttp://blogs.mathworks.com/pick/2012/08/17/shaded-error-bars/

+0

'X'と 'y'の両方がどのように各 'X'は' y'の分散を持つことができます500x1している場合は?使用するコードは、分散を計算することによってエラーバーを計算します。 – shamalaia

+0

xは周波数(500値)です。 yは各周波数の平均です。何が問題ですか? – Shika93

+0

には、xごとにyの値が繰り返される必要があります。この例では15です: 'y = ones(15,1)* x;'。各「x」におけるエラーバーの振幅は、15個の値のstdによって決定される – shamalaia

答えて

0

あなたのxは500x1倍と言われています。しかし、両方の匿名関数(@mean, @(x) 0.25*std(x))は、1x1 doubleをxに適用したときに与えます。このため、サイズの不一致にエラーが発生します。

ここでポイントが不足していると思います。あなたが言及した第三のベクトルでエラー値を持っている場合 - のはerror_barsそれを呼びましょう - これは動作するはずです:

shadedErrorBar(x , y , error_bars , '-r' , 0); 

を私はshadedErrorBar on File Exchangeから引用しています:


  • のx - xのベクトルを値
  • y値のベクトルまたはn個の観測値の行列をm個の場合 mは長さ(x)を持ちます。
  • errBar - ベクトルの場合、対称誤差バーを描画します。 のサイズが[2、length(x)]の場合、非対称誤差バー を描画します。行1は上部バー、行2は下部の バーです。 **代わりに** errBarは、 という2つの関数ハンドルのcellArrayにすることができます。最初の行は、統計情報が の行を示し、2番目の行はエラー バーを定義します。

関連する問題