1

fit二次元のMATLABで使いたいです。関数を個別に定義してから、次のように呼び出しましたfittype

x には 2 つの列があります。

f=fittype('@(x)myfun(beta1, beta2,beta3, x)')

次に、オプションで開始点とアルゴリズムをカスタマイズします。

次に使用[results, goodness]=fit(x, zdata,f, options)しますが、エラーがあります

??? FITTYPE 関数への入力が多すぎます。

エラー ==> 443 で適合

私も試してみました[results, goodness]=fit([x(:,1), x(:,2)], zdata,f, options)

それでも同じ問題があります。

使ったfit -all

XDATA は、1 ~ 2 列の行列でなければなりません。

エラー ==> 115 での適合 errstr = handleerr('curvefit:fit:xDataMustBeColumnVector', ...

x が 2 つの列にあるので、私にとっては無意味に聞こえます!!!!

その後which fit -all

/Applications/matlab/MATLAB_R2010a.app/toolbox/curvefit/curvefit/fit.m /Applications/matlab/MATLAB_R2010a.app/toolbox/stats/@ProbDistUnivParam/fit.m % ProbDistUnivParam メソッド /Applications/matlab/MATLAB_R2010a.app/toolbox /stats/@NaiveBayes/fit.m % NaiveBayes 法 /Applications/matlab/MATLAB_R2010a.app/toolbox/stats/@gmdistribution/fit.m % gmdistribution 法

fit私の2次元データを使用しfittypeて適合させるのを手伝ってもらえますか? {meshgrid やその他のコマンドを紹介しないでください。}

4

1 に答える 1

1

近似が曲面に対するものであることを示すパラメーターを追加する必要があり'numindep' = 2ます (つまり、2 つの独立変数があります)。

文字列を使用して Franke データで関数を使用する例を次に示します。

load franke
ft = fittype('myfun(beta1, beta2, beta3, [x, y])', 'numindep', 2)
[results, goodness] = fit([x, y], z, ft)

以下は、無名関数を使用して Franke データで関数を使用する例です。

load franke
ft = fittype(@(beta1,beta2,beta3, x, y)myfun(beta1, beta2,beta3, [x, y]), 'numindep', 2)
[results, goodness] = fit([x, y], z, ft)
于 2013-08-14T17:02:08.513 に答える