0

(polyfit を介して) 最適な適合を見つけるために、負の p 値を取得していますが、matlab はそれを受け入れていません (添字のインデックスは、実数の正の整数または論理値のいずれかでなければなりません)。使用する方法はありますか?代替手段が思いつきません。私は常に負の値を取得します。

編集:

そのために、曲線のベースラインを平坦化しようとしています。1 から 3 の順序に収まるように for ループを実行しています。次に、最小のノルム値を使用して最適なフィットを見つけ、それを曲線全体から差し引いてベースラインをまっすぐにします。いくつかの曲線で試してみましたが、上記の問題によりすべてのデータではうまく機能しませんでした。

私が取り組んでいるコードの一部:

for i=1:3 
  [p,s]=polyfit(x,y,i); 
  a=s.normr; 
  b(i,1)=p(1); 
  normr(i,1)=a; 
  ind=find(b==min(b)); 
  mn=b(ind,1); 
  Yflat=y-mn(1)*(x-mean(x)); 
  ca{2,2}=Yflat; 
  clear a b normr p s rte ind ind2 Yflat 
end  
4

2 に答える 2

1

画像を負の座標に変換すると、

私は通常、オフセットを記録し、 offset = [ -5, -8.5 ] 通常どおり (1, 1) で始まるマトリックスに強度値を保存します。

しかし、計算に関しては、座標配列にオフセットを追加します

例えば[ actualX, actualY ] = [ x, y ] + offset ;

余分な努力が必要かもしれませんが、うまくいきます。

幸運を!

于 2013-03-27T19:06:46.010 に答える
0

以下のコード (コメントからのコード + x、y の初期化) が実行されます。何が問題ですか?

x = 1:50;
y = randn(size(x));

for i=1:3
    [p,s]=polyfit(x,y,i);
    a=s.normr;
    b(i,1)=p(1);
    normr(i,1)=a;
    ind=find(b==min(b));
    mn=b(ind,1);
    Yflat=y-mn(1)*(x-mean(x));
    ca{2,2}=Yflat;
end
于 2013-03-27T19:06:13.200 に答える