2016-04-28 11 views
0

私は指数関数的に減少するデータに適合しようとしています。私がcftoolsを使って指数関数的に1つの項を近似すると、良いフィット感が得られます。私はfit機能使用しようとするただし、:指数的フィットとcftoolsはMatlabで異なる結果を出します

Warning: NaN, Inf, or complex value detected in startpoint; 
choosing random starting point instead. 
> In curvefit.attention.Warning/throw (line 30) 
    In fit>iFit (line 299) 
    In fit (line 108) 

、それはゴミになってしまう与え係数:

f = fit(x, y, 'exp1'); 

を、それは私に、次のエラーが発生します。

cftoolsはフードの下でfitを実行していると思っていました。なぜ違いがありますか?スクリプトからcftoolsを実行するにはどうすればよいですか?

+2

データなしで推測するのは難しいかもしれません。 "File> Generate Code"の下の 'cftool'で使われているコードを見ることができます。 'cftool'があなたのために値を選ぶという違いがあるようです。フィットしたモデルのオプションを 'fitoptions(model)'でチェックすることができます。 – alexforrence

答えて

3

なぜエラーが示唆しているのでしょうか?

f = fit(x, y, 'exp1', 'StartPoint', rand); 

あなたは、より賢明な最初の推測をするrandを変更する場合がありますが、それはあなたの問題領域に完全に依存します。

cftoolsは、ツールと対話的に行ったものを複製するMATLABコードを印刷して、将来プログラムで実行することができるcode generation機能が必要です。これは始めるのに最適な方法です。

+0

私は始点を設定しても基本的に 'f(x)= 0'を得ます。私は 'cftools'のコード生成機能を調べます。ありがとう。 – sodiumnitrate