0

私はmatlabを使用しています.xとyのデータの特定のセットがあります.

x=[0,1.25,1.88,2.5,5,6.25,6.88,7.19,7.5,10,12.5,15,20];
y=[-85.93,-78.82,-56.95,-34.56,-33.57,-39.64,-41.96,-49.28,-66.6,-66.61,-59.16,-48.78,-41.53];

グラフを生成するスプライン関数を備えたカーブ フィッティング ツールボックスを使用したいので、これを行いました。

cftool

ツールボックスが表示され、スプライン フィットを選択できます。生成されたスプライン グラフからデータ ポイントを抽出できるかどうかを考えていました。つまり、スプライン グラフは一種の連続グラフであるため、入力したデータ ポイントよりも多くの x および y データ ポイントが存在する可能性があります。誰でもこれについてアドバイスをもらえますか?ありがとう!

4

1 に答える 1

0

で実行されるスプライン フィットと同等の操作を実行できます。たとえば、こちらこちら、またはこちらcftoolを参照してください。fit

% perform spline fit without cftool
ft = fittype('cubicspline');
coeff=fit(x,y,ft); 

% use plot to display the interpolating polynomial 
% (relying on internal plot settings)
figure
h=plot(coeff,x,y,'o');

% extract the *interpolated* curve from the figure
xi=get(h,'XData');
yi=get(h,'YData');

次のことができることを示すためだけに再プロットします。

ここに画像の説明を入力

しかし、Fraukje がここで説明したように、単に補間したい場合は. 次の例のように、より細かいグリッドを定義しxて関数を使用しinterp1ます (前と同じ x、y 入力データ)。

% interpolate 
Ni = 100;
xi = linspace(x(1),x(end),Ni);
yi = interp1(x,y,xi,'spline');

補間xi,yiされたデータは次のとおりです。

ここに画像の説明を入力

于 2013-09-13T07:42:45.357 に答える